📚 IaC/Ansible

[Ansible] Host 서버에 Nginx 설치하기

heywantodo 2023. 6. 10. 16:45
728x90
반응형

[Ansible] Host 서버에 Nginx 설치하기

앞선 포스팅에서 Ping 테스트를 성공한 서버에 nginx를 설치해보자

제어노드가 호스트서버에 SSH 연결을 하는 방법은 아래 포스팅을 참고

https://heywantodo.tistory.com/109

 

[Ansible] 앤서블 연결하기 (Ansible SSH Connect)

[Ansible] 앤서블 연결하기 (Ansible SSH Connect) Ansible은 원격 서버와 SSH를 통해 구성 관리 및 자동화 작업을 수행함 SSH를 통해 원격 서버와 통신하는게 앤서블을 사용하는 첫번째 단계 1. 제어노드(Contr

heywantodo.tistory.com

 

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

👍

 

728x90
반응형