Nubes et Stella

Ansible #02 (Inventory/Ad-hoc CMD) 본문

DevOps/Ansible

Ansible #02 (Inventory/Ad-hoc CMD)

SeongYeong Han 2023. 11. 29. 22:50

01. Inventory

서버 형상 관리를 위한 대상 서버 호스트를 관리하는 파일이며, 하나의 파일안에 앤서블이 관리하게 될 서버 정보들이 존재한다. 그 외에 그룹 기능 지원(리눅스 그룹, 윈도우 그룹) 하며 현업에서는 서버군을 프로덕션 레벨에 따라서 분리 하여 사용한다.

 

인벤토리는 크게 아래 두 종류로 나뉘게 된다. (여기서는 정적 인벤토리만 다룬다.)

  • static inventory : 정적 인벤토리
  • dynamic inventory : 동적 인벤토리

 

Type1 ) 기본적인 형태 (IP / 도메인 형식)

** 인벤토리 파일의 확장자는 따로 정해져 있지 않음

 

Type2 ) 그룹핑

- [그룹명] 을 지정하고 그 아래 호스트 정보 기입

- 디폴트값으로 "ALL"이 존재하며 모든 그룹을 뜻한다.

 

Type3 ) 별칭

- "[별칭] ansible_host=[IP / 도메인]" 형식으로 설정

- 별칭 명은 고유해야 한다.

 

Type4 ) 변수 추가

- ansible_user 변수는 호스트의 접속계정 정보

- "[그룹명:childern]" 형태로 하위에 그룹을 두는 형식으로 쓸 수도 있다.

 

 

02. Ad-hoc CMD

플레이북과 같이 사전 설정 정보 없이 명령어를 통해서 특정 앤서블 모듈을 호출하여 실행하는 방식이다. 명령어를 실행하는 방식이기 때문에 간단하지만 재사용이 어렵다. 때문에 주로 테스트 목적으로 사용된다.

 

형태 : #ansible [host-pattern] [-m module] [-a 'module options' ] [-i inventory]

 

[예시 1]

ansible all -m ping -i amazon.inv -u ec2-user --private-key [프라이빗 키 경로]

all : 인벤토리의 모든 호스트
-m ping : ping 모듈 사용 (ping : 대상 호스트에 연결 후 파이썬 사용 가능여부 확인하는 모듈)
-i amazon.inv : 인벤토리 파일 지정
-u ec2-user : 대상 호스트의 접속 계정 지정
--private-key [경로] : Openssh 접속을 위한 프라이빗 키 지정

 

[예시 2]

ansible ubuntu -m command -a "uptime" -i vars.inv --private-key [프라이빗 키 경로] 

-m command : command 모듈 사용 (대상 호스트에서 명령어 실행하는 모듈)
-a "uptime" : 모듈 옵션 (uptime command 실행)

 

[예시 3]

#ansible ubuntu -m apt -a "name=git state=latest update_cache=yes" -i vars.inv --become --private-key [프라이빗 키 경로]

-m apt : apt 모듈 사용 (패키시 설치 모듈)
-a "name=git state=latest update_cache-yes" : 최신 버전의 git 설치

 

 

- END -

'DevOps > Ansible' 카테고리의 다른 글

Ansible #01  (0) 2023.11.27