웹사이트 검색

Ansible 제어 노드를 설치하고 구성하는 방법 - 2부


이전 주제에서는 기본 Ansible 용어와 기본 개념에 대해 알아봤습니다. 이 주제(Ansible 시리즈의 2부)에서는 RHEL 8에서 Ansible 제어 노드를 설치하고 구성하는 방법을 보여줍니다.

설정에서는 1개의 Ansible 서버와 2개의 원격 Linux 노드를 사용합니다.

Control Node 1: RHEL 8 Server     IP: 192.168.0.108         Ansible Server
Managed Host 1: Debian 10         IP: 192.168.0.15          Webserver
Managed Host 2: CentOS 8          IP: 192.168.0.200	    Database Server

Ansible 제어 노드란 무엇입니까?

제어 노드Ansible이 설치되어 있고 원격 호스트 또는 노드를 관리하는 데 사용되는 Linux 서버입니다. 이러한 원격 시스템을 관리 호스트 또는 관리 노드라고 합니다.

위 설정에서 제어 노드는 Ansible이 설치될 RHEL 8 서버이고 Debian 10CentOS 8<입니다.은 관리되는 호스트입니다.

참고: Ansible은 관리되는 호스트가 아닌 제어 노드에만 설치됩니다.

1단계: Python 3 설치

기본적으로 RHEL 8Python 3과 함께 제공되며 다음을 실행하여 서버에 설치된 Python 버전을 확인할 수 있습니다.

python3 -V

어떤 이유로든 Python3이 설치되지 않은 경우 다음 dnf 명령을 사용하여 설치하세요.

dnf install python3

RHEL 8 시스템에 여러 버전의 Python이 있는 경우 Python 3을 기본 Python 버전으로 설정할 수 있습니다. 달리기로.

alternatives --set python /usr/bin/python3

2단계: 공식 RedHat 리포지토리 활성화

Python3을 설치한 후 아래와 같이 RedHat의 Ansible용 공식 저장소를 활성화했는지 확인하세요.

subscription-manager repos --enable ansible-2.8-for-rhel-8-x86_64-rpms

참고: 위 명령이 작동하려면 RHEL 8 for RedHat 구독을 등록했는지 확인하세요.

3단계: RHEL 8에 Ansible 설치

RHEL 8 시스템인 제어 노드에 Ansible을 설치하려면 다음 명령을 실행하세요.

dnf install ansible -y

설치가 완료되면 명령어를 실행하여 설치된 Ansible의 버전을 확인할 수 있습니다.

ansible --version

4단계: 정적 호스트 인벤토리 파일 생성

지금까지 RHEL 8 서버인 Control Nodeansible을 성공적으로 설치했습니다. 제어 노드가 관리할 원격 노드는 인벤토리 파일이라는 파일에 정의되어야 합니다. 인벤토리 파일은 제어 노드에 있는 일반 텍스트 파일이며 원격 호스트의 호스트 이름 또는 IP 주소로 구성됩니다.

정적 호스트 파일은 IP 주소 또는 호스트 이름으로 정의된 관리 노드 목록이 포함된 일반 텍스트 파일입니다. /etc/ansible/ 디렉토리에 정적 파일 'hosts'를 생성해 보겠습니다.

vi /etc/ansible/hosts

다음으로 관리 호스트에 대한 그룹을 정의합니다. 이 주제 소개의 설정에서 앞서 본 것처럼 2개의 관리 호스트가 있습니다. 설정에서 정적 호스트 파일은 다음과 같이 정의됩니다.

[webserver]
192.168.0.15

[database_server]
192.168.0.200

인벤토리 파일을 저장하고 종료합니다.

관리 호스트를 나열하려면 다음을 실행하세요.

ansible all -i hosts --list-hosts

지금까지 우리는 제어 노드에 Ansible을 설치하고 제어 노드에 있는 정적 호스트 파일에 관리 호스트를 정의했습니다.

다음으로 원격 또는 관리되는 호스트를 관리하거나 제어할 수 있는 방법을 살펴보겠습니다.

5단계: 원격 노드와 연결하도록 Ansible 제어 노드 설정

원격 호스트 시스템(Debian 10CentOS 8)을 관리하기 위한 Ansible 제어 노드(RHEL 8) 원격 호스트에 비밀번호 없는 SSH 인증을 설정해야 합니다. 이를 위해서는 SSH 키 쌍을 생성하고 공개 키를 원격 노드에 저장해야 합니다.

Ansible 제어 노드에서 일반 사용자로 로그인하고 명령을 실행하여 SSH 키 쌍을 생성합니다.

su tecmint
ssh-keygen

다음으로, 표시된 대로 공개 SSH 키를 원격 노드에 복사합니다.

ssh-copy-id [email 	        (For Debian 10 node)
ssh-copy-id [email 	        (For CentOS 8 node)

모든 원격 노드에 공개 키를 추가한 후 Ansible Control 노드에서 ping 명령을 실행하여 해당 노드에 연결할 수 있는지 확인하겠습니다.

ansible -m ping all

위 출력에서 우리는 ping 명령이 성공했고 모든 노드에 대한 연결 가능성을 테스트할 수 있었음을 분명히 알 수 있습니다.

결론

이 가이드에서는 RHEL 8을 실행하는 제어 노드에 Ansible을 성공적으로 설치하고 설정했습니다. 나중에 정적 호스트 파일에서 원격 호스트를 정의하고 SSH 비밀번호 없는 인증을 설정하여 관리 호스트에 연결하고 제어하도록 제어 노드를 구성했습니다.