AWX 서버에서 만든 플레이북을 실행하는 방법
① 플레이북 정보 등이 기재된 Ansible 프로젝트를 GitLab에 Push 제출
② Ansible 프로젝트를 GitLab에서 AWX 서버에 git pull 제출
③ 대상 서버에서 Ansible 프로젝트의 Playbook 실행
그러나 이 단계에서 Ansible 프로젝트에서 플레이북을 실행하기 위해서는 AWX 서버에서 GitLab 서버로 공개 키 인증을 해서 외부 연결을 가능하게 해야 한다.
요구에 따라 SCM 서버(GitLab 서버 등)와 연결하지 않고 AWX 서버에서 Ansible 프로젝트를 관리하려는 경우도 있다.
그럼 이번에는 AWX 서버에서 Ansible 프로젝트를 만들고 대상 서버에서 플레이북을 실행하는 프로그램을 총괄하고 싶습니다.
전제 조건
저번 보도에서 수행된 설정 완료
먼저 GitLab에서 마지막으로 클론을 생성한 Ansible 프로젝트의 정보가 어디에 저장되었는지 확인합니다.
기본 저장 주소는 AWX 서버에서 시작하는 awx입니다task 컨테이너의/var/lib/awx/project/입니다.
[root@awx ~]# docker exec -it awx_task /bin/bash
bash-4.4# ls /var/lib/awx/projects/
_8__ansible_test_lamp _8__ansible_test_lamp_.lock
bash-4.4# ls /var/lib/awx/projects/_8__ansible_test_lamp
CODE_OF_CONDUCT.md group_vars README.md site.yml
CONTRIBUTING.md LICENSE roles
AWX로 작성된 inventory 파일의 변경 내용아까 확인했던 awx만약task 컨테이너 내의/var/lib/awx/project/에서 Ansible 프로젝트를 제작한다면 이번 설정을 진행할 수 있다고 생각합니다.
그러나 이렇게 되면 AWX의 WebUI 항목(Ansible 항목이 주소를 읽을 수 있도록 설정)을 읽을 수 없습니다.
기본적으로 awxtask 용기 내의/var/lib/awx/project/,awx웹을 용기에 마운트하지 않도록 설정했기 때문입니다.
실제로 AWX를 구축할 때 플레이북을 보면 awxtask 및 awx웹 페이지의 설정에는 다음과 같은 기록이 있다.
volumes: >
{{
[project_data_dir + ':/var/lib/awx/projects:rw'] if project_data_dir is defined else []
+ [ca_trust_dir + ':/etc/pki/ca-trust:ro'] if ca_trust_dir is defined else []
}}
이 설명에서 프로젝트data_dir를 정의하지 않으면 빈 그룹이 될 수 있습니다.마운트 설정을 위해 inventory 파일에 AWX를 구축하십시오data_dir를 정의해야 하기 때문에 기록해야 합니다.
마운트 목적지가 기본 디렉터리라면 프로젝트data_dir의 주석만 빼면 됩니다.(마운트 주소를 지정할 때 적절한 변경이 필요함)
[root@awx ~]# cd ~/awx/installer
[root@awx installer]# vi inventory
# AWX project data folder. If you need access to the location where AWX stores the projects
# it manages from the docker host, you can set this to turn it into a volume for the container
# project_data_dir=/var/lib/awx/projects
project_data_dir=/var/lib/awx/projects
주석 OUT에는 "AWX의 프로젝트 저장 위치에 액세스하려면 다음 컨테이너의 볼륨(마운트 설정)을 설정하십시오"라고 적혀 있다.그런 다음 AWX의 플레이북을 다시 실행하여 수정을 반영합니다.
[root@awx installer]# ansible-playbook install.yml -i inventory
AWX 서버에서 수동 Playbook 실행마운트 설정이 끝났기 때문에 AWX 서버에서 수동으로 만든 플레이북이 실행될 수 있는지 테스트하고 싶습니다.
이번에는 새로운 프로젝트로서의 테스트입니다.프로젝트를 제작하고 sm 패키지를 설치한 설치 슬리브 플레이북을 제작했다.
제작진은 프로젝트입니다.data_dir에서 설치 대상으로 지정한/var/lib/awx/project/입니다.
[root@awx ~]# docker exec -it awx_task /bin/bash
bash-4.4# cd /var/lib/awx/projects/
_8__ansible_test_lamp _8__ansible_test_lamp_.lock
bash-4.4# mkdir test_repo && cd test_repo
bash-4.4# vi install-sl.yml
---
- name: test_project_playbook
hosts: all
become: true
tasks:
- name: install sl
yum:
name: sl
state: present
Ansible 프로젝트가 완료되면 AWX에 액세스합니다.새 프로젝트 탭에서 녹색 더하기 버튼을 클릭합니다.
마운트 설정이 제대로 되어 있으면 SCM 유형을 수동으로 선택하면 PLAYBOOK 디렉토리라는 항목이 표시됩니다.
여기에서 테스트 프로젝트, Default, SCM 형식의 PLAYBOOK 디렉터리 테스트 프로젝트를 수동으로 선택할 수 있습니다.
저장한 후 템플릿 레이블에 새 템플릿을 작성합니다. 프로젝트는 방금 제작한test-project를 선택하고, PLAYBOOK에서 설치-sl.yml를 선택합니다. 또한test-intall-sl 검사 이름, 검사 작업 유형, 인증 정보를 이전 글에서 만든 target-server1로 설정합니다. 마지막으로 이 템플릿의 작업을 수행합니다. 성공하면 다음과 같습니다. 참조 링크 https://sky-joker.tech/2018/03/21/awx%E3%81%ABvarlibawxprojects%E3%81%8C%E3%81%AA%E3%81%84%E6%99%82%E3%81%AE%E5%AF%BE%E5%87%A6/
https://note.com/shift_tech/n/n5e420a1fec8c
Reference
이 문제에 관하여(AWX 서버에서 만든 플레이북을 실행하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/bindingpry/items/e0546a2e95ceddcc7b37텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)