컬쥐네 다락방
Ansible | Playbook 본문
Ansible에서 Ad-hoc 명령을 통해 서버에 직접적으로 접속하지 않고도 여러 서버들을 관리할 수 있었다.
이런 방식을 yaml 파일을 통해 관리하고 정리하고 한번에 실행하는 방식이 Ansible의 Playbook이다.
- 야구 경기가 시작할 때 외치는 Playball에서 따왔다는 이야기가 있다.
Playbook
- playbook: YAML 파일
.yaml
,.yml
- play
- task
test.yaml
# Play
- hosts: host1
tasks:
# Task
- yum:
name: httpd
state: installed
# Task
- service
name: httpd
state: started
enabled: yes
vim
vim의 enhanced 모듈을 설치하면 탭키를 사용할 때 얼만큼 이동할 건지 지정할 수 있어서 문서 관리가 편해진다.
항상 띄어쓰기는 두 칸씩 해야하며 스페이스바가 아닌 탭키를 이용한 띄어쓰기는 인식하지 못하기 때문에 주의해야한다.
yum -y install vim-enhanced
~/.vimrc
syntax on
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 et ai
set cursorline
vim test.yaml
플레이북 실행
ansible-playbook <PLAYBOOK>.yaml
YAML 문법 확인
ansible-playbook wordpress.yaml --syntax-check
플레이북 시뮬레이션
ansible-playbook wordpress.yaml --check
텍스트의 변경 사항 확인
ansible-playbook wordpress.yaml --diff
--check 옵션과 함께 사용하는 경우가 많다.
실행할 시스템 제한
ansible-playbook wordpress.yaml --limit 192.168.100.12
적용될 호스트 목록
ansible-playbook wordpress.yaml --list-hosts
플레이북의 작업 목록
ansible-playbook wordpress.yaml --list-tasks
플레이북의 태그 목록
ansible-playbook wordpress.yaml --list-tags
- 이전에 Ad_hoc을 이용했던 Wordpress 구현을 플레이북으로 변경
- hosts: wp
tasks:
- yum:
name: https://rpms.remirepo.net/enterprise/remi-release-7.rpm
state: present
validate_certs: no
- yum_repository:
name: remi-safe
file: remi-safe
mirrorlist: http://cdn.remirepo.net/enterprise/7/safe/mirror
description: remi-safe
enabled: no
- yum_repository:
name: remi-php74
file: remi-php74
mirrorlist: http://cdn.remirepo.net/enterprise/7/php74/mirror
description: remi-php74
enabled: yes
gpgcheck: yes
gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
- yum:
name: httpd,php,php-mysqlnd,mariadb,mariadb-server,python2-PyMySQL
state: installed
- service:
name: httpd
state: started
enabled: yes
- service:
name: mariadb
state: started
enabled: yes
- get_url:
url: https://wordpress.org/wordpress-5.9.3.tar.gz
dest: /home/vagrant
- unarchive:
src: /home/vagrant/wordpress-5.9.3.tar.gz
remote_src: yes
dest: /var/www/html
owner: apache
group: apache
- mysql_db:
name: wordpress
state: present
login_user: root
- mysql_user:
name: wpadm
password: P@ssw0rd
state: present
login_user: root
priv: "wordpress.*:ALL"
- copy:
src: /var/www/html/wordpress/wp-config-sample.php
remote_src: yes
dest: /var/www/html/wordpress/wp-config.php
owner: apache
group: apache
- replace:
path: /var/www/html/wordpress/wp-config.php
regexp: database_name_here
replace: wordpress
- replace:
path: /var/www/html/wordpress/wp-config.php
regexp: username_here
replace: wpadm
- replace:
path: /var/www/html/wordpress/wp-config.php
regexp: password_here
replace: P@ssw0rd
'클라우드 > Ansible' 카테고리의 다른 글
Ansible | 반복문 (0) | 2022.04.18 |
---|---|
Ansible | Ansible 명령에서의 변수 활용 (0) | 2022.04.18 |
Ansible | Ad_hoc (0) | 2022.04.18 |
Ansible | 구성 파일 및 권한 설정 (0) | 2022.04.14 |
Ansible | 인벤토리 (0) | 2022.04.14 |
Comments