[ Ansible 이란? ]
》 스토리지, 서버, 네트워킹을 자동화하는 구성 관리 플랫폼
》 * 연산을 여러 번 적용하더라도 결과가 달라지지 않음 (멱등성)
[ Ansible 구성요소 ]
● Control Node
》 Ansible 실행
● Managed Node
》 Ansible로 관리되는 서버
》 Ansible이 설치되지 않음
● Inventory
》 Managed Node 목록
● Module
》 Anisible 코드 단위
》 리눅스 명령어 하나가 모듈 하나
● Playbook
》 반복 작업 실행 가능
》 Module을 모아놓은 것
》 Control Node에서 어떤 inventory에게 어떤 playbook을 실행할 것인지
[ Ansible 실습 ]
◎ 가상머신 3대 준비 ◎ CentOS 8
Control Node : 200.200.200.157
Managed Node : 200.200.200.158 / 200.200.200.159
● 설치
# repository 설치
yum install -y epel-release
# 홈페이지에서 맞는 버전 다운로드
wget [다운로드 링크]
# ansible 설치 (2.8버전 사용)
yum install -y ansible-2.8.8-1.el8.noarch.rpm
● 키 생성
》 Control Node에서 Manage Node에 접속할 수 있게
》 키는 한 번만 생성
# 키 생성
ssh-keygen
# 키 복사
ssh-copy-id root@[managed node ip]
# 접속해보기 (패스워드 없이 가능)
ssh root@[managed node ip]
● /etc/ansible/hosts 파일 설정 (inventory)
》 inventory에 host 추가
》 managed node 지정
server:
200.200.200.158 # managed node ip 작성
200.200.200.159
● custom inventory 생성
》 원하는 곳에 inventory 생성
》 yml 형
# vi hosts
all:
children:
# 이름 마음대로 설정 가능
server:
hosts:
200.200.200.158
》 확인
ansible server -i hosts -m ping
● host 한 대 더 추가 후 playbook 작성
1. 키 복사
2. 인벤토리에 호스트 추가
3. 커스텀 인벤토리 작성
4. playbook 작성
# 키 복사
ssh-copy-id root@[managed node ip]
# inventory에 host 추가 : /etc/ansible/hosts
all:
children:
server:
hosts:
200.200.200.158:
200.200.200.159:
# custom inventory : /root/test/hosts
all:
children:
server:
hosts:
200.200.200.158:
db:
hosts:
200.200.200.159:
# playbook 작성 : /root/test/playbook
- hosts: ["server", "db"]
tasks:
- name: Linux Command # 화면에 출력하고 싶은 아무 이름
shell: \
touch /root/ansible_test # managed node 에 파일 생성
become: yes # 관리자 권한으로 실행
- name: Linux Command2
shell: \
touch /root/ansible_test2
become: yes
》 확인
ansible-playbook -i hosts playbook
'CLOUD > IaC' 카테고리의 다른 글
[Ansible/Redis] Master(3) - Slave(3) Clustering (0) | 2023.03.29 |
---|---|
[Ansible] Playbook - Module 연습 (0) | 2023.03.29 |
[Redis/Shell Programming] 쉘 스크립트로 Redis Master - Slave - Sentinel 구성하기 (0) | 2023.03.28 |
[Redis] Master - Slave - Sentinel (0) | 2023.03.28 |
[Shell Programming] 쉘 스크립트 안에서 쉘 스크립트 실행하기 (0) | 2023.03.27 |