# Ad-hoc 명령으로 wordpress 구성하기
https://wordpress.org/download/releases/
1. apache2 패키지 설치
2. 서비스 실행 확인
3. wordpress파일 다운
4. 아카이브 풀기
1. apache 패키지 설치 2. 서비스 실행 확인 3. wordpress파일 다운 4. 아카이브 풀기
이것을 playbook으로 작성해보자
# playbook으로 wordpress 구성하기
플레이북은 리스트로 시작한다. Adhoc 커멘드를 사용했을 때 작업 할 managed node , module, pattern, parameter가 필요했다
hosts 키워드 (필수) - 관리노드의 pattern (인벤토리에 있던 패턴)
tasks 작업 리스트, 4개의 작업 4개의 리스트 - module
module의 value - parameter
파일 전체가 playbook (하나 이상의 play가 있어야한다)
첫번째 리스트 play (하나 이상의 task가 있어야한다)
tasks 속성 밑의 하나하나의 리스트가 task(작업,모듈)
리스트 목록은 순서가 있다 (앤서블은 절차적인 언어 사용)
순서를 바꾸면 안됨
문법 오류가 있는지 확인한다
playbook파일에 문법적 오류가 있으면 에러메세지를 출력한다
check (체크모드) 옵션
실제 시스템에 변경사항을 만들지 않고 시뮬레이션 하는것 (dry run)
전 변경사항이 일어나야지만 다음 작업을 할 수 있는경우 오류가 나오기도 한다 (skipped)
체크모드에서 오류가 발생하고 실제로는 오류가 발생하지 않을 수 있다
실제 변경되는 내용을 출력 해준다
파일이 어떻게 바뀌는지 보기 위해 주로 파일을 복사 할 때 사용한다
task의 목록 확인
문법상 오류를 잡아주는것 뿐만아니라 전체 포맷을 잡아준다
권한이 없어서 오류가 난다
패키지 설치 , 서비스 제어, 아카이브를 풀 때 관리자 권한이 필요하다
권한을 주어 실행
name이 없어도 되지만 작업이 많으면 디버깅하기 힘들기 때문에 작업마다 이름을 붙여주는것을 권장한다
TASK에 모듈이름이 나오지 않고 사용자가 지정 한 이름이 나온다
ansible -m apt -a 'name=apache2 state=presen' -b 192.168.200.101
ansible -m apt -a 'name=apache2 state=absent' -b 192.168.200.101
ansible -m get_url -a 'url=https://wordpress.org/wordpress-5.8.tar.gz dest=/tmp ' -b 192.168.200.101
ansible -m unarchive -a 'src=/tmp/wordpress-5.8.tar.gz dest=/var/www/html remote_src=true' -b 192.168.200.101
vi wordpress.yaml
cat wordpress.yaml
- hosts: 192.168.200.101
tasks:
- apt:
name: apache2
state: present
- service:
name: apache2
state: started
- get_url:
url: https://wordpress.org/wordpress-5.8.tar.gz
dest: /tmp/wordpress-5.8.tar.gz
- unarchive:
src: /tmp/wordpress-5.8.tar.gz
remote_src: true
dest: /var/www/html
ansible-playbook wordpress.yaml
ansible-playbook wordpress.yaml --syntax-check
ansible-playbook wordpress.yaml -C
ansible-playbook wordpress.yaml --check
ansible-playbook wordpress.yaml --check --diff
ansible-playbook wordpress.yaml --list-tasks
ansible-lint wordpress.yaml
ansible-playbook wordpress.yaml -b
vi wordpress.yaml
cat wordpress.yaml
- name: Wordpress Deployment
hosts: 192.168.200.101
tasks:
- name: Install Apache2 Service
apt:
name: apache2
state: present
- name: Starting Apache2 Service
service:
name: apache2
state: started
- name: Download Wordpress Archive
get_url:
url: https://wordpress.org/wordpress-5.8.tar.gz
dest: /tmp/wordpress-5.8.tar.gz
- name: Unarchive Wordpress
unarchive:
src: /tmp/wordpress-5.8.tar.gz
remote_src: true
dest: /var/www/html
'클라우드 > 앤서블(Ansible)' 카테고리의 다른 글
앤서블 Ansible 플레이북 ( playbook ) / wordpress 삭제 구성하기 (0) | 2021.07.29 |
---|---|
앤서블 Ansible 플레이북 ( playbook ) / wordpress 구성하기 2 (0) | 2021.07.29 |
앤서블 Ansible Ad-hoc 명령으로 mysql 구성하기 (0) | 2021.07.28 |
앤서블 Ansible 파일 모듈 / 네트워크 도구 모듈 / 패키지 모듈 / 시스템 모듈 (0) | 2021.07.28 |
앤서블 Ansible 명령 모듈 (0) | 2021.07.28 |