https://youtu.be/F7LnYUqrrqE?si=sWpTFIcVgFUgaI-1
Ansible을 사용하기 위해 2가지 설정이 필요합니다
1. 첫 번째: SSH 연결 설정
Ansible은 SSH프로토콜로 통신을 하기 때문에 control-node와 managed-node간 ssh연결 설정이 필요합니다.
ssh 연결을 하려면 control-node와 managed-node에서 공개키를 교환해야 합니다. 교환한 공개키는 파일로 저장됩니다.
- control-node: $HOME/.ssh/known_hosts
- managed-node: $HOME/.ssh/authorized_keys
control-node에서 ssh-copy-id로 쉽게 공개키를 교환할 수 있습니다. ssh-copy-id를 사용하려면 managed-node ssh접속 방식에서 비밀번호 접속을 허용해야 합니다.
$ ssh-copy-id 사용자@호스트
2. 두 번째: inventory 파일 생성
inventory파일은 control-node에서 작업할 managed-noed주소가 저장되어 있습니다.
inventory 파일은 ip 또는 도메인을 설정합니다.
$ cat inventory
ansible-node0
10.0.0.21
inventory 파일검증은 ansible-inventory명령어로 확인합니다.
$ ansible-inventory -i ./inventory --graph
@all:
|--@ungrouped:
| |--ansible-node0
| |--ansible-node1
3. Ansible 실행
ssh연결 설정과 inventory파일이 있으면 Ansible을 실행할 준비가 되었습니다. control-node에서 ansible명령어로 Ansible모듈을 실행하면 됩니다. 명령어를 실행할 때 -i인자로 inventory파일 경로를 설정합니다. -a는 managed-node에서 실행하는 명령어를 설정합니다.
$ ansible -i {inventory 파일 경로} -a "{managed-node가 실행하는 명령어}" {managed-node 주소}
예를 들어 managed-node 네트워크 인터페이스 목록을 출력할 수 있습니다.
$ ansible -i inventory -a "ifconfig" all
ansible module은 명령어를 더 쉽게 사용할 수 있도록 도움을 줍니다. 모듈 사용방법은 아래와 같습니다.
$ ansible -i {inventory 파일 경로} -m {모듈 이름} {managed-node 주소}
예를 들어 ping모듈을 사용하면, control-node와 inventory에 설정한 managed-node간 ping통신을 합니다.
'연재 시리즈' 카테고리의 다른 글
Ansible vault (0) | 2024.01.14 |
---|---|
Ansible playbook (0) | 2024.01.14 |
Ansible 소개 (1) | 2024.01.09 |
게임으로 배우는 AWS IAM(부제목: bigiamchallenge) (0) | 2023.09.03 |
S3 공개(public) 설정 - 버킷 policy 설정편 (1) | 2023.09.02 |