AWX 서버에서 만든 플레이북을 실행하는 방법

4546 단어 Ansiblecentos7awx
저번 보도에는 AWX 서버가 설치되어 있으며 다음 절차에 따라 Ansible의 Playbook이 실행됩니다.
① 플레이북 정보 등이 기재된 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

    좋은 웹페이지 즐겨찾기