본문으로 바로가기

Ansible 사용해서 Ec2 플레이북 배포

category Ansible 2021. 7. 4. 03:18
반응형

aws_ec2 plugin을 통해서 받아온 인벤토리에 플레이북을 사용해 아파치 서버를 설치하고 구동시키는 것을 해보려 한다.

 

1. 디렉토리 구조 확인

2. ansible.cfg 파일 수정

[defaults]
host_key_checking= False
interpreter_python=auto_silent
inventory = /ansible/inventory/aws_ec2.yaml
private_key_file= /ansible/file/real.pem
remote_user = centos


[inventory]
enable_plugins= aws_ec2,yaml

인스턴스에 원격접속을 해야하기 때문에 인스턴스를 생성할 때 지정해놨던 pem 파일의 경로를 지정해 놓는다.

pem 파일을 0400으로 권한 변경하는것 주의 변경하지 않으면 오류가 발생한다.

 

*참고 - ansible 설정파일 참조 순서*
1. 현재 디렉토리의 ansible.cfg
2. $HOME/.ansible.cfg
3. /etc/ansible/ansible.cfg

 

 

3. 플레이북 작성

 

 

--
- name: centos7
  become: true
  hosts: all
  tasks:
    - name: httpd-download
      yum:
        name: httpd
        state: present

    - name: httpd start
      ansible.builtin.systemd:
        name: httpd
        state: reloaded

인스턴스 이미지가 centos7 이기 때문에 yum 모듈을 사용하여 httpd를 설치해 줬고,

ansible.builtin.systemd라는 모듈을 사용해 httpd를 재실행 시켜주었다.

https://runebook.dev/ko/docs/ansible/collections/ansible/builtin/systemd_module

 

Ansible - ansible.builtin.systemd – 서비스 관리 - Note This module is part of ansible-base and included in all Ansible in

status complex success `systemctl show`에서 반환 된 키 = 값 쌍이있는 사전. Sample: { 'ActiveEnterTimestamp': 'Sun 2016-05-15 18:28:49 EDT', 'ActiveEnterTimestampMonotonic': '8135942', 'ActiveExitTimestampMonotonic': '0', 'ActiveState': 'active

runebook.dev

4.확인

공인아이피로 접속이 잘 되는것을 확인 하였다. 지금은 한대만을 하였지만, 여러개의 인스턴스가 있다면 전부 웹서버를 설치하고 서버를 구동하는것이 가능하다. 앤서블의 편리함이다.

반응형