티스토리 뷰

CLOUD/Infrastructure

[Ansible] Playbook

헐리 2022. 9. 12. 15:40

 

play의 필수 구성요소

1. name

2. hosts

3. tasks

 

예시

---
- name: Update web servers
  hosts: webservers
  remote_user: root

  tasks:
  - name: Ensure apache is at the latest version
    ansible.builtin.yum:
      name: httpd
      state: latest
  - name: Write the apache config file
    ansible.builtin.template:
      src: /srv/httpd.j2
      dest: /etc/httpd.conf

- name: Update db servers
  hosts: databases
  remote_user: root

  tasks:
  - name: Ensure postgresql is at the latest version
    ansible.builtin.yum:
      name: postgresql
      state: latest
  - name: Ensure that postgresql is started
    ansible.builtin.service:
      name: postgresql
      state: started

 

task 안에는 module이 있는데

 

- ansible.builtin.yum

- k8s

- yum

- package

 

등을 사용할 수 있다.

 

role

ㄴ play.yaml
ㄴ ./roles
     ㄴ ./role 1
     ㄴ ./role 2
     ㄴ ./role 3

 

ansible-galaxy init {role1} 명령어로 role1 (directory 구조) 을 만들 수 있다

role안에는 다음과 같은 디렉토리들이 있어 구조적으로 관리가 가능하다

 

./role1
  ㄴdefault
  ㄴfile
  ㄴhandler
  ㄴmeta
  ㄴtask
  ㄴtemplate
  ㄴtest
  ㄴvars

 

롤을 만들었으면 play에서 role을 사용하여 순차적으로 실행한다.

# play

- host: TARGET SERVER
  become: yes
  roles:
   - role 1
   - role 2
   - role 3

 

ansible을 실행하는 명령어는

ansible-playbook [playbook 파일명.yml]

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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
글 보관함