오늘은 Ansible Semaphore의 사용법을 알아보기 위해서 작성하였습니다.
Ansible Semapore Version : 2.8.53
Ansible Semaphore Install 과정이 필요하신 분은 이전글에서 확인을 바랍니다.
2022.03.24 - [IT Knowledge/Ansible] - Ansible Semaphore Install on CentOS7
[분류별 설명]
Dashboard : 대시보드
Task Templates : Ansible-PlayBook 실행(Task)을 정의하는 템플릿을 작성합니다. (매개변수 포함)
Inventory : 대상서버들의 목록(ansible의 Hosts 파일로 생각하면 됩니다.)
Environment : 환경변수 설정
Key Store : Target 서버로 접근할때 사용할 Key(SSH Key or ID/Password 등…)
Repositories : Playbook 저장소 설정
Team : Project별 사용자 관리
Task Templates을 만들기 위해서는 KeyStore / Environment / Repositories / Inventory이 필요합니다.
Inventory와 Repository를 만들기 위해서도 KeyStore가 필요합니다.
따라서, 아래의 작업순서로 작업을 하는것이 초기 테스트하기 좋을것.
1차 : KeyStore / Environment
2차 : Repository / Inventory
3차 : Task Templates
DashBoard 확인
Task 실행 History를 확인할 수 있습니다.
Key Store
Ansible을 통해 타 서버에 접근할때 사용될 Key로서 4가지 유형을 구성할 수 있습니다.
Type : SSH Key / Login with Password / Personal access token / None
저는 SSH Key 방식을 통해서 Ansible Semaphore > Target Server 로 접근하려고 합니다.
따라서, SSH RSA Key를 생성합니다.
Semaphore에서 사용할 ssh-key 생성
#ssh-keygen -t rsa
(RSA 방식으로 ssh key 생성)
(key 위치 : default - /root/.ssh/id_rsa)
(생성시에 비밀번호 없이 만들도록 한다)
(2.8.53 버전에서는 ssh RSA 개인키의 비밀번호를 입력할 수 있는 수단이 없다)
생성한 SSH Private Key 파일 확인
# cat ~/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY----- …. HsjBFWmAfhYJTzY1xRCQ+WUBcApElg5VFmiBTiNTpB1YEjaXGWWfDeGtwtX5eWWk AIoCDOtkwXeQlqMkjqeVm8xpo7jfEakkCpdyMwIDAQABAoIBAQCLfZKE1SvkPjSS QPadnbgoG44zIjTlVbJ3snDit4szMcrkW0YMw/84VLMyK3OHT9APUpFKRuwkQipF dH8US+mgMuEtR2uVaTcaNOY2qDJLNpDxSuFCYCDc07BV5mc1ojenHTYqI1SIG55W … -----END RSA PRIVATE KEY----- |
SSH Key(Public Key)를 접근할 Target 서버에 배포
# ssh-copy-id -I ~/.ssh/id_rsa.pub <Target Server User>@<Target Server IP>
Key Store에서 New Key 생성
Repositories
PlayBook 저장소 설정은 URL 방식으로 GIT / SSH / HTTPS / file 지정이 가능합니다.
저는 Local Git 설정으로 진행합니다.
Local Git 만들기
# mkdir /semaphore/playbooks
# cd /semaphore/playbooks
테스트 ansible playbook 생성
# vi CheckOSVersion.yml
---
- name: Check OS Version to Target Server
hosts: all
tasks:
- name: Check OS Version
register: result
shell: cat /etc/redhat-release
- debug:
msg: "{{ result.stdout }}"
Local git Repo 생성
# git init
Git 초기 구성시, 사용자 이름 및 이메일 필요
테스트 playbook파일 local git에 commit
# git add CheckOSVersion.yml
# git commit -m "CheckOSVersion.yml"
Repositories 생성
Environment
환경변수는 JSON 형태로 저장해야 합니다.
Inventory
인벤토리 파일로 Ansible의 Hosts 파일이라고 생각하면 됩니다.
Task Templates
Ansible-PlayBook 실행(Task)을 정의하는 템플릿을 작성합니다. (매개변수 포함)
- Task : ansible-playbook을 실행합니다.
- Build : Artifacts 를 만드는데 사용합니다.
- Deploy : Target 서버에 Artifacts를 배포하는데 사용합니다.
저는 단순히 미리 만들어둔 ansible playbook을 실행할것으로 Task로 작업합니다.
Create New Template
PlayBook 실행
Actions > RUN
RUN을 실행하면 아래와 같이 결과를 확인할 수 있습니다.
특이사항
- 한글지원하지 않습니다. 한글이 들어가는경우 400 오류
'IT Knowledge > IaC' 카테고리의 다른 글
Ansible AWX 설치(ver. 17 / CentOS 7) (1) | 2022.04.02 |
---|---|
Ansible Semaphore 2.8.53 LDAP 연동 (1) | 2022.03.25 |
Ansible Semaphore Install on CentOS7 (1) | 2022.03.24 |
Ansible GUI 솔루션(Tower, Semaphore, AWX) (2) | 2022.03.21 |
Ansible Python 버전 업그레이드 2.7 to 3.6 (0) | 2021.08.10 |
댓글