1. Ansible server에 playbook 만들기
[root@AnsibleServer ~]# vi test.yml
---
- hosts: nginx
remote_user : root
tasks:
- name: install epel-release
yum : name=epel-release state=latest
- name: install nginx web server
yum: name=nginx state=present
- name : Start nginx web server
service: name=nginx state=started
2. playbook 실행하기
[root@AnsibleServer ~]# ansible-playbook test.yml -k
꼭 -k를 넣기로 하자,,,, -k 안넣었더니 아래 같은 에러남...ㅠㅠ
fatal: [192.168.35.12]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).", "unreachable": true}
설치는 잘 됐는데..접속이 안됨.. 방화벽 때문임..
[root@AnsibleServer ~]# ansible nginx -m shell -a "systemctl stop firewalld" -k
SSH password:
192.168.35.11 | CHANGED | rc=0 >
192.168.35.13 | CHANGED | rc=0 >
192.168.35.12 | CHANGED | rc=0 >>
전체 노드에 대해 firewalld를 내려줌.
그럼 이렇게 접근 가능한 것을 볼 수 있음!!
누가 만들어 놓은 웹 페이지를 띄워보기
[root@AnsibleServer ~]# curl -o index.html https://www.nginx.com
위 명령어로 nginx 홈페이지의 html을 로컬 index.html로 다운로드 할 수 있음
이 html 파일을 노드들에게 전송하고 노드들이 이 페이지를 띄울 수 있게 할 것임!!
---
- hosts: nginx
remote_user: root
tasks:
- name: install epel-release
yum: name=epel-release state=latest
- name: install nginx web server
yum: name=nginx state=present
- name : upload default index.html for web server
copy : src=index.html dest=/usr/share/nginx/html mode=0644
- name: Start nginx web server
service: name=nginx state=started
playbook은 멱등성을 가지기 때문에 바로 추가하고 실행해도 됨!!
hosts: /etc/ansible/hosts의 [nginx] 부분의 host들만 사용
remote_user를 root로 꼭 할 필요는 없음
epel-release : nginx는 기본 설치 파일에는 없기 때문에 확장 후 다운로드 받기 위함
mode=0644 : 보안을 위함
[root@AnsibleServer ~]# ansible-playbook test.yml -k
SSH password:
PLAY [nginx] *******************************************************************************************************************************************************************
TASK [Gathering Facts] *********************************************************************************************************************************************************
ok: [192.168.35.11]
ok: [192.168.35.13]
ok: [192.168.35.12]
TASK [install epel-release] ****************************************************************************************************************************************************
ok: [192.168.35.12]
ok: [192.168.35.11]
ok: [192.168.35.13]
TASK [install nginx web server] ************************************************************************************************************************************************
ok: [192.168.35.11]
ok: [192.168.35.13]
ok: [192.168.35.12]
TASK [upload default index.html for web server] ********************************************************************************************************************************
changed: [192.168.35.11]
changed: [192.168.35.12]
changed: [192.168.35.13]
TASK [Start nginx web server] **************************************************************************************************************************************************
ok: [192.168.35.13]
ok: [192.168.35.11]
ok: [192.168.35.12]
PLAY RECAP *********************************************************************************************************************************************************************
192.168.35.11 : ok=5 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.35.12 : ok=5 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.35.13 : ok=5 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
결과!!!!>< 메인 페이지가 바뀜~~
'네트워크 > 네트워크 자동화' 카테고리의 다른 글
[심화][1]Ansible 심화를 위한 환경 설명 with 베이그런트 (0) | 2021.02.18 |
---|---|
[000] ansible playbook editor - ansible vim 설치하기 (0) | 2021.02.03 |
[5] Ansible 활용하기 - 작업을 단계별로 검증하여 실행하기(playbook 활용) (0) | 2021.02.03 |
[00]YAML(Playbook) 입력시 주의점!! 탭이 인식 안된다고? (0) | 2021.02.03 |
[4] Ansible 활용하기 기초편 (0) | 2021.02.01 |