반응형
앤서블 플레이북 키워드(Playbook Keywords)
Ansible 플레이북(Playbook)은 Ansible에서 자동화 작업을 수행하기 위한 주요 구성 파일입니다. 각 플레이북은 여러 작업(task)들을 정의하며 시스템이나 네트워크 장비 등의 상태를 원하는 방향으로 변경하는 데 사용됩니다.
주요 Ansible 플레이북 키워드
name
- 설명 : 작업 또는 플레이의 이름을 정의합니다. 사람이 이해하기 쉽게 설명하는 부분입니다
- 위치 : 플레이북 또는 개별 작업에서 사용됩니다.
name: Install NGINX
hosts
- 설명 : 이 플레이를 실행할 호스트 그룹을 지정합니다.
- 위치 : 플레이 단위에서 사용됩니다.
hosts: webservers
tasks
- 설명 : 실행할 작업 목록을 정의하는 곳입니다. 각 작업은 모듈 호출 또는 다른 작업일 수 있습니다.
- 위치 : 플레이 안에서 사용됩니다.
tasks:
- name: Install NGINX
apt:
name: nginx
state: present
vars
- 설명 : 변수를 정의합니다. 플레이 내에서 사용할 변수들을 설정합니다.
- 위치 : 플레이나 개별 작업에서 사용할 수 있습니다.
vars:
nginx_version: 1.18.0
roles
- 설명 : 사전에 정의된 역할을 호출합니다. 역할(Role)은 재사용 가능한 작업 집합입니다.
- 위치 : 플레이에서 사용됩니다.
roles:
- nginx
- database
handlers
- 설명 : 조건이 충족될 때(예: 파일이 변경되었을 때) 실행되는 작업입니다. 일반적으로 서비스 재시작 등에 사용됩니다.
- 위치 : 플레이나 개별 작업 내에서 사용됩니다.
handlers:
- name: restart nginx
service:
name: nginx
state: restarted
notify
- 설명 : 특정 작업이 변경될 때 실행할 핸들러를 호출합니다.
- 위치 : 작업에서 사용됩니다.
- name: Configure NGINX
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: restart nginx
gather_facts
- 설명 : Ansible이 실행할 때, 원격 시스템의 환경 정보(사실)를 수집할지 여부를 결정합니다.
- 위치 : 플레이에서 사용됩니다.
gather_facts: false
728x90
become
- 설명 : 작업을 다른 사용자로 실행하도록 설정합니다. 일반적으로 루트 권한으로 작업을 실행할 때 사용됩니다.
- 위치 : 플레이나 개별 작업에서 사용됩니다.
become: yes
become_user
- 설명 : 특정 사용자가 되어 명령을 실행합니다.
- 위치 : 플레이나 작업에서 사용됩니다.
become_user: root
loop
- 설명 : 반복 작업을 정의할 때 사용됩니다.
- 위치 : 작업에서 사용됩니다.
- name: Install multiple packages
apt:
name: "{{ item }}"
state: present
loop:
- nginx
- mysql-server
- php
when
- 설명 : 조건부로 작업을 실행할지 여부를 결정합니다.
- 위치 : 작업에서 사용됩니다.
- name: Install nginx on Ubuntu
apt:
name: nginx
state: present
when: ansible_os_family == "Debian"
with_items
- 설명 : 반복 실행을 위한 이전 반복문 방식입니다. 새로운 버전에서는 loop로 대체되었습니다.
- 위치 : 작업에서 사용됩니다.
with_items:
- package1
- package2
ignore_errors
- 설명 : 작업이 실패하더라도 계속 실행되도록 설정합니다.
- 위치 : 작업에서 사용됩니다.
- name: Try to install package
apt:
name: non-existing-package
state: present
ignore_errors: yes
tags
- 설명 : 작업을 태그로 그룹화하여 특정 태그에 해당하는 작업만 선택적으로 실행할 수 있도록 합니다.
- 위치 : 작업이나 플레이에서 사용됩니다.
- name: Install nginx
apt:
name: nginx
state: present
tags:
- webserver
- install
import_playbook
- 설명 : 다른 플레이북을 포함할 때 사용합니다.
- 위치 : 플레이북에서 사용됩니다.
import_playbook: other_playbook.yml
block
- 설명 : 작업을 논리적인 그룹으로 묶어 실행합니다.
- 위치 : 플레이 내에서 사용됩니다.
block:
- name: Install nginx
apt:
name: nginx
state: present
- name: Start nginx
service:
name: nginx
state: started
Ansible 플레이북 예시
---
- name: Install and configure web servers
hosts: webservers
become: yes
vars:
nginx_version: 1.18.0
tasks:
- name: Install NGINX
apt:
name: nginx
state: present
- name: Start NGINX service
service:
name: nginx
state: started
참고URL
- Playbook Keywords : https://docs.ansible.com/ansible/latest/reference_appendices/playbooks_keywords.html
- ansible-playbook : https://docs.ansible.com/ansible/latest/cli/ansible-playbook.html
- Working with command line tools : https://docs.ansible.com/ansible/latest/user_guide/command_line_tools.html
728x90
반응형
'리눅스' 카테고리의 다른 글
ansible-playbook 명령어 (0) | 2022.11.02 |
---|---|
[Ansible] ansible-playbook apache(httpd) install (0) | 2022.11.02 |
[Ansible] facts 모듈(facts module) (0) | 2022.11.02 |
[Ansible] ansible-config 명령 (0) | 2022.11.01 |
[Ansible] ansible-doc 명령 (0) | 2022.11.01 |