[Ansible] #2.3 Ansible 설치
![[Ansible] #2.3 Ansible 설치](/assets/img/study_Ansible/2022-11-23-%5BAnsible%5D_2.3_Ansible_%EC%84%A4%EC%B9%98/logo.png)
Ansible 을 설치해보자.
VirtualBox 에 설치한다.
1. Ansible 설치
우선 제어 노드(iac-control1) 에 접근할 것이다.
제어 노드 는 iac-control1 , 관리 노드 는 iac-node1 이다.
아래 명령어로 iac-control1 에 접속한다.
이전의 Ansible 실습 환경 설정의 과정을 거쳤다면, 이미 접속해 있을텐데, 경로를 잊었다면 아니라면 아래 경로로 이동한 뒤 명령어를 치면 된다.
- 경로 :
C:\windows\system32\vagrant\iac
vagrant ssh iac-control1

기본적으로 Ansible 이 설치는 되어 있을텐데, 너무 옛날 버전이라 새로 설치해야한다.
아래 명령어로 현재 Ansible 의 정보를 확인 가능하다.
참고로 알아두자.
apt info ansible
아무튼 접속되었으면 아래 명령어를 실행하자.
- 설치 가능한 패키지 리스트 최신화
sudo apt update software-properties-common패키지 설치sudo apt install software-properties-commonppa(personal package archive)저장소 추가sudo add-apt-repository --yes -update ppa:ansible/ansible공식
Ansible저장소ansible/ansible를 추가하였다.Ansible설치sudo apt install ansible- 설치 확인
ansible --version

설치가 잘 되었다.
2. 네트워크 환경
이제 네트워크 환경을 한 번 확인해보자.
ip a s
참고로 위 명령어는 ip address show 를 의미한다.

자 VirtualBox 에서의 네트워크 환경은 VMware 랑은 조금 다르다.
VMware 에서는 별도로 지정하지 않으면, 기본적인 인터페이스가 하나 잡힌다.
그 인터페이스가 VM 끼리 통신하거나, 인터넷과 통신할 수 있도록 해준다.
그런데 VirtualBox 는, 기본적으로 두 개로 나뉜다.
2: enp0s8 - 192.168.56.11/24 는 VM 끼리 통신하는 인터페이스,
3: enp0s3 - 10.0.2.15/24 는 인터페이스는 인터넷 용이다.
즉, 인터넷 용 따로, VM 통신 용 따로 있다고 생각하면 된다.
이제 iac-node1 으로 이동해서, 똑같이 네트워크를 조회해보자.
exit
vagrant ssh iac-node1
ip a s

자 2: enp0s8 는 iac-control1 과 다르지만, 3: enp0s3 - 10.0.2.15/24 는 같은걸 알 수 있다 !
당연하지만, 2: enp0s8 는 각각 다른 노드이기 때문에 IP 가 다른것이고, 3: enp0s3 은 VirtualBox 환경에서 세팅되어 있는 것이기 때문에 항상 동일하다.
자 이제 우리는 인터넷을 위한 네트워크 인터페이스는 동일하게 설정되어 있음을 알았음과 동시에, 각 노드의 IP 를 알게 되었다.
iac-control1:192.168.56.11/24iac-node1:192.168.56.21/24
이게 Vagrantfile 에서 $vm_subnet 변수가 host 범위 range를 제외한 "192.168.56" 으로 설정되어있는 이유다.
$vm_subnet = "192.168.56"
# Controllers
(1..$number_of_control_planes).each do |i|
config.vm.define "#{$vm_name_prefix}-control#{i}" do |node|
...
node.vm.hostname = "#{$vm_name_prefix}-control#{i}"
node.vm.network "private_network", ip: "#{$vm_subnet}.1#{i}", nic_type: "virtio"
end
end
# Nodes
(1..$number_of_nodes).each do |i|
config.vm.define "#{$vm_name_prefix}-node#{i}" do |node|
...
node.vm.hostname = "#{$vm_name_prefix}-node#{i}"
node.vm.network "private_network", ip: "#{$vm_subnet}.2#{i}", nic_type: "virtio"
end
end
자 반복문에서 node.vm.network 의 ip 가 각각 "#{$vm_subnet}.1#{i}", "#{$vm_subnet}.2#{i}" 로 되어있음을 주목하자.
여기서 이제 반복문을 통해 i 에 1이 들어가게 되면, 우리가 위에서 봤던 각 노드의 IP 가 되도록 작성되어있는 것이다.
자 그런데 우리는 iac-control1 을 통해 관리 노드인 iac-node1 을 접속할 것이다.
위에서는 vagrant 명령어를 통해 직접 접속했는데, 어떻게 해야할까?
일단 아래 명령으로 접속할 수 있다.
ssh vagrant@192.168.56.21
ssh 로 접속했다.
처음 접속하면 fingerprint 를 물어본다.
yes 를 입력하면 되고,
password 를 물어보는데 기본 password 는 vagrant 이다.
물론 반대의 경우로, iac-node1 에서 iac-control1 로 접속도 가능하다.
여기까지 기본 Ansible 의 설치와 네트워크 환경을 확인했다. 이제 다음 글에서 본격적으로 Ansible 의 구성 요소를 살펴보자.