🔻 부하분산과 트래픽 관리
🔻 보안
🔻 모니터링
https://www.samsungsds.com/kr/insights/mesh.html

❓ 인벤토리란 Ansible이 인프라에 존재하는 여러 호스트를 관리하는데, 이런 호스트의 목록 또는 그룹을 지정하는 파일
/etc/ansible/hosts
명령어로 확인 가능 => head -10 /etc/ansible/hosts
명령어를 통해 기본 인벤토리 파일의 처음 10줄을 출력하도록
✔️ 사용자가 직접 INI 또는 YAML 형식으로 파일 작성
🔻 기본 그룹
| 그룹 | 속한 호스트 |
|---|---|
| all | 모든 호스트 포함 |
| ungrouped | 그룹에 속하지 않는 모든 호스트 포함 |
🔻 여러 그룹에 속한 호스트
🔻 중첩 그룹을 이용한 인벤토리 단순화
INI 형식
# [all] 은 생략 가능
mail.example.com
192.168.56.51
[webservers]
foo.example.com
bar.example.com
[dbservers]
one.example.com
two.example.com
three.example.com
# 여러 그룹에 속한 호스트
[east]
foo.example.com
one.example.com
two.example.com
[west]
bar.example.com
three.example.com
# 중첩 그룹을 이용한 인벤토리 단순화
[prod:children]
east
[test:children]
west
YAML 형식
all:
hosts:
mail.example.com:
ansible_host: 192.168.56.51
children:
webservers:
hosts:
foo.example.com:
bar.example.com:
dbservers:
hosts:
one.example.com:
two.example.com:
three.example.com:
east:
hosts:
foo.example.com:
one.example.com:
two.example.com:
west:
hosts:
bar.example.com:
three.example.com:
prod:
children:
- east
test:
children:
- west
✔️ 관리 노드의 변화가 많을 경우 정적 인벤토리로 호스트를 관리하는 것은 어려움 => 클라우드 공급자, LDAP 및 CMDB 등 동적 외부 인벤토리 시스템에서 호스트의 목록을 동적으로 가져올 수 있음
동적 인벤토리 연결 방법
1. 인벤토리 플러그인
2. 인벤토리 스크립트
💡 가능하면 인벤토리 스크립트보다 인벤토리 플러그인 사용 권장
동적 인벤토리 플러그인
AWS EC2 인스턴스의 목록을 가져오는 동적 인벤토리 플러그인 사용법
Python용 AWS SDK boto3 패키지 설치
sudo apt install -y python3-boto3
인벤토리 구성 파일
# aws ec2 ansible dynamic inventory plugin
plugin: aws_ec2
# set aws_access_key and secret_key.
aws_access_key: [AWS ACCESS KEY]
aws_secret_key: [AWS SECRET KEY]
# set the regions.
regions:
- [AWS REGIONS]
ansible-inventory -i test_aws_ec2.yaml --graph
@all:
|--@aws_ec2:
| |--ec2-34-204-0-109.compute-1.amazonaws.com
...