Ansible: 설치 및 설정

Ansible: 설치 및 설정

Ansible: 설치 및 설정

개요

Ansible은 IT 인프라 관리에 대한 장애 및 변경 사항 처리를 자동화하는 데 있어서 활용 가능한 인기있는 도구입니다. 이 가이드는 Ansible을 사용하여 IT 인프라를 관리하는 데 필요한 핵심 개념과, 시작하는 데 필요한 모든 것을 다룹니다.

Ansible 설치

Ansible은 기본적으로 파이썬을 사용하므로, 시스템에는 Python이 설치되어 있어야 합니다. 다음 명령을 사용하여 Ansible을 설치합니다.

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository --yes --update ppa:ansible/ansible
$ sudo apt-get install ansible 

이것으로 Ansible 설치가 완료됩니다. 설치 후, Ansible 버전을 확인할 수 있습니다.

 $ ansible --version 

Ansible 설정

Ansible은 SSH를 사용하여 호스트에 연결하므로, 모든 호스트에 대해 SSH 연결이 가능하고 인증서가 지정되어야 합니다. 또한 Inventory 파일을 작성하여 호스트 목록을 유지하고, 그룹을 만들어 이를 논리적으로 구분할 수 있습니다.

SSH 설정

SSH를 사용하려면 호스트에 대한 SSH 서비스가 활성화되어 있어야 합니다. 검색해보면 이를 위해 OpenSSH 패키지를 사용하는 것으로 알려져 있으며, 다음 명령을 실행하여 OpenSSH 패키지를 설치할 수 있습니다.

 $ sudo apt-get install openssh-server 

그리고 SSH가 올바르게 설치되었는지 확인하려면 다음 명령어를 사용합니다.

 $ sudo systemctl status ssh 

호스트 Inventory 파일 작성

Ansible Inventory 파일은 Ansible이 관리해야 하는 호스트 목록을 저장합니다. 예를 들어, 파일에는 인증정보(IP 주소 또는 DNS 이름), 호스트 Reboot와 같은 특별한 설정 등을 정의할 수 있습니다.

호스트 목록은 일반적으로 미리 정의된 파일에 저장되며, 각 호스트를 담당하는 그룹으로 구분됩니다. 그룹은 대부분 역할 또는 구성, 환경 또는 기능에 관련됩니다. Inventory 파일에 호스트를 추가하고, 일반적인 구성 방법을 작성하세요.

[servers]
server1.example.com
server2.example.com

[dbservers]
db1.example.com
db2.example.com 

Ansible Playbooks

Ansible Playbooks는 Ansible이 수행하는 작업을 정의합니다. 이를 통해 Ansible은 모듈 호출, 변수 정의, 조건문, 반복문, 팩트 수집 등 많은 작업을 수행할 수 있습니다.

Playbook을 작성하는 첫 번째 단계는 작업 목록을 찾는 것입니다. Playbooks은 YAML 형식으로 작성되며, 깊이 있는 들여쓰기를 사용하여 요구사항을 포함할 수 있습니다.

- hosts: webservers
  remote_user: serveradmin
  become: yes
  tasks:
  - name: Ensure package is installed
    apt:
      name: nginx
      state: latest 

Ansible Playbook 실행

이제 작성한 Playbook을 실행할 준비가 끝났습니다. Ansible은 다음 명령을 사용하여 Playbook을 실행합니다.

 $ ansible-playbook test.yml -i inv.ini 

이 명령은 Playbook 파일 `test.yml`에 정의된 모든 작업을 실행합니다.

Ansible Ad-hoc 명령어

Ansible은 Ad-hoc 명령어를 사용하여 다양한 작업을 수행할 수 있습니다. Ad-hoc 명령어는 다른 명령어와 달리 한 번 실행되고 사라집니다. 이러한 명령은 Ansible로 인프라를 관리하기 위한 편리한 방법입니다.

 $ ansible all -m ping 

위의 명령은 `all` 호스트 그룹에서 `ping module`을 실행합니다. `-m` 옵션을 사용하여 Ansible 모듈을 선택하고 `-a` 옵션을 사용하여 해당 모듈의 인수를 전달할 수 있습니다.

결론

이제 Ansible의 기초적인 사용법과 핵심 개념을 이해했습니다. 이를 통해 IT 인프라를 관리하는 데 있어 효율적이고 자동화된 방법으로 작업을 수행할 수 있습니다.

이번 게시글은 지난 편에서 소개한 Ansible 도구를 이용하여 IT 인프라를 관리 및 자동화하는 방법에 대해 알아보았습니다. 이 외에도 다양한 기능을 제공하는 Ansible 도구를 활용해 복잡한 업무를 더욱 쉽고 간단하게 처리할 수 있습니다.

올바르게 설정 및 실행되지 않은 도구는 정상적으로 작동하지 않아 기능 상에서 문제가 발생할 수 있습니다. 따라서 본인이 관리하는 서버에 Ansible을 설치 및 실행할 때 적절한 가이드라인과 레퍼런스를 참고하여 올바르게 사용하도록 합니다.

참고