ansible

[Ansible] CentOS 7.x 설치 및 playbook 사용법 기초

IT로로 2020. 1. 29. 16:09

Ansible

앤서블이란 서버의 설정 및 관리 소프트웨어 배포, 다수의 서버구성에 대해 자동화를 구성하여 관리할 수 있는 도구입니다. 

 

Ansible 사용조건 

1. ssh 접속이 가능한 호스트라면 ansible 작업을 수행 가능 

2. ansible을 운영할 서버에서 public ssh-key를 생성하여 client host로 전송해야한다.(안하면 계속 비밀번호 쳐야됨)

[root@manager ~] ssh-keygen
[root@manager ~] ssh-copy-id root@<host_ip>

 

Ansible 설치 및 Client 설정

[root@manager ~] yum install -y epel-release
[root@manager ~] yum install -y ansible 

설치완료 되 었으면 /etc/ansible/hosts 파일에 Client host ip를 등록해야한다.(Inventory) 

[root@manager ~] vim /etc/ansible/hosts 

[test]                                                                                                                                                  client IP                                                                                                                                              client IP          

[root@manager ~] ansible all -m ping 

위와같이 나오면 성공

 

Ansible Playbook을 통한 Nginx 설치 

[root@manager ~] vim /etc/ansible/nginx.yml

---
- hosts: srlee
  remote_user: root
  tasks:
        - name: Install nginx web server
          yum: name=nginx state=latest
          notify:
            - restart nginx
  handlers:
        - name: restart nginx
          service: name=nginx state=restarted

해당 파일에 YAML문법으로 Playbook을 작성한다 Task, Handlers 를 작성한 것 이다.

위에 내용을 대략설명하면 

hosts: Task를 실행할 Host, Host Group을 지정

remote_user: 클라이언트 서버에서 task를 실행할 유저를 지정 

tasks: task를 지정

name: task의 이름을 지정 

yum: 작업할 내용을 정의 

notify: task작업이 완료된 후 수행할 액션을 handlers를 참조하여 수행

handlers name: task nofity에 작성된것과 맵핑됨 

handlers service: task의 notify에 name과 동일한 내용이 있을 경우 작동 

 

파일작성이 완료 되었으면 아래 명령어를 적용하여 playbook를 실행시키자

[root@manager ~] ansible-playbook nginx.yml -f 10 

위와 같이 나오면 성공 173ㄷ은 nginx가 start가 안되었는데 로그도 그대로 나오니 확인해보자