목록Ansible 기술정보 (12)
전산쟁이의 기억노트
사전작업 AWX 설치 - 6 - AWX 설치절차 발생현상 및 조치방법 AWX 설치 후 웹 UI 접근시 아래메시지창이 수십분이 흘러도 계속 출력함 컨테이너 로그 확인시 아래메시지 지속 출력 #> docker logs awx_task The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/var/lib/awx/venv/awx/lib/python3.6/site-packages/awx/conf/settings.py", line 76, in _ctit_db_wrapper yield File "/var/lib/awx/venv/awx/lib/python3.6/site-pack..
사전정보 Ansible core는 cli기반의 기능만 제공하고 있고, web ui는 제공하지 않음 Redhat에서는 Ansible Tower라는 상용 제품이 있긴 하지만, 가격이 매우 비쌈 Opensource기반에서는 AWX를 사용하면 되는데, AWX는 컨테이너 기반의 솔루션이라 컨테이너의 환경을 도입하기 어려운 곳에서 Foreman을 사용해서 ansible을 연동 설치구성 foreman 설치를 위한 리포지터리 구성 $ yum -y install https://yum.puppet.com/puppet6-release-el-7.noarch.rpm $ yum-config-manager --enable extras $ yum -y install epel-release centos-release-scl-rh $ ..
AWX 데이터 백업 $> tower-cli receive --all > backup.json AWX 데이터 복구 주의사항 데이터 복구 절차는 credential, project, job template, workflow template 순으로 복구가 되어야 함. 순서가 어긋나는경우 참조할 수 있는 정보가 없다는 에러메시지 출력. (2~3차례 retry 하면 되기는 함) Tower-cli로 복구하는경우 패스워드 필드는 $encrypted$ 문자열 그대로 복구가 되기 때문에, 백업파일에서 Description된 문자열을 적용해주어야 함 job template 이름에 한글이 포함된경우 인코딩 에러가 나면서 복구 불가능함. $> tower-cli send --insecure aps_ui.json 출처 - htt..
대쉬보드 AWX로그인 후 첫 페이지, 작업상태 및 호스트상태, 최근 사용한 템플릿과 최근 실행한 작업 요약 확인 가능 ( ACCESS → DASHBOARD ) 최근 실행 작업 최근에 실행한 템플릿의 요약정보 확인 ( ACCESS → Jobs ) Job결과 확인 아이콘 확인 : 정상 작업 완료 : 작업 실패 작업관리 : 동일한 vars값으로 재실행 : 작업이력 삭제 스케쥴 확인 스케쥴링 설정된 작업 리스트 (ACCESS → Schedules ) 스케쥴 작업 관리 (왼쪽에서부터) 항목 설 명 활성화 체크+파란색 아이콘 : 활성화 체크X + 회색 아이콘 : 비활성화 NAME 스케쥴 이름 TYPE Template 유형 NEXT RUN 다음 실행 시간 (빈칸일 경우 스케쥴링 실행되지 않음) ACTION : 스케쥴..
이번엔 ansible role기반으로 배포절차를 만들어 보려고 합니다. 배포범위가 많아지면 하나의 플레이북으로 관리하기 힘들기 때문에 role이라는 이름으로 역활을 나누어서 배포할 수 있습니다. playbook디렉토리에 roles 하위 디렉토리별로 수행해야할 역활을 기재해주시면 되고요.... role기반의 디렉토리 구조는 다음과 같습니다. $> tree -d -L 4 ./ ├── main.yml └── roles ├── os │ └── linux │ ├── setup │ │ ├── tasks │ │ │ ├── centos6.yml │ │ │ ├── centos7.yml │ │ │ ├── main.yml │ │ │ └── rocky8.yml │ │ └── templates │ │ ├── ntp.conf.j..
awx에서 제공하는 restapi 사용방법전체 기능은 : http://192.168.20.10:8801/api/v2/ 에 접속하면 전체 api 기능 확인가능사전작업admin 계정으로 awx 로그인관리 → application → 새로생성authorization grant type은 resource owner password=based,client type → confidential관리 → user 에서 api용으로 사용할 서비스 계정 생성 후 token 생성application에는 2번에서 생성한 application 선택scope는 write로 선택1.생성된 token값은 복사 (재 확인할 수 있는 절차가 없음)API 사용예제inventory 조회1$ curl -X GET http://192.168.2..
Redhat에서는 Ansible Tower라는 software는 판매하고 있지요.이 Ansible tower의 Opensource 버전이 AWX라는 녀석인데요. 이녀석을 설치해보려고 합니다.참고로 AWX 18버전부터는 kubernetes operator을 이용해 설치해야 방식으로 변경이 되었고, 저는 14버전으로 설치하는 설차를 기록해놓으려고 합니다. AWX컨테이너 용도awx_web : AWX Frontend 용 Container awx_task : Ansible task용 Containerpostgres : awx DB용 Containerredis : AWX Cache 관리용 Container설치정보Hardware : 2Core / 8G Mem 이상 / 60G Disk 이상OS : Centos7 이상V..
지난번에는 에서 inventory를 작성하고 접속이 되는지까지 확인했는데요. 이제 실제로 어떤어떤 작업을 수행하겠다~를 작성하기 위해 playbook을 작성할꺼예요. 192.168.10.10 ~ 15번까지는 nginx 최신버전을 설치하고, 192.168.100.10 ~ 15번까지는 apache를 설치할꺼예요.Centos7 Base yum 에는 nginx가 없기 때문에 epel 리포지터리를 구성하고, nginx를 설치하는 절차입니다. 1 vi /home/ansible/playbook.yml 2 3 #nginx 그룹에 등록된 서버들 작업수행 4 name: Nginx Install # 작업 이름 5 hosts: "nginx" # 배포대상 호스트 정보 6 gather_facts: yes # 배포대상 서버들의..
ansible의 inventory는 배포대상 서버정보를 구성하는 파일입니다. rpm으로 설치할 경우 기본적으로 구성된 inventory는 /etc/ansible/hosts에서 작성할 수 있는데, playbook 작성에 따라자체 inventory를 가질 수 있으니 참고만 해주세요. inventory에서 작성할 수 있는항목은 group, children, vars 를 자주 사용하는데요. 그룹명 web은 하위그룹으로 nginx, apache가 있다고 가정해보죠. 192.168.10.10, 192.168.10.15까지는 nginx를 설치할꺼고 192.168.100.10부터 192.168.100.15까지는 apache를 설치할꺼예요. playbook 코드도 그룹을 기준으로 설치할꺼예요. ansible 접속을 위한..