cloudNet@ 팀의 가시다 님이 진행하는 앤서블 스터디 1주차 정리입니다.
✅ 환경 구성
- cloudformation을 통해 앤서블 서버와 test 서버 3대를 배포하여 실습 예정
- 사전 준비 : AWS 계정, SSH 키 페어, VSCODE
- 구성정보 확인
- 그림과 실제 배포 리소스의 IP 및 정보들은 관련 없습니다. 이해를 돕기 위한 그림일 뿐입니다.
✅ 1. Cloud Formation 배포
- Cloud Formation은 AWS의 리소스를 자동으로 배포해주는 툴
- Ansible을 테스트 하기 위해서 기본적으로 ansible-server와 타겟 서버가 필요함. 물론 localhost에서 기본적인 앤서블 사용법은 숙지 할수 있음. 이번 스터디에선 AWS 환경에서 타겟서버를 3대 배포하여 테스트 합니다.
# AWS 콘솔 로그인 후
# 다음 url에 접속하세요.
https://console.aws.amazon.com/cloudformation/home?region=ap-northeast-2#/stacks/new?stackName=mylab&templateURL=https:%2F%2Fs3.ap-northeast-2.amazonaws.com%2Fcloudformation.cloudneta.net%2FAnsible%2Fa101-1w.yaml
region : ap-northeast-1
az : ap-northeast-1a
az : ap-northeast-1c
- Cloudformation 배포가 완료되면 EC2가 4대 생성될것임
- Ansible Server EC2 SSH 접속 : 기본 정보 확인 ← 스택 생성 시작 후 3분 후 접속 할 것
# SSH 접속 : ubuntu 계정
ssh -i ~/.ssh/나의팸키.pem ubuntu@$(aws cloudformation describe-stacks --stack-name mylab --query 'Stacks[*].Outputs[0].OutputValue' --output text --region ap-northeast-2)
------------------------
# 계정 정보 확인
whoami
id
# CPU, Mem, Disk 확인
htop
free -h
df -hT /
# /etc/hosts 확인
cat /etc/hosts
# 노드간 통신 확인
for i in {1..3}; do ping -c 1 tnode$i; done
✅ 2. VS CODE - remote _ssh 프로그램 설치
- 중략
- 중략
✅ 3. ansible 설치
- 앤서블 설치는 파이썬만 있으면 바로 설치가 가능합니다.
# 작업 기본 디렉터리 확인
whoami
pwd
/root/my-ansible
# 파이썬 버전 확인
python3 --version
Python 3.10.12
# 설치
apt install software-properties-common -y
add-apt-repository --yes --update ppa:ansible/ansible
apt install ansible -y
# 확인 : 책 버전(파이썬 3.11.2, jinja 진자 3.1.2)
ansible --version
ansible [core 2.15.8]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3/dist-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] (/usr/bin/python3)
jinja version = 3.0.3
libyaml = True
cat /etc/ansible/ansible.cfg
which ansible
# 책 저자 코드 확인
tree /root/my-ansible/Easy-Ansible/ -L 1
tree /root/my-ansible/Easy-Ansible/
- 앤서블 서버와 타겟이 되는 노드들의 SSH 인증 구성
- 먼저 ssh-keygen 명령어를 이용하여 SSH 키를 생성합니다.
# Create SSH Keypair
ssh-keygen -t rsa -N "" -f /root/.ssh/id_rsa
# 공개 키를 관리 노드에 복사
for i in {1..3}; do ssh-copy-id root@tnode$i; done
### 공개 키 복사가 안될경우
id_rsa.pub을 수동 복사해서 -> .ssh/authorized_keys에 일일히 복사해줄것.
# 복사 확인
for i in {1..3}; do echo ">> tnode$i <<"; ssh tnode$i cat ~/.ssh/authorized_keys; echo; done
여기까지 앤서블 설치를 완료했습니다. 다음시간부터는 앤서블의 인벤토리,플레이북,변수,Vault,Fact등 실습을 통해 앤서블을 좀더 알아봅시다!
'DevOps > Ansible' 카테고리의 다른 글
[A101] 3. Ansible 기본사용(2) (0) | 2024.01.08 |
---|---|
[A101] 2. Ansible 기본사용(1) (1) | 2024.01.07 |
[Ansible] 9. ansible Module (systemd, service) (0) | 2021.07.27 |
[Ansible] 8. Ansible 구조에 대한 표준 가이드 (0) | 2021.07.26 |
[Ansible] 7. ansible Module (텍스트 수정) (0) | 2021.07.20 |