[Ansible] Ansible 설치 및 SSH 접속

Fabro·2021년 9월 6일
0
post-thumbnail

Ansible 설치하기

실습 환경

  • 제어 노드
    - CentOS 7

    • hostname : controller
    • IPv4 : 10.0.2.10/24
  • 매니지드 노드 1
    - CentOS 7

    • hostname : host1
    • IPv4 : 10.0.2.21/24, DHCP 사용
  • 매니지드 노드 2
    - CentOS 7

    • hostname : host2
    • IPv4 : 10.0.2.22/24, DHCP 사용

노드별 설정

  1. 제어 노드
hostnamectl set-hostname controller	#호스트 네임 controller로 변경
nmcli connection modify enp0s3 ipv4.addresses 10.0.2.10/24	#초기에 10.0.2.10으로 설정 되어있어 안해줘도 됨
  1. 매니지드 노드 1
hostnamectl set-hostname host1
nmcli connection modify enp0s3 ipv4.addresses 10.0.2.21/24
nmcli connection modify enp0s8 ipv4.method auto #DHCP 사용
nmcli connection modify enp0s8 -ipv4.addresses 192.168.56.10/24 #원래 enp0s8에 있던 IP주소 제거
nmcli connection reload
  1. 매니지드 노드 2
hostnamectl set-hostname host2
nmcli connection modify enp0s3 ipv4.addresses 10.0.2.22/24
nmcli connection modify enp0s8 ipv4.method auto	#DHCP 사용
nmcli connection modify enp0s8 -ipv4.addresses 192.168.56.10/24	#원래 enp0s8에 있던 IP주소 제거
nmcli connection reload

Ansible 설치

Ansible 설치는 오직 제어 노드에서만 진행하고 매니지드 노드들은 건들지 않는다.

Ansible 설치 전에 python과 ssh가 설치되어 있는지 확인하자

python --version	#이 명령어로 python 설치 여부를 확인하고 없으면 설치하자
ssh study@10.0.2.21	#매니지드 노드중 하나로 ssh 연결을 시도해보고 설치 여부를 확인하자

root 계정으로 이동해서/etc/sudoers.d/디렉토리에 sudo 명령어를 사용할 유저를 넣어주자

vi /etc/sudoers.d/study

study ALL=(ALL) NOPASSWD: ALL
wq!

#이렇게 적어주면 study 유저에서 sudo 명령어를 사용할 수 있다.

다시 원래 유저로 돌아와서 Ansible 설치

sudo yum -y install ansible

#설치시에 만약 ansible 패키지가 없어 nothing to do가 뜨면 아래의 명령어를 입력 후 ansible을 설치하자
sudo yum -y install centos-release-ansible-29

#설치가 끝났으면 명령어를 이용해 잘 설치되었는지 확인해보자
ansible --verion

SSH 공개키 생성하고 매니지드 노드에 전달

ssh-keygen	#RSA키 생성, 명령어 입력 후 나오는 것들 그냥 전부 엔터 누르자
ssh-copy-id study@10.0.2.21	#host1의 study 유저에게 제어 노드의 공개키 전달
ssh-copy-id study@10.0.2.22	#host2의 study 유저에게 제어 노드의 공개키 전달

ssh study@10.0.2.21	#명령어를 입력하고 host1의 study 유저 비밀번호를 입력하면 성공적으로 ssh 접속이 이루어진다.

SSH 접속할 때 비밀번호 입력 없이 접속 가능하게 /etc/sudoers.d/study를 호스트의 /etc/sudoers.d 디렉토리로 복사

#for문을 이용해 host1,2로 study파일 복사
for i in {21..21}; do sudo scp /etc/sudoers.d/study root@10.0.2.$i:/etc/sudoers.d/ ; done

/etc/hosts 파일에 각각의 host와 ip를 매핑 시켜주자

sudo vi /etc/hosts

10.0.2.10 localhost controller
10.0.2.21 host1
10.0.2.22 host2
wq!
# /etc/hosts 파일에 각각의 host와 ip를 매핑 시켜주면 user@hostname 으로도 ssh 접근이 가능하다

ssh study@host1 sudo id
#명령어를 입력하면 host1의 study에서 sudo id를 입력한 결과가 출력되면 성공이다.
profile
엔지니어 유망주의 곡괭이질

0개의 댓글