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