[Ansible] #2.3 Ansible 설치

[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

1

기본적으로 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

설치가 잘 되었다.

2. 네트워크 환경


이제 네트워크 환경을 한 번 확인해보자.

ip a s

참고로 위 명령어는 ip address show 를 의미한다.

3

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

3

2: enp0s8iac-control1 과 다르지만, 3: enp0s3 - 10.0.2.15/24 는 같은걸 알 수 있다 !
당연하지만, 2: enp0s8 는 각각 다른 노드이기 때문에 IP 가 다른것이고, 3: enp0s3VirtualBox 환경에서 세팅되어 있는 것이기 때문에 항상 동일하다.

자 이제 우리는 인터넷을 위한 네트워크 인터페이스는 동일하게 설정되어 있음을 알았음과 동시에, 각 노드의 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.networkip 가 각각 "#{$vm_subnet}.1#{i}", "#{$vm_subnet}.2#{i}" 로 되어있음을 주목하자.

여기서 이제 반복문을 통해 i1이 들어가게 되면, 우리가 위에서 봤던 각 노드의 IP 가 되도록 작성되어있는 것이다.

자 그런데 우리는 iac-control1 을 통해 관리 노드iac-node1 을 접속할 것이다.
위에서는 vagrant 명령어를 통해 직접 접속했는데, 어떻게 해야할까?

일단 아래 명령으로 접속할 수 있다.

ssh vagrant@192.168.56.21

ssh 로 접속했다.
처음 접속하면 fingerprint 를 물어본다.
yes 를 입력하면 되고,
password 를 물어보는데 기본 passwordvagrant 이다.

물론 반대의 경우로, iac-node1 에서 iac-control1 로 접속도 가능하다.

여기까지 기본 Ansible 의 설치와 네트워크 환경을 확인했다. 이제 다음 글에서 본격적으로 Ansible 의 구성 요소를 살펴보자.


© 2022. All rights reserved.