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]