尝试使用Ansible的ec2_ami模块在AWS中注册ec2实例,并使用当前日期/时间作为版本(我们最终将在未来制作大量AMI).
这就是我所拥有的:
- name: Create new AMI
hosts: localhost
connection: local
gather_facts: false
vars:
tasks:
- include_vars: ami_vars.yml
- debug: var=ansible_date_time
- name: Register ec2 instance as AMI
ec2_ami: aws_access_key={{ ec2_access_key }}
aws_secret_key={{ ec2_secret_key }}
instance_id={{ temp_instance.instance_ids[0] }}
region={{ region }}
wait=yes
name={{ ami_name }}
with_items: temp_instance
register: new_ami
Run Code Online (Sandbox Code Playgroud)
来自ami_vars.yml:
ami_version: "{{ ansible_date_time.iso8601 }}"
ami_name: ami_test_{{ ami_version }}
Run Code Online (Sandbox Code Playgroud)
当我运行完整的剧本时,我收到以下错误消息:
fatal: [localhost]: FAILED! => {"failed": true, "msg": "ERROR! ERROR! ERROR! 'ansible_date_time' is undefined"}
Run Code Online (Sandbox Code Playgroud)
但是,当从单独的playbook单独运行debug命令时,它可以正常工作:
- name: Test date-time lookup
hosts: localhost …Run Code Online (Sandbox Code Playgroud)