티스토리 뷰

ansible

AWX 입문: 웹 UI로 Ansible 관리하기

자바바라 2025. 6. 5. 23:25

AWX는 Ansible을 웹에서 쉽게 쓰고 팀과 공유할 수 있게 해주는 멋진 도구. 여기서는 AWX의 핵심 기능들을 어떤 식으로 활용하는지 개념 위주로 설명하고, API 호출 예시를 살짝 확인 한다. (실제 UI 설정은 AWX에 접속해서 직접 해보는 게 최고!)

새 프로젝트 생성 및 Git SCM 연동

  • AWX에서 프로젝트 > +추가 클릭.
  • 이름, 설명, 조직(Organization) 지정.
  • SCM 유형 Git으로 선택.
  • SCM URL에 Playbook이 있는 Git 저장소 주소 입력 (예: https://github.com/your-org/ansible-playbooks.git).
  • 필요시 SCM 브랜치/태그/커밋 지정.
  • SCM 자격증명 선택 (Private 저장소인 경우 Git 접근용 SSH 키 또는 토큰).
  • 저장하면 AWX가 Git 저장소에서 Playbook을 가져와.

새 인벤토리 생성 및 호스트 추가

  • 인벤토리 > +추가 > 인벤토리 추가 클릭.
  • 이름, 설명, 조직 지정 후 저장.
  • 생성된 인벤토리 선택 후 호스트 탭 > +추가 클릭.
  • 호스트 이름(IP 또는 FQDN) 입력.
  • 변수 섹션에 YAML 형식으로 ansible_host, ansible_user 등 호스트별 변수 입력 가능.
  • 그룹 탭에서 호스트를 그룹에 추가할 수 있어.

새 자격증명 생성 (Machine, Vault 등)

  • 자격증명 > +추가 클릭.
  • 이름, 설명, 조직, 자격증명 유형 선택.
    • Machine: SSH 사용자 이름, 암호/SSH 개인키, 권한 상승(sudo) 암호 등 입력.
    • Vault: Ansible Vault 암호 입력.
    • Source Control: Git 등 SCM 접근용 사용자 이름, 암호/토큰, SSH 키.
    • Cloud Providers (AWS, Azure, GCP 등): 각 클라우드 API 접근 키.
  • 필요한 정보 입력 후 저장.

새 Job Template 생성 및 Playbook 연결

  • 템플릿 > +추가 > 작업 템플릿 추가 클릭.
  • 이름, 설명, 작업 유형 (실행/점검).
  • 인벤토리 선택 (위에서 만든 인벤토리).
  • 프로젝트 선택 (위에서 만든 프로젝트).
  • PLAYBOOK 드롭다운에서 실행할 Playbook 파일 선택 (예: site.yml).
  • 자격증명에서 필요한 Machine, Vault 자격증명 등 선택.
  • 추가 변수에 Playbook 실행 시 넘겨줄 변수 YAML 형식으로 입력.
  • 제한 (Limit): 특정 호스트나 그룹에만 실행하도록 제한.
  • 태그: 실행할 태그 또는 건너뛸 태그 지정.
  • 저장.

Job Template 실행 및 결과 확인

  • 템플릿 목록에서 실행할 Job Template 옆의 로켓 아이콘 (🚀) 클릭.
  • 작업 메뉴에서 실행 중이거나 완료된 작업 목록 확인.
  • 특정 작업을 클릭하면 Playbook 실행 로그, 각 호스트별 성공/실패 여부, 변경 사항 등을 상세히 볼 수 있어.

스케줄 생성 (Job Template 주기적 실행)

  • 템플릿 목록에서 스케줄링할 Job Template 선택.
  • 스케줄 탭 > +추가 클릭.
  • 이름, 설명, 시작 날짜/시간, 반복 빈도 (분, 시간, 일, 주, 월, 연 단위) 설정.
  • cron 표현식과 유사하게 상세 설정 가능.
  • 저장하면 정해진 시간에 Job Template이 자동으로 실행돼.

awx-cli 또는 curl로 Job Template 목록 조회 (예시)

  • -k는 SSL 검증 건너뛰기 (테스트용). 실제로는 정식 인증서 사용.
          # awx-cli (설치 필요: pip install awxkit)
    # awx config host https://your-awx-server.com
    # awx config username your_user
    # awx config password your_password
    awx job_templates list
    
    # curl (AWX API 토큰 필요)
    AWX_TOKEN="your_api_token"
    AWX_URL="https://your-awx-server.com"
    curl -k -H "Authorization: Bearer ${AWX_TOKEN}" "${AWX_URL}/api/v2/job_templates/"
        

awx-cli 또는 curl로 특정 Job Template 실행 (예시)

--monitor (awx-cli)는 작업이 끝날 때까지 로그를 스트리밍해줘.

      # awx-cli (Job Template ID 또는 이름 사용)
awx job_templates launch --monitor <job_template_id_or_name>

# curl (Job Template ID 필요)
JT_ID=123 # 실행할 Job Template의 ID
curl -k -X POST -H "Authorization: Bearer ${AWX_TOKEN}" -H "Content-Type: application/json" "${AWX_URL}/api/v2/job_templates/${JT_ID}/launch/"
    

사용자/팀 생성 및 권한 할당 (RBAC)

  • 액세스 > 사용자 또는  > +추가로 사용자/팀 생성.
  • 생성된 사용자/팀 선택 후 권한 탭 > +추가 클릭.
  • 리소스 유형 (프로젝트, 인벤토리, Job Template 등) 선택.
  • 해당 리소스에 부여할 역할 (관리자, 실행, 사용, 읽기 등) 선택.
  • 이렇게 하면 사용자/팀별로 AWX 리소스에 대한 접근과 실행 권한을 세밀하게 제어할 수 있어.

알림(Notification) 설정 (작업 성공/실패 시 Slack, Email 등)

  • 알림 > +추가 클릭.
  • 이름, 설명, 조직, 유형 (Email, Slack, Webhook 등) 선택.
  • 선택한 유형에 따라 필요한 정보 입력 (예: Slack 토큰 및 채널, 이메일 서버 정보).
  • 템플릿 편집 화면의 알림 탭에서 시작 시, 성공 시, 실패 시 각각에 대해 위에서 만든 알림을 연결.
  • Job Template 실행 결과에 따라 지정된 채널로 알림이 발송돼.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함