Ansible 그룹 변수 활용하기

AnsibleBeginner
지금 연습하기

소개

Ansible 의 그룹 변수를 활용하면 호스트 그룹 전체에 일괄적으로 적용되는 변수를 정의할 수 있습니다. 이를 통해 특정 호스트 그룹별로 Ansible 의 동작을 세밀하게 조정하고 공통 설정을 손쉽게 관리할 수 있습니다. 이번 챌린지에서는 Ansible 인벤토리 내에서 그룹 변수를 선언하고 실제 환경에서 활용하는 과정을 실습합니다.

그룹 변수 정의하기

먼저 Ansible 인벤토리 파일에서 그룹 변수를 정의하는 방법부터 알아보겠습니다. 이는 다양한 호스트 그룹의 구성을 효율적으로 관리하기 위해 반드시 익혀야 할 핵심 기술입니다.

과제

특정 호스트 그룹을 위한 그룹 변수를 정의하세요:

  1. /home/labex/project 디렉토리에 다음 내용을 포함하는 inventory 파일을 생성합니다:
    • webdb라는 이름의 그룹을 정의합니다.
    • web 그룹에 http_port=80 변수를 추가합니다.
    • db 그룹에 db_port=3306 변수를 추가합니다.
    • 실습의 편의를 위해 localhostwebdb 그룹 모두에 추가합니다.

요구 사항

  • Ansible 이 사전에 설치되어 있어야 합니다.
  • 관리 대상 호스트에 대한 SSH 연결이 설정되어 있어야 합니다.

예시

이 단계를 완료하면 Ansible 의 ping 모듈을 사용하여 web 그룹에 속한 호스트의 상태를 확인할 수 있습니다:

ansible web -i inventory -m ping

출력 예시:

localhost | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

플레이북에서 그룹 변수 접근하기

그룹 변수를 정의했으므로, 이제 다음 단계인 Ansible 플레이북에서 이 변수들을 불러와 사용하는 방법을 알아보겠습니다. 이 기술을 익히면 호스트 그룹에 따라 유연하게 대응하는 동적인 플레이북을 작성할 수 있습니다.

과제

  1. /home/labex/project 디렉토리에 다음 내용을 포함하는 my-playbook.yaml 플레이북 파일을 생성합니다:

    • hosts 대상을 web으로 설정합니다.
    • debug 모듈을 사용하여 http_port 그룹 변수의 값을 가져와 화면에 출력합니다.
  2. ansible-playbook 명령어를 실행할 때 생성한 인벤토리 파일을 지정하여 플레이북을 실행합니다.

요구 사항

  • Ansible 이 사전에 설치되어 있어야 합니다.
  • 관리 대상 호스트에 대한 SSH 연결이 설정되어 있어야 합니다.
  • 이전 단계에서 인벤토리 파일이 올바르게 구성되어 있어야 합니다.

예시

단계를 완료한 후 플레이북을 실행하면 다음과 유사한 결과가 출력되어야 합니다:

PLAY [Print group variables] **************************************************

TASK [Gathering Facts] ********************************************************
ok: [localhost]

TASK [Print http_port variable] ************************************************
ok: [localhost] => {
    "http_port": 80
}

PLAY RECAP *********************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

요약

수고하셨습니다! Ansible 그룹 변수 챌린지를 성공적으로 마쳤습니다. 인벤토리에서 그룹 변수를 정의하고 이를 플레이북에서 활용하는 방법을 익혔습니다. 이러한 기술은 Ansible 을 효율적으로 사용하는 데 있어 매우 중요하며, 인프라 내의 다양한 호스트 그룹에 대한 구성을 관리하고 최적화하는 밑바탕이 됩니다.

그룹 변수를 효과적으로 활용하면 더욱 유연하고 모듈화된 자동화 워크플로우를 구축할 수 있습니다. 앞으로의 Ansible 여정에서 다양한 그룹 변수를 실험해 보며 자동화 프로세스를 더욱 발전시켜 보시기 바랍니다. 개념을 완벽히 익히는 데는 꾸준한 실습이 가장 중요하다는 점을 잊지 마세요!

✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습