본문 바로가기
IT Knowledge/IaC

Ansible Semaphore 2.8.53 사용법

by Seok. 2022. 3. 25.
반응형

오늘은 Ansible Semaphore 사용법을 알아보기 위해서 작성하였습니다.

 

Ansible Semapore Version : 2.8.53

 

Ansible Semaphore Install 과정이 필요하신 분은 이전글에서 확인을 바랍니다.

2022.03.24 - [IT Knowledge/Ansible] - Ansible Semaphore Install on CentOS7

 

Ansible Semaphore Install on CentOS7

Ansible Semaphore는 ansible-tower or ansible AWX와 같은 ansible을 관리 편의를 위해 제공하는 오픈소스 입니다. Ansible AWX가 semaphore보다 기능도 많고 좋은점들이 있지만, Minikube, kubernetes 등을 알아..

lifeplan-b.tistory.com

 

 

[분류별 설명]

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 실행하면 아래와 같이 결과를 확인할 있습니다.


 

특이사항

  1. 한글지원하지 않습니다. 한글이 들어가는경우 400 오류

반응형

댓글