私は一時的なEC2インスタンスを作成するための簡単なプレイプラウを作成しています。私は、この要約を受けた脚本を走った最初の時間 -以前に作成したホストを使用するのはなぜですか?
PLAY RECAP *********************************************************************
172.31.14.136 : ok=1 changed=0 unreachable=0 failed=0
localhost : ok=3 changed=1 unreachable=0 failed=0
それは私が(ホストと無関係な)ので、私はマイナーな変更を行ったものを微調整したい実現し、再びそれを実行し、この要約を持って走った後 -
PLAY RECAP *********************************************************************
172.31.13.74 : ok=1 changed=0 unreachable=0 failed=0
172.31.14.136 : ok=1 changed=0 unreachable=0 failed=0
localhost : ok=3 changed=1 unreachable=0 failed=0
私のプレイブックは非常にシンプルで、2つのホスト(ローカルホストと新しく作成されたEC2インスタンスのip)のみが必要です。ここでは脚本がある - それは最初の実行172.31.14.136
からIPがセカンドランに関与していることである理由
- name: Provision instance
hosts: localhost
vars_files:
- group_vars/test_ec2.yml
roles:
- { role: ec2_create, product: "tmp_instance_test" }
- name: Configure SSH Authorized Keys
hosts: tmp_instance_test
vars_files:
- group_vars/test_ec2.yml
roles:
- { role: yarn }
私の質問はありますか?ここで更新
は役割ec2_create
ある -
- name: Create instance
ec2:
image: "{{ image }}"
instance_type: "{{ instance_type }}"
aws_access_key: "{{ aws_access_key_id }}"
aws_secret_key: "{{ aws_secret_access_key }}"
key_name: "{{ key_name }}"
instance_tags:
Name: "{{ name }}"
Environment: "{{ env }}"
Product: "{{ product }}"
Service: "{{ service }}"
region: "{{ region }}"
volumes:
- device_name: "{{ disk_name }}"
volume_type: "{{ disk_type }}"
volume_size: "{{ disk_size }}"
delete_on_termination: "{{ delete_on_termination }}"
group: "{{ security_group_name }}"
wait: true
vpc_subnet_id: "{{ vpc_subnet_id }}"
count: "{{ instance_count }}"
monitoring: "{{ detailed_monitoring }}"
instance_profile_name: "{{ iam_role }}"
assign_public_ip: "{{ assign_public_ip }}"
register: ec2
- name: Wait for SSH to come up
wait_for: host={{ item.private_ip }} port=22 timeout=600 state=started
with_items: "{{ ec2.instances }}"
- name: refresh inventory
meta: refresh_inventory
アップデート2
インベントリ -
[localhost]
localhost ansible_ssh_user=deployer ansible_connection=local ansible_python_interpreter=/usr/bin/python
[tag_Product_tmp_instance_test]
[tmp_instance_test:children]
tag_Product_tmp_instance_test
[tmp_instance_test:vars]
ansible_ssh_user=ubuntu
ansible_ssh_private_key_file=~/.ssh/BaseDev
'ec2_create'ロールの中身は誰が知っていますか? –
@ ConstantinSuvorov私はec2_createロール –
で質問を更新しました。もう一つの推測です:あなたは 'ec2.py'のようなものによって生成された動的インベントリを使用していますか? –