我有许多 Ansible 环境:
environments
dev
hosts
group_vars/
prod
hosts
group_vars/
Run Code Online (Sandbox Code Playgroud)
我需要创建一个“设置”剧本,它将复制 group_vars我使用的环境中的一些文件。
例如ansible-playbook -i environments/dev setup.yml --extra-vars="target=server1"
应该将文件从server1复制到environments/dev
目前我有任务:
tasks:
- name: Copy SSL certificate
fetch:
src: /path/to/file.crt
dest: <inventoty_path>
flat: yes
Run Code Online (Sandbox Code Playgroud)
但我不知道该用来做什么<inventory_path>。
是否有设置当前库存绝对路径的变量?或者一种获取它的方法(无需为此设置额外的变量)?
有几个“特殊变量”:
ansible_inventory_sourcesinventory_dirinventory_filehttps://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html
还有一个配置选项inventory:
https://docs.ansible.com/ansible/2.4/intro_configuration.html#inventory
您还可以设置环境变量: https://docs.ansible.com/ansible/2.4/config.html#envvar-ANSIBLE_INVENTORY