ITFragile
[Ansible] 02. Playbook 작성 본문
main Playbook에 LB, WEB, DB 모두 구분하여 작성하였으며,
공통 파일과 변수 파일을 따로 관리할 수 있도록 한다.
1. 공통 파일
# yum.yaml
- name: This task is {{ pkg_name }} install
yum:
name: "{{ pkg_name }}"
state: latest
# service.yaml
- name: This task is {{ svc_name }} service start
service:
name: "{{ svc_name }}"
state: started # stopped, restarted
enabled: true # false
# ufw.yaml
- name: This task is firewall rule setting
ufw:
rule: allow
port: "{{ ufw_name }}"
# update.yaml
- name: update {{ pkg_name }}
yum:
name: "{{ pkg_name }}"
update_cache: yes
2. 변수 파일
# db.yaml
pkg_name: mariadb-server
svc_name: mariadb
firewall_name: mysql
# lb.yaml
pkg_name: haproxy
svc_name: haproxy.service
ufw_name: http
# web.yaml
pkg_name: apache2
svc_name: apache2
ufw_name: http
3. 메인 플레이북 작성
[main.yaml]
# main.yaml
---
- name: LB Playbook
hosts: lb
vars_files:
vars/lb.yaml
tasks:
- import_tasks: update.yaml # import_tasks: 파일을 불러와서 사용
- import_tasks: apt.yaml
- import_tasks: service.yaml
- import_tasks: service.yaml
vars:
- svc_name: ufw
- import_tasks: ufw.yaml
- import_tasks: haproxy.yaml
- name: WEB Playbook
hosts: web
vars_files:
vars/web.yaml
tasks:
- import_tasks: update.yaml
- import_tasks: apt.yaml
- import_tasks: service.yaml
- import_tasks: service.yaml
vars:
- svc_name: ufw
- import_tasks: ufw.yaml
- import_tasks: index.yaml
- name: DB Playbook
hosts: db
vars_files:
vars/db.yaml
tasks:
- import_tasks: update.yaml
- import_tasks: apt.yaml
- import_tasks: service.yaml
- import_tasks: service.yaml
vars:
- svc_name: ufw
- import_tasks: ufw.yaml
4. 플레이북 실행
ansible-playbook main.yaml
'Project' 카테고리의 다른 글
[Ansible] 04. WEB 로드밸런싱 (0) | 2023.03.16 |
---|---|
[Ansible] 03. HAProxy 설정 (0) | 2023.03.16 |
[Ansible] 01. 작업 환경 구성 (0) | 2023.03.15 |
[Linux] 04. WEB - DB 로드밸런싱 (0) | 2023.03.15 |
[Linux] 03. DB 이중화 (0) | 2023.03.15 |