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
결과!!!!>< 메인 페이지가 바뀜~~
출처 : [6] 3대의 노드에 웹서버를 설치하고 기동해보자!(centos, ansible) (tistory.com)
'IT > CLOUD(AWS,Azure,GCP,Docker)' 카테고리의 다른 글
앤서블 Ansible 구성파일 / 관리노드 연결 (0) | 2023.11.11 |
---|---|
CentOS 7에 Ansible AWX를 설치하는 방법 (0) | 2023.11.11 |
Ansible (설치 및 ssh 연결) (0) | 2023.11.11 |
Ansible Python 버전 업그레이드 2.7 to 3.6 (0) | 2023.11.11 |
CentOS 7에서 Python 3.10이상 버전 사용하기 전 OpenSSL 1.1.1을 RPM으로 설치하는 방법 (0) | 2023.11.11 |