본문 바로가기
Ansible

Ansible 복습문제

by 손영진 2023. 8. 17.
728x90

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