AWX 컨테이너로 가상(venv) 환경 생성
소개
AWX에는 여러 버전의 Ansible을 구분할 수 있는 기능이 있습니다.
↑이런거.
AWX를 Kubernetes 클러스터에서 실행할 때 여러 버전의 Ansible을 미리 넣은 컨테이너를 만들려면 어떻게해야합니까? 라고 생각하면 공식 문서에 답이 실렸습니다.
비망을 겸해, 시도한 기록을 남겨 둡니다.
환경
k3s v1.18.9+k3s1
AWX 15.0.0
하는 방법
다음과 같은 YAML을 만듭니다.
venv_vars.yaml---
custom_venvs:
- name: 2.9.12
python: python3
python_ansible_version: 2.9.12
- name: pip
python_ansible_version: 2.9.13
python_modules:
- pyvmomi
각 항목의 내용은 다음과 같습니다.
키
설명
필수
이름
가상 환경의 이름(디렉토리 이름)
예
python_ansible_version
Ansible 버전
예
파이썬
Python 버전 (지정되지 않은 경우 2 계열)
python_modules
소개하려는 pip 모듈
나머지는 배포시 ansible-playbook 명령에 다음과 같이 extra-vars 옵션을 추가하기 만하면됩니다.
$ ansible-playbook -i inventory install.yml --extra-vars "@venv_vars.yaml"
배포가 완료된 후 포드가 시작될 때까지 다음과 같은 상태로 약간의 시간이 걸립니다.
$ kubectl get pod -n awx
NAME READY STATUS RESTARTS AGE
awx-postgresql-postgresql-0 1/1 Running 0 2d19h
awx-64f65bbdc4-qcbtm 0/3 Init:0/1 0 66s
AWX의 설정
포드가 시작되면 AWX에 로그인하고 설정 -> 시스템을 엽니다.
사용자 정의 가상 환경 경로에/opt/custom-venvs<개행>을 입력하고 저장하십시오.
줄 끝에 개행을 넣어야 하는 것 같아서 잊지 말고 넣자.
※이 패스는 임의의 패스로 변경 가능합니다. 변경하려는 경우 inventory 파일의 custom_venv_dir에서 정의할 수 있습니다.
설정이 완료되면 프로젝트의 설정 화면에 "ANSIBLE 환경"이라는 목록이 표시되어 작성한 가상 환경을 선택할 수 있습니다.
Ansible 2.9.12의 환경을 지정한 후, 적당히 다음과 같은 Playbook을 만들어 실행해 보면,
show_version.yaml---
- name: Sample
hosts: all
tasks:
- name: Show Ansible Version
debug:
msg: "{{ ansible_version }}"
2.9.12로 실행되었습니다. (AWX 15.0.0의 기본 Ansible 버전은 2.9.13입니다)
어떤 구조?
어떻게 가상 환경을 설정하는지 궁금해서 조사해 보았습니다.
Kubernetes 용 Deployment.yml 템플릿 파일 중,
k3s v1.18.9+k3s1
AWX 15.0.0
하는 방법
다음과 같은 YAML을 만듭니다.
venv_vars.yaml---
custom_venvs:
- name: 2.9.12
python: python3
python_ansible_version: 2.9.12
- name: pip
python_ansible_version: 2.9.13
python_modules:
- pyvmomi
각 항목의 내용은 다음과 같습니다.
키
설명
필수
이름
가상 환경의 이름(디렉토리 이름)
예
python_ansible_version
Ansible 버전
예
파이썬
Python 버전 (지정되지 않은 경우 2 계열)
python_modules
소개하려는 pip 모듈
나머지는 배포시 ansible-playbook 명령에 다음과 같이 extra-vars 옵션을 추가하기 만하면됩니다.
$ ansible-playbook -i inventory install.yml --extra-vars "@venv_vars.yaml"
배포가 완료된 후 포드가 시작될 때까지 다음과 같은 상태로 약간의 시간이 걸립니다.
$ kubectl get pod -n awx
NAME READY STATUS RESTARTS AGE
awx-postgresql-postgresql-0 1/1 Running 0 2d19h
awx-64f65bbdc4-qcbtm 0/3 Init:0/1 0 66s
AWX의 설정
포드가 시작되면 AWX에 로그인하고 설정 -> 시스템을 엽니다.
사용자 정의 가상 환경 경로에/opt/custom-venvs<개행>을 입력하고 저장하십시오.
줄 끝에 개행을 넣어야 하는 것 같아서 잊지 말고 넣자.
※이 패스는 임의의 패스로 변경 가능합니다. 변경하려는 경우 inventory 파일의 custom_venv_dir에서 정의할 수 있습니다.
설정이 완료되면 프로젝트의 설정 화면에 "ANSIBLE 환경"이라는 목록이 표시되어 작성한 가상 환경을 선택할 수 있습니다.
Ansible 2.9.12의 환경을 지정한 후, 적당히 다음과 같은 Playbook을 만들어 실행해 보면,
show_version.yaml---
- name: Sample
hosts: all
tasks:
- name: Show Ansible Version
debug:
msg: "{{ ansible_version }}"
2.9.12로 실행되었습니다. (AWX 15.0.0의 기본 Ansible 버전은 2.9.13입니다)
어떤 구조?
어떻게 가상 환경을 설정하는지 궁금해서 조사해 보았습니다.
Kubernetes 용 Deployment.yml 템플릿 파일 중,
---
custom_venvs:
- name: 2.9.12
python: python3
python_ansible_version: 2.9.12
- name: pip
python_ansible_version: 2.9.13
python_modules:
- pyvmomi
$ ansible-playbook -i inventory install.yml --extra-vars "@venv_vars.yaml"
$ kubectl get pod -n awx
NAME READY STATUS RESTARTS AGE
awx-postgresql-postgresql-0 1/1 Running 0 2d19h
awx-64f65bbdc4-qcbtm 0/3 Init:0/1 0 66s
포드가 시작되면 AWX에 로그인하고 설정 -> 시스템을 엽니다.
사용자 정의 가상 환경 경로에/opt/custom-venvs<개행>을 입력하고 저장하십시오.
줄 끝에 개행을 넣어야 하는 것 같아서 잊지 말고 넣자.
※이 패스는 임의의 패스로 변경 가능합니다. 변경하려는 경우 inventory 파일의 custom_venv_dir에서 정의할 수 있습니다.
설정이 완료되면 프로젝트의 설정 화면에 "ANSIBLE 환경"이라는 목록이 표시되어 작성한 가상 환경을 선택할 수 있습니다.
Ansible 2.9.12의 환경을 지정한 후, 적당히 다음과 같은 Playbook을 만들어 실행해 보면,
show_version.yaml
---
- name: Sample
hosts: all
tasks:
- name: Show Ansible Version
debug:
msg: "{{ ansible_version }}"
2.9.12로 실행되었습니다. (AWX 15.0.0의 기본 Ansible 버전은 2.9.13입니다)
어떤 구조?
어떻게 가상 환경을 설정하는지 궁금해서 조사해 보았습니다.
Kubernetes 용 Deployment.yml 템플릿 파일 중,
라는 흐름으로 설치를 실시하고 있는 것 같습니다.
이것이라면 Pod가 떨어져도 가상 환경은 재기동시에 만들어지므로 안심입니다.
결론
당초에는 컨테이너의 리빌드가 필요하다고 생각했습니다만, 비교적 간단하게 실현할 수 있는 방법이 준비되어 있어서 좋았습니다.
또, AWX의 설정은 이하 사이트를 참고로 했습니다.
[Ansible/AWX] AWX가 사용자 지정 가상 환경(venv) 경로를 인식하는 방법
Reference
이 문제에 관하여(AWX 컨테이너로 가상(venv) 환경 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ussvgr/items/367438c70c9768fe39f3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(AWX 컨테이너로 가상(venv) 환경 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ussvgr/items/367438c70c9768fe39f3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)