본문 바로가기

IaC/Ansible

[Ansible]CLI 사용법: Ansible을 활용한 서버 관리 기초

Ansible은 강력하고 사용하기 쉬운 IT 자동화 도구입니다. 오늘날 IT 환경에서 Ansible은 구성 관리, 애플리케이션 배포, 태스크 자동화 등에 널리 사용됩니다. 이 글에서는 macOS에서 Ansible을 설치하고 기본적인 Ansible 명령어 사용법을 설명합니다.

macOS에서 Ansible 설치하기

macOS를 사용하고 있다면, Homebrew를 통해 Ansible을 쉽게 설치할 수 있습니다. 터미널에 아래와 같이 입력하세요.

brew install ansible

이 명령어는 Homebrew를 통해 Ansible을 설치하고 필요한 모든 종속성을 자동으로 처리합니다.

Ansible 플레이북의 기본 명령어들

Ansible을 사용할 때, 몇 가지 기본적인 명령어들을 알아두면 매우 유용합니다.

문법 검사 (syntax-check)

Ansible 플레이북을 작성한 후 문법 오류가 없는지 확인해야 할 때가 있습니다. 이때 사용하는 것이 syntax-check 옵션입니다.

ansible-playbook --syntax-check your-playbook.yml

다음 예는 문법 검사를 하고 있는 상황을 보여줍니다.

➜ ansible-playbook -i hosts -u ubuntu main.yml --syntax-check

호스트 목록 보기 (list-hosts)

플레이북을 실행할 대상 호스트들을 확인하고 싶을 때 list-hosts 옵션을 사용합니다.

ansible-playbook your-playbook.yml --list-hosts

실제 사용 예시는 다음과 같습니다.

➜ ansible-playbook -i hosts -u ubuntu main.yml --list-hosts

태스크 목록 보기 (list-tasks)

플레이북에서 실행될 모든 태스크들을 보고 싶을 때는 list-tasks 옵션이 유용합니다.

ansible-playbook your-playbook.yml --list-tasks

다음은 이 명령어를 사용한 실제 예시입니다.

➜ ansible-playbook -i hosts -u ubuntu main.yml --list-tasks

Dry Run 실행하기 (check 모드)

실제로 변경을 적용하기 전에 예상되는 변경 사항을 확인하려면 check 모드를 사용합니다.

ansible-playbook your-playbook.yml --check

다음은 check 모드를 사용하여 변경 사항을 미리 보는 예입니다.

➜ ansible-playbook -i hosts -u ubuntu main.yml --check

자세한 로그 확인하기 (v 옵션)

플레이북을 실행할 때 발생하는 상세한 내용을 확인하고 싶다면 -v 옵션을 사용합니다. 더 상세한 정보가 필요하다면 -vv 또는 -vvv를 사용하세요.

ansible-playbook your-playbook.yml -v

EC2 인스턴스로의 접속

AWS EC2 인스턴스에 접속하기 위해서는 키 페어가 필요합니다. 예를 들어, mykey.pem을 사용하여 Ansible 명령을 실행할 수 있습니다.

ansible jeff -m ping -i hosts -u ubuntu --private-key=path_to_mykey.pem

위의 예시는 jeff라는 호스트 그룹의 모든 인스턴스에 대해 ping 모듈을 실행하는 것을 보여줍니다.

EC2 인스턴스에 Ansible 플레이북 실행하기

EC2 인스턴스에 대해 플레이북을 실행하고 싶을 때는 다음과 같이 할 수 있습니다.

ansible-playbook myplaybook.yml -i hosts --private-key=path_to_mykey.pem

PEM 키를 사용하여 Ansible로 EC2 인스턴스 접속

EC2 인스턴스에 Ansible을 사용하여 접속할 때는 몇 가지 준비 사항이 필요합니다.

  1. PEM 키 파일 권한 설정:
    chmod 600 /path/to/your/keyfile.pem
    
  2. 가장 먼저, PEM 키 파일에 적절한 권한을 부여해야 합니다.
  3. 인벤토리 파일에 키 경로 지정:
    [web]
    your_ec2_public_ip_or_dns ansible_ssh_private_key_file=/path/to/your/keyfile.pem
    
  4. Ansible의 hosts 파일에 접속하려는 호스트와 함께 PEM 키 파일의 경로를 명시해야 합니다.
  5. (선택 사항) ansible.cfg 파일을 통한 PEM 키 설정:
    [defaults]
    inventory = ./inventory.ini
    private_key_file = /path/to/your/keyfile.pem
    
  6. ansible.cfg 파일에 private_key_file 설정을 추가하여 PEM 키의 기본 경로를 설정할 수 있습니다.
  7. 호스트 키 검사 비활성화:
  8. EC2 인스턴스에 처음 접속할 때 호스트 키 확인을 피하려면

ansible.cfg에 다음 설정을 추가합니다.

[defaults]
host_key_checking = False

이러한 설정을 완료하면 Ansible을 통해 EC2 인스턴스에 안전하고 효과적으로 접속할 수 있습니다.

'IaC > Ansible' 카테고리의 다른 글

[Ansible]Nginx 설치하기 with tasks, handlers, templates, vars  (0) 2023.11.05