Notice
Recent Posts
Recent Comments
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

ITFragile

[Ansible] 02. Playbook 작성 본문

Project

[Ansible] 02. Playbook 작성

경요 2023. 3. 15. 16:38

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