웹사이트 검색

IT 관리를 위한 'Ansible' 자동화 도구를 설치하고 구성하는 방법 - 1부


Ansible은 SSH를 사용하여 다운타임 없이 노드에서 소프트웨어 애플리케이션을 구성, 관리 및 배포할 수 있는 강력한 오픈 소스 자동화 소프트웨어입니다. 오늘날 대부분의 IT 자동화 도구는 원격 호스트에서 에이전트로 실행되지만, 작업을 수행하려면 SSH 연결과 Python(2.4 이상)을 원격 노드에 설치하면 됩니다.

Ansible은 어떻게 작동하나요?

Puppet, Capistrano, Chef, Salt, Space Walk 등과 같은 유사한 자동화 도구가 많이 있지만 Ansible은 제어 시스템과 노드라는 두 가지 유형의 서버로 분류됩니다.

Ansible이 설치되고 노드가 SSH를 통해 이 제어 시스템에 의해 관리되는 제어 시스템입니다. 노드의 위치는 인벤토리를 통해 기계를 제어하여 지정됩니다.

제어 시스템(Ansible)은 SSH 프로토콜을 사용하여 노드에 모듈을 배포하고 이러한 모듈은 원격 노드에 임시로 저장되며 표준 출력을 통한 JSON 연결을 통해 Ansible 시스템과 통신합니다.

Ansible은 에이전트가 없습니다. 즉, 원격 노드에 에이전트를 설치할 필요가 없습니다. 즉, 노드를 관리하지 않을 때 Ansible을 위해 실행되는 백그라운드 데몬이나 프로그램이 없다는 의미입니다.

Ansible은 SSH 연결을 통해 단일 시스템에서 100개의 노드를 처리할 수 있으며 전체 작업은 'ansible'이라는 단일 명령으로 처리하고 실행할 수 있습니다. 그러나 배포를 위해 여러 명령을 실행해야 하는 경우에는 여기에서 플레이북을 구축할 수 있습니다.

플레이북은 여러 작업을 수행할 수 있는 명령 모음이며 각 플레이북은 YAML 파일 형식입니다.

Ansible의 용도는 무엇입니까

Ansible은 IT 인프라에서 소프트웨어 애플리케이션을 관리하고 원격 노드에 배포하는 데 사용할 수 있습니다. 예를 들어, 단일 명령으로 단일 소프트웨어 또는 여러 소프트웨어를 100개의 노드에 배포해야 한다고 가정해 보겠습니다. 여기에서는 Ansible이 등장합니다. Ansible의 도움으로 단일 명령으로 많은 노드에 많은 애플리케이션을 배포할 수 있습니다. 하지만 Ansible 스크립트를 이해하려면 약간의 프로그래밍 지식이 있어야 합니다.

우리는 'Ansible IT 자동화 도구를 사용한 IT 인프라 배포 준비'라는 제목의 Ansible 시리즈를 1~4부까지 편집했으며 다음 주제를 다룹니다.

이 기사에서는 RHEL/CentOS 7/6, Fedora 21-19, Ubuntu 14.10-13.04 및 Debian 7/6 시스템에 'Ansible'을 설치하는 방법을 설명하고 관리 방법에 대한 몇 가지 기본 사항도 설명합니다. 패키지를 설치하고 업데이트를 적용하는 등 기본에서 프로까지 다양한 기능을 갖춘 서버입니다.

전제 조건

  1. 운영 체제: RHEL/CentOS/Fedora 및 Ubuntu/Debian/Linux Mint
  2. Jinja2: 현대적이고 빠르고 사용하기 쉬운 Python용 독립형 템플릿 엔진입니다.
  3. PyYAML: Python 프로그래밍 언어용 YAML 파서 및 이미터입니다.
  4. parmiko: 기본 Python SSHv2 채널 라이브러리입니다.
  5. httplib2: 포괄적인 HTTP 클라이언트 라이브러리입니다.
  6. sshpass: 비대화형 SSH 비밀번호 인증입니다.

내 환경 설정

기계 제어 – Ansible
Operating System :	Linux Mint 17.1 Rebecca
IP Address	 :	192.168.0.254
Host-name	 :	tecmint.instrcutor.com
User		 :	tecmint
원격 노드
Node 1: 192.168.0.112
Node 2: 192.168.0.113
Node 3: 192.168.0.114

1단계: 제어 머신 설치 - Ansible

1. 서버에 'Ansible'을 설치하기 전에 먼저 호스트 이름, IP 주소 등 서버의 세부 사항을 확인하겠습니다. 루트 사용자로 서버에 로그인하고 아래 명령을 실행하여 이 설정에 사용할 시스템 설정을 확인합니다.

sudo ifconfig | grep inet

2. 시스템 설정을 확인했다면 이제 시스템에 'Ansible' 소프트웨어를 설치할 차례입니다.

우분투/데비안/리눅스 민트에서

여기서는 시스템의 공식 Ansible PPA 저장소를 사용하겠습니다. 아래 명령을 실행하여 저장소를 추가하면 됩니다.

sudo apt-add-repository ppa:ansible/ansible -y
sudo apt-get update && sudo apt-get install ansible -y

RHEL/CentOS/Fedora에서

안타깝게도 RedHat 기반 복제본을 위한 공식 Ansible 저장소는 없지만 RHEL/CentOS 6, 7 및 현재 지원되는 Fedora 배포판에서 epel 저장소를 활성화하여 Ansible을 설치할 수 있습니다.

Fedora 사용자는 기본 저장소를 통해 Ansible을 직접 설치할 수 있지만, RHEL/CentOS 6, 7을 사용하는 경우 EPEL 저장소를 활성화해야 합니다.

epel 저장소를 구성한 후 다음 명령을 사용하여 Ansible을 설치할 수 있습니다.

sudo yum install ansible -y

성공적으로 설치가 완료되면 아래 명령어를 실행하여 버전을 확인할 수 있습니다.

ansible --version

2단계: 원격 호스트에 대한 SSH 키 준비

4. 로컬 호스트에서 원격 호스트로 배포 또는 관리를 수행하려면 먼저 SSH 키를 생성하여 원격 호스트에 복사해야 합니다. 모든 원격 호스트에는 tecmint 사용자 계정이 있습니다(귀하의 경우 다른 사용자일 수 있음).

먼저 아래 명령을 사용하여 SSH 키를 생성하고 해당 키를 원격 호스트에 복사해 보겠습니다.

ssh-keygen -t rsa -b 4096 -C "[email "

5. SSH 키를 성공적으로 생성한 후 이제 생성된 키를 세 개의 원격 서버 모두에 복사합니다.

ssh-copy-id [email 
ssh-copy-id [email 
ssh-copy-id [email 

6. 모든 SSH 키를 원격 호스트에 복사한 후 이제 모든 원격 호스트에서 SSH 키 인증을 수행하여 인증이 작동하는지 확인합니다.

ssh [email 
ssh [email 
ssh [email