[Ansible] #2.3 Ansible 설치
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-common
ppa(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/24
iac-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
의 구성 요소를 살펴보자.