티스토리 뷰
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 실행 결과에 따라 지정된 채널로 알림이 발송돼.
'ansible' 카테고리의 다른 글
CI/CD 파이프라인 연동: AWX API와 웹훅 활용 (1) | 2025.06.05 |
---|---|
똑똑한 자동화: 조건문(Conditionals)과 반복문(Loops) (0) | 2025.06.05 |
비밀은 소중해: Ansible Vault로 민감 정보 암호화 (0) | 2025.06.05 |
재사용성 UP! Ansible Role 만들기 (0) | 2025.06.05 |
코드처럼 관리: 변수(Variables)와 Jinja2 템플릿 활용 (2) | 2025.06.05 |
댓글