我正在使用Ansible在AWS上自动配置EC2实例。该计划是为每个库存(生产/分期/演示/等)提供一台主机。
我想:
inventories/production
ansible-playbook -i inventories/production playbooks/provision_ec2_instance.yml
),该剧本使用add_host将新创建的主机添加到inventories/production
问题是:如果清单文件为空,Ansible将仅使用implicit localhost,而不会使inventory_file
变量可用,因此以下操作将失败,因为inventory_file
是未定义的:
[...]
- name: Provision EC2 instance.
ec2:
region: "{{ region }}"
key_name: "key_{{ inventory_file }}"
group: ["default", "firewall_{{ inventory_file }}"]
[...]
是否可以在剧本中包含此信息(清单名称)?还是有更好的方法来做到这一点?