2016-02-05 19 views
8

Cố gắng đăng ký phiên bản ec2 trong AWS với mô-đun ec2_ami của Ansible và sử dụng ngày/giờ hiện tại làm phiên bản (chúng tôi sẽ tạo ra nhiều AMI trong tương lai).'ansible_date_time' không được xác định

Đây là những gì tôi có:

- 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 

Từ ami_vars.yml:

ami_version: "{{ ansible_date_time.iso8601 }}" 
ami_name: ami_test_{{ ami_version }} 

Khi tôi chạy đầy đủ playbook, tôi nhận được thông báo lỗi này:

fatal: [localhost]: FAILED! => {"failed": true, "msg": "ERROR! ERROR! ERROR! 'ansible_date_time' is undefined"} 

Tuy nhiên , khi chạy lệnh gỡ lỗi riêng biệt, từ một sổ tay riêng biệt, nó hoạt động tốt:

- name: Test date-time lookup 
    hosts: localhost 
    connection: local 
    tasks: 
    - include_vars: ami_vars.yml 
    - debug: msg="ami version is {{ ami_version }}" 
    - debug: msg="ami name is {{ ami_name }}" 

Kết quả:

TASK [debug] ******************************************************************* 
ok: [localhost] => { 
    "msg": "ami version is 2016-02-05T19:32:24Z" 
} 

TASK [debug] ******************************************************************* 
ok: [localhost] => { 
    "msg": "ami name is ami_test_2016-02-05T19:32:24Z" 
} 

Bất cứ ý tưởng gì đang xảy ra?

Trả lời

13

Remove này:

gather_facts: false 

ansible_date_time là một phần của sự kiện và bạn không thu thập nó.

+0

Hoàn hảo, cảm ơn! Bây giờ nhận được một lỗi khác nhau nhưng đó là khá nhiều chỉ là vấn đề định dạng lol. –

Các vấn đề liên quan