728x90
[Ansible] Host 서버에 Nginx 설치하기
앞선 포스팅에서 Ping 테스트를 성공한 서버에 nginx를 설치해보자
제어노드가 호스트서버에 SSH 연결을 하는 방법은 아래 포스팅을 참고
https://heywantodo.tistory.com/109
0. 작업 폴더 생성
앤서블은 원격 호스트에 yaml 파일로 작업수행을 하는데,
파일 관리를 위해 작업 폴더를 따로 생성
mkdir -p ~/ansible_test/inventory
mkdir ~/ansible_test/playbook
1. inventory 파일 생성
🔎 인벤토리 파일(Inventory file)?
Ansible이 관리해야 할 원격 호스트의 목록과 연결 정보를 포함하는 파일
일반적으로 INI 형식 또는 YAML 형식으로 작성됨
cd ~/ansible/inventory
vi inventory.ini
~
[web_servers]
server1 ansible_host=ip ansible_user=ubuntu ansible_ssh_private_key_file=/path/to/private_key
server2 ansible_host=ip ansible_user=ubuntu ansible_ssh_private_key_file=/path/to/private_key
[database_servers]
server3 ansible_host=ip ansible_user=ubuntu ansible_ssh_private_key_file=/path/to/private_key
~
앞선 포스팅에서처럼 비밀번호 없이 연결이 되는 상태라면, ansible_private_key_file은 생략해도 됨
2. 플레이북 파일 생성
🔎플레이북 (Playbook)?
Ansible에서 작업의 단위를 정의하는 파일
YAML 형식으로 작성되며, 특정 작업을 수행하기 위해 Ansible에게 지시하는 명령을 기술
주로 구성 관리, 자동화 작업, 배포등의 작업을 수행하는 데 사용됨
플레이북을 이용해 Host 서버에 nginx를 설치해보자
hosts를 web_server로 지정을 했기 때문에, web_server 그룹에만 설치가 됨
cd ~/ansible_test/playbook
vi nginx_install.yml
~
- name: install nginx
hosts: web_server
become: true
tasks:
- name: install nginx package
apt:
name: nginx
state: present
~
3. Ansible 실행
ansible-playbook -i ../inventory/inventory.ini nginx_install.yml
SSH 연결이 잘 된다면 설치가 성공적으로 된 모습을 볼 수 있음
4. 호스트 서버에서 설치 확인
sudo systemctl nginx
👍
반응형
'📚 IaC > Ansible' 카테고리의 다른 글
[Ansible] Docker로 매니지드 서버(호스트) 생성하기 (0) | 2023.09.15 |
---|---|
[Ansible] 앤서블 연결하기 (Ansible SSH Connect) (2) | 2023.06.09 |
[Ansible] Ansible 개요와 설치 (0) | 2023.06.07 |