1. 기존 ansible Node를 모두 삭제
- 기존 인스턴스를 모두 삭제하여 초기화 상태로 만든다.
2. ansible 클러스터를 구축 - control 1대, managed 3대
- 인스턴스 설정은 기존과 동일
- 각 서버끼리 통신이 되도록 설정
- 보안 그룹 : ssh, http,https
< 각 서버에서 진행 >
sudo -i
hostnamectl set-hostname control.example.com
bash
vim /etc/hosts
>[각 노드의 IP] control.example.com control
3. ansible에서 사용하는 사용자는 nana, 이는 sudo 명령어 사용이 가능
< 각 노드 >
useradd nana
passwd nana
su - nana
< control 노드 >
mkdir .ssh
ssh-keygen -t rsa
ls -l .ssh
< 모든 노드 >
vim /etc/ssh/sshd_confg
> 63 : passwordauthentication yes
systemctl restart sshd
exit
usermod -aG wheel nana
vim /etc/sudoers
> 107: #%wheel ALL=(ALL) ALL
> 110 : %wheel ALL=(ALL) NOPASSWD:ALL
su - nana
sudo yum install vsftpd -y
< control 노드 >
ssh-copy-id nana@servera, b, c
ssh nana@servera, b, c
4. /home/nana/ansible 디렉토리에 inventory, ansible.cfg 파일을 저장
- inventory
-
더보기[webservers]
server[a:c].example.com
[seoul]
servera.example.com
[busan]
serverb.example.com
serverc.example.com
[development]
serverc.example.com
[production]
servera.example.com
serverb.example.com
[korea:children]
seoul
busan - ansible.cfg
-
더보기[defaults]
inventory = ./inventory
remote_user = nana
ask_pass = false
[privilege_escalation]
become = true
become_method = sudo
become_user = root
become_ask_pass = false
su - nana
mkdir ansible
cd ansible
vim inventory
vim ansible.cfg
5. ansible 클러스터가 완성되면 ansible 명령어를 사용하여 아래를 실습
1) seoul 그룹에 nginx, busan 그룹에 httpd 패키지 설치
ansible busan -m yum -a 'name=httpd state=present'
ansible busan -m shell -a 'rpm -qa | grep httpd'
> ansible seoul -m shell -a 'amazon-linux-extras istall nginx1 -y'
또는
> ansible seoul -m shell -a 'amazon-linux-extras install epel -y'
-> epel : 기본적으로 제공하는 패키지 이외의 것들을 설치할 수 있게 해줌
> ansible seoul -m yum -a 'name=nginx state=present'
> ansible seoul -m shell -a 'rpm -qa | grep nginx'
2) 임의의 index.html 파일을 생성하고 이를 각 웹 서버의 디렉토리로 복사
echo 'index file test' > index.html
ansible seoul -m copy -a 'src=index.html dest=/usr/share/nginx/html/index.html mode=0644'
ansible seoul -m shell -a 'cat /usr/share/nginx/html/index.html'
ansible busan -m copy -a 'src=index.html dest=/var/www/html/index.html mode=0644'
ansible busan -m shell -a 'cat /var/www/html/index.html'
3) curl 명령어를 사용하여 웹서버의 index.html 파일 확인
ansible seoul -m service -a 'name=nginx state=started'
ansible busan -m service -a 'name=httpd state=started'
ansible seoul -m shell -a 'curl localhost'
ansible busan -m shell -a 'curl localhost'
4) busan 그룹에 /home/nana/ansible/index.txt 파일 생성
ansible busan -m file -a 'path=ansible state=directory mode=0755'
ansible]$ ansible busan -m file -a 'dest=ansible/index.txt state=touch mode=0755 owner=nana'
'Ansible' 카테고리의 다른 글
Ansible 반복문과 조건문 (0) | 2023.08.21 |
---|---|
Ansible 복습문제 2 (1) | 2023.08.18 |
Ansible-playbook & multiple (0) | 2023.08.17 |
Ansible 기본 (1) | 2023.08.16 |