Infra/ansible

인벤토리

집 밖은 위험해 2024. 5. 21. 14:22

1) 정적 인벤토리

 

사용자가 직접 INI 형식으로 파일을 직접 작성한다.

실제 네트워크로 접속이 되는 주소를 작성해야 한다.

그룹으로 구성할 수 있고, all 그룹과 ungrouped 그룹 2개의 그룹은 항상 존재한다.

1개의 호스트는 여러개의 호스트를 가질 수 있다.

그룹이름과 호스트 이름은 동일하면 안된다.

all 그룹 : 모든 호스트

ungrouped : 그룹에 속하지 않은 호스트

 

1-1) 인벤토리 관련 명령어

 

- 인벤토리 생성 후 graph 형식으로 보기

 

 

2) 동적 인벤토리

클라우드, 가상화 및 컨테이너 환경에서 호스트의 목록을 동적으로 가져온다.

예를 들어 aws ec2 인스턴스의 목록을 가져올 수 있다.

 

3) 패턴

모든 호스트 : all \*

단일 호스트 : h1

여러 그룹 : webservers : dbservers

제외 그룹 : webservers :!west

교차 그룹 : webservers:&east

 

와일드카드 패턴 : 192.0.0.\*

 

3-1) 와일드 카드 문법

-> 파일이나 디렉터리 이름을 매칭할 때 주로 사용하는 패턴

대부분의 리눅스 명령어에서 사용하며 정규표현식보다 사용한다.

 

* : 0개 이상의 모든 문자열

? -> 정확히 1개 문자열

[abc] -> a b c 3개중 하나

[0-9] -> 0~9 중 하나

[!abc] a b c 를 제외한 하나의 문자

 

4) 엔서블의 작동방식 우선순위 (설정값 로딩하는 순서)

1. -e 옵션에 지정한 변수

2. 변수

3. 플레이북 키워드

4. 명령어 옵션

5. 앤서블 구성 파일

 

4-1) 앤서블 구성 파일의 우선순위

1. ansible_config 환경변수

2. 현재 디렉토리의 ansible.cfg

3. 홈 디렉토리의 ~/.ansible.cfg

4. /etc/ansible/ansible.cfg