Ubuntu 16.04(Xenial)에 Ansible을 설치하는 방법

Ubuntu 16.04(Xenial)에 Ansible을 설치하는 방법

2022-10-18 last update

7 minutes reading Ansible
Ansible은 단일 시스템에서 여러 원격 호스트를 관리하기 위한 자동화 도구입니다. 많은 수의 원격 호스트에 대해 쉽게 구성할 수 있습니다. 예를 들어, 여러 시스템에서 동일한 작업을 수행하는 경우 Ansible은 이러한 작업을 자동화하는 옵션을 제공합니다. 이 자습서는 Ubuntu 16.04(Xenial) LTS 시스템에 Ansible을 설치하는 데 도움이 됩니다.

1단계 – SSH 액세스 구성

원격 Linux Ansible 호스트에 대해 키 기반 ssh를 구성할 수 있습니다. 따라서 SSH에는 비밀번호가 필요하지 않습니다. Ansible을 사용하면 ssh에 대한 비밀번호를 사용할 수도 있지만 키 기반 ssh가 더 안전합니다. Ansible 서버에서 ssh 키 쌍을 생성합니다.
ssh-keygen
이 ssh 키를 통해 연결해야 하는 모든 원격 호스트에 공개 키를 복사합니다. .
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]_host

2단계 – Ubuntu 16.04에 Ansible 설치

Ansible은 Ubuntu 시스템에 설치하기 위한 공식 PPA를 제공합니다. 다음 명령을 실행하여 Ubuntu 18.04 시스템에 Ansible PPA를 구성합니다.
sudo apt-add-repository ppa:ansible/ansible
그런 다음 다음 명령을 실행하여 Ansible을 설치합니다.
sudo apt update
sudo apt install ansible

3단계 – Ansible 호스트 및 그룹 구성

원격 호스트 관리 및 자동화를 위해 서버가 Ansible을 사용할 준비가 되었습니다. 필요한 호스트를 여러 개 가질 수 있고 단일 Ansible 서버로 관리할 수 있습니다. 여기에서 Ansible 호스트 파일(/etc/ansible/hosts)에 원격 시스템을 정의해야 합니다. 유사한 유형의 호스트 그룹을 만들 수도 있습니다. 여기서 호스트를 그룹으로 적절하게 구성해야 합니다. 그룹은 그 아래에 정의된 모든 원격 호스트에서 하나의 작업을 수행하는 데 사용됩니다. Ansible 호스트 구성 파일을 편집합니다. 예:
sudo nano /etc/ansible/hosts
호스트를 추가하고 그룹으로 구성하십시오. 호스트는 여러 그룹에 추가할 수 있습니다.
[webservers]
web-host1
web-host2

[dbservers]
db-host1
아래 이미지는 그룹과 그룹 아래의 호스트를 이해하는 데 도움이 됩니다.

단일 호스트 변수 구성

호스트에 대한 설정을 정의해야 합니다. 호스트별 파일은 host_vars 디렉토리 아래에 있는 호스트(예: web-host1)와 이름이 같아야 합니다.
sudo mkdir /etc/ansible/host_vars
sudo vi /etc/ansible/host_vars/web-host1
web-host1에 대한 이 파일에 SSH 설정을 추가하십시오.
ansible_ssh_host: 192.168.1.15
ansible_ssh_port: 22
ansible_ssh_user: root
이 호스트에 대한 ssh 연결에 1단계를 사용하지 않은 경우. 인증을 위해 web-hosts1 설정 파일에 아래 방법 중 하나를 추가할 수도 있습니다.
ansible_ssh_pass: secret_password
ansible_ssh_private_key_file: /home/rahul/.ssh/aws.pem

그룹 변수 구성

그룹 구성에서 그룹의 공통 변수 설정을 구성할 수 있습니다. 그룹 파일 이름은 group_vars 디렉토리 아래의 그룹 이름(예: webservers)과 동일해야 합니다.
sudo mkdir /etc/ansible/group_vars
sudo vi /etc/ansible/group_vars/webservers
이 그룹 아래에 추가된 모든 호스트가 사용하는 공통 변수를 이 파일에 추가하십시오.
ansible_ssh_port: 22
ansible_ssh_user: root

4단계 – Ansible 설정 테스트

Ansible 설정을 테스트할 준비가 되었습니다. ping 모듈을 사용하여 모든 호스트 연결을 테스트하려면
ansible -m ping all
특정 호스트 또는 호스트 그룹에 대한 연결을 테스트하려면
ansible -m ping web-host1        ## Specific host 
ansible -m ping webservers       ## Specific group 
셸 모듈을 사용하여 명령을 실행할 수도 있습니다. 예를 들어 web-host1에서 여유 메모리를 테스트합니다. 그룹에 대해 동일한 작업을 수행할 수도 있습니다. 호스트 이름 대신 그룹 이름을 사용하십시오.
ansible -m shell -a 'free -m' web-host1