我有许多Ansible环境:
environments
dev
hosts
group_vars/
prod
hosts
group_vars/
我需要创建一个“设置”剧本,该剧本将在我使用的环境的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
但是我不知道<inventory_path>
用什么。
是否存在用于设置当前广告资源绝对路径的变量?还是一种获取它的方式(无需为此设置额外的变量)?
答案 0 :(得分:1)
有一个魔术变量with
,该变量返回当前清单文件的路径。 Doc:https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#magic-variables-and-how-to-access-information-about-other-hosts
答案 1 :(得分:1)
有几个“特殊变量”:
ansible_inventory_sources
inventory_dir
inventory_file
https://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