[응용] 다양한 환경을 앤서블(Ansible)로 관리하기 with 베이그런트(Vagrant) - 인프런 | 강의 (inflearn.com)
1. Nginx 설치 및 삭제
1.1 nginx 설치용 playbook 작성 및 실행
# nginx_install.yml
---
- name: install nginx on CentOS
hosts: CentOS
gather_facts: no
become: yes
tasks:
- name: install epel-release
yum:
name: epel-release
state: latest
- name: install nginx
yum:
name: nginx
state: present
- name: upload default index.html for web server
get_url:
url: https://www.nginx.com
dest: /usr/share/nginx/html/
mode: 0644
- name: Start nginx web server
service:
name: nginx
state: started
- become: yes
root 권한을 획득하는 명령어
- get_url
지정한 url 주소의 웹 페이지를 다운 받는 모듈이다.
anp nginx_install_yml -k를 사용하여 플레이북을 실행시킨다.
anp는 vagrant로 centos 서버 구성시에 alias를 설정하여 alias anp=ansible-playbook이 등록되어있는 상태이다.
1.2 nginx 삭제 playbook 작성 및 실행
# nginx_remove.yml
---
- name: Remove nginx on CentOS
hosts: CentOS
gather_facts: no
become: yes
tasks:
- name: remove epel-release
yum:
name: epel-release
state: absent
- name: remove nginx web server
yum:
name: nginx
state: absent
위와 같이 작성하여 epel-release와 nginx 삭제를 yum 모듈을 통해 진행한다.
anp nginx_remove.yml -k를 입력하여 플레이북을 실행하면 정상적으로 nginx 패키지가 모든 관리 대상 노드들에서 제거된다.
2. 시간대 timezone 변경하기
ansible-server에서 date 명령어를 사용하면 현재 시간이 UTC 기준으로 설정되어 실제 한국 시간과 3시간 차이가 난다.
2.1 시간대 변경을 위한 playbook 작성 및 실행
# timezone.yml
---
- name: Setup linux timezone
hosts: CentOS
gather_facts: no
become: yes
tasks:
- name: set timezone to Asia/Seoul
timezone:
name: Asia/Seoul
anp timezone.yml -k를 입력하여 플레이북을 실행시킨다.
node01로 ssh 접속하여 date 명령어를 호출하면 현재 한국 시간과 동일하게 표시되는 것을 볼 수 있다.
3. NFS 서버 및 클라이언트 구성
---
- name: Setup for nfs server
hosts: localhost
gather_facts: no
tasks:
- name: make nfs_shared directory
file:
path: /home/vagrant/nfs_shared
state: directory
mode: 0777
- name: configure /etc/exports
become: yes
lineinfile:
path: /etc/exports
line: /home/vagrant/nfs_shared 192.168.1.0/24(rw,sync)
- name: nfs service start
become: yes
service:
name: nfs
state: restarted
- name: Setup for nfs client
hosts: CentOS
gather_facts: no
tasks:
- name: make nfs_client directory
file:
path: /home/vagrant/nfs
state: directory
- name: mount point directory as client
become: yes
mount:
name: /home/vagrant/nfs
src: 192.168.1.10:/home/vagrant/nfs_shared
fstype: nfs
opts: nfsvers=3
state: mounted
file 모듈은 디렉토리 또는 파일을 생성하는 모듈이다. 즉 공유될 디렉토리를 생성하기 위해 사용되었다.
lineinfile 모듈을 사용하면 특정 파일에 내용을 추가할 수 있다.
mount 모듈을 사용하여 클라이언트의 nfs 디렉토리를 nfs 서버에 존재하는 nfs_shared 디렉토리에 마운트한다.
anp nfs.yml -k를 입력하여 플레이북을 실행한다.
sudo exportfs -v 를 입력하면 현재 공유중인 디렉토리 정보가 출력된다.
node01에 접속하여 touch $HOSTNAME을 입력하여 ansible-node01 파일을 생성한다.
ansible-server의 nfs_shared 디렉토리에서도 ansible-node01 파일이 확인된 것을 볼 수 있다.
'Ansible' 카테고리의 다른 글
기존 구성에 Window Server node 추가 및 서버 구성 (0) | 2021.07.17 |
---|---|
기존 구성에 Ubuntu node 추가 및 서버 구성 (0) | 2021.07.16 |
Vagrant를 활용하여 Ansible 서버와 노드 구성하기 (0) | 2021.07.14 |
Vagrant를 활용하여 Ansible server 추가 설정 프로비저닝 (0) | 2021.07.13 |
Vagrant를 활용하여 Ansible server 프로비저닝 (0) | 2021.07.13 |