Ansible - 생성 후 AWS EC2 인스턴스 구성

Ansible - 생성 후 AWS EC2 인스턴스 구성

CloudFormation 템플릿에서 AWS EC2 인스턴스를 생성하는 Ansible 플레이북이 있습니다. 일단 생성되면 Ansible을 통해 구성하고 싶습니다.

이것이 내가 지금 가지고 있는 것입니다:

---
- name: Create Amazon Linux Instance
  hosts: localhost
  connection: local
  gather_facts: no
  vars_files:
  - config.yml

  tasks:
  - name: Create CloudFormation Stack
    cloudformation:
      stack_name: "{{ stack_name }}"
      state: present
      template: basic-ec2-stack.json
      template_parameters:
        KeyName: "{{ key_name }}"
        VpcId: "{{ vpc_id }}"
        SubnetId: "{{ subnet_id }}"
        ...
    register: stack

  # The new instance name is in stack.stack_outputs.DnsName ...
  - debug: var=stack.stack_outputs.DnsName

무엇을 해야 할까요? 새로 생성된 호스트에 대해 플레이북의 나머지 부분을 어떻게 실행합니까?

예를 들어, 사용자 "blah"를 생성하고 싶지만 localhost(cloudformation 모듈이 실행 중인 위치)가 아닌 새 EC2 인스턴스에서 생성하려고 합니다. 어떻게 해야 하나요?

감사해요!

답변1

그룹에 인스턴스를 추가할 수 있어야 합니다.호스트 추가메모리 인벤토리를 생성합니다.

   - name: Add instance  to host group
     add_host: hostname={{ item.DnsName }} groups=cloud_formation
     with_items: stack.stack_outputs

   - name: Wait for SSH to come up
     wait_for: host={{ item.DnsName }} port=22 delay=60 timeout=320 state=started
     with_items: stack.stack_outputs

   - name: Run your play
     hosts: cloud_formation
     ----- your play here -------

관련 정보