본문 바로가기

Automation Tools/Ansible

3.2 ansible | [AWX] GitLab 연동하기

반응형

Gitlab Project


  • root(administrator) 계정으로 awx라는 project를 생성하고 playbook과 inventory 2개의 디렉토리를 생성 하였다.
  • inventory : winrm을 이용하는 windows hosts로 plo 그룹에 plo1, plo2 이 호스트 등록

 

  • playbook : DNS 서비스를 stop/start 하는 간단한 playbook

 

AWX Gitlab Credential 등록


 

ID/PASSWORD 방식

  • Credentials - ADD
  • Credentials Type : Source Control
  • Type Details : Username, Password 입력 (root 계정)

 

ssh rsa key 방식

  • AWX가 SSH Client, Gitlab이 ssh server 이므로 AWX에서 ssh rsa key를 생성하고
  • Gitlab 웹 root 계정에 AWX Public Key를 등록하고
  • AWX 웹에 Private Key를 등록한다.

 

  • [AWX] 터미널에서 ssh key 생성
ssh-keygen -t rsa -C "Gitlab" -b 4096

 

  • [AWX] ssh public, private key 확인
# public key
> cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACA...+d4w== Gitlab

# private key
> cat ~/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIJKgIBAAKCAgEAqZQz9y9io5PU851g6dFrqqLcXiaVYXwLYlNjzGd3gqNvt03X
...
XYuBsiA45JLNWDIpUnQ5+/codsUDy7q45HqOh/b3BIne+VNKKIL9xaTV514GOA==
-----END RSA PRIVATE KEY-----

 

  • [Gitlab] root 계정으로 project를 생성하였으므로 root 계정으로 웹 로그인하여 public key 등록

Preferences 클릭
SSH Keys - Key 부분에 AWX Public Key 등록

 

  • [AWX] 웹 Credentials - ADD로 AWX Private Key 등록
  • 이때 Username은 Gitlab의 root 계정을 기입한다.

 

 

AWX Project 생성


Playbook Sync

  • Project를 생성하고 Gitlab에 등록된 inventory와 playbook을 가져온다.
  • AWX - Projects - ADD 클릭
  • Source Control Credentials Type : Git
  • Source Control URL : 등록한 AWX Gitlab Credentials이 id/pass인 경우 Gitlab의 "Clone with HTTP"로 RsaKey인 경우 "Clone with SSH" 로 기입한다.
  • Source Control Credential : Gitlab-idpass or Gitlab-rsakey

 

  • Sync 실행

  • Sync Job 결과 확인 : Viwes - Jobs - Project 이름 클릭
  • 실행에 실패 한 경우 붉은색. 성공한 경우 초록색으로 표기 하므로 실패 한경우 메세지를 확인해야 한다.

 

 

Inventory Sync

  • Inventories - Add - Add inventory

  • Name만 등록하고 저장

  • Sources - Add 클릭

 

  • Name 
  • Source : Sourced from a Project
  • Project : Gitlan-Project
  • Inventory file : Gitlab의 디렉토리가 검색 되며 inventory 파일 선택

 

  • 동기화 그룹 확인

 

  • 동기화 host 확인

 

Templates 생성을 통한 playbook 동기화 확인

  • Resources - Templates - Add - Add job template

  • Playbook 에 동기화 된 playbook list가 표출 된다.

반응형