컴퓨터에 Ansible 설치 방법

AnsibleBeginner
지금 연습하기

소개

이 튜토리얼에서는 컴퓨터에 Ansible 을 설치하고 Ansible playbook 을 시작하는 과정을 안내합니다. Ansible 은 인프라 관리를 더 효율적으로 수행하는 데 도움이 되는 인기 있는 오픈소스 IT 자동화 도구입니다. 이 튜토리얼을 마치면 작동하는 Ansible 설정을 갖추고 IT 작업을 자동화하기 시작할 준비가 될 것입니다.

Ansible 소개

Ansible 은 에이전트리스 (agentless) 오픈소스 IT 자동화 도구로, 인프라 코드 (IaC) 관리를 가능하게 합니다. 간편하고 강력하며 확장 가능하도록 설계되어 서버 프로비저닝 및 구성 관리부터 애플리케이션 배포 및 오케스트레이션까지 다양한 IT 작업을 자동화하는 데 적합한 도구입니다.

Ansible 이란 무엇인가요?

Ansible 은 선언형 언어를 사용하여 시스템의 원하는 상태를 기술하는 구성 관리 및 배포 도구입니다. SSH 를 통해 원격 호스트에 연결하여 해당 호스트에서 작업을 실행하여 원하는 상태로 가져옵니다. Ansible 은 원격 호스트에 특수 소프트웨어 또는 에이전트를 설치할 필요가 없으므로 가볍고 유연한 솔루션입니다.

Ansible 의 주요 기능

  1. 에이전트리스 아키텍처: Ansible 은 원격 호스트에 특수 소프트웨어 또는 에이전트를 설치할 필요가 없으므로 설정 및 사용이 용이합니다.
  2. 선언형 언어: Ansible 은 YAML 이라는 선언형 언어를 사용하여 시스템의 원하는 상태를 기술합니다. 이를 통해 Ansible playbook 을 쉽게 읽고 작성할 수 있습니다.
  3. 아이데 mp 턴시 (Idempotency): Ansible 작업은 의도하지 않은 변경 사항을 일으키지 않고 여러 번 실행될 수 있도록 설계되었습니다.
  4. 모듈식 설계: Ansible 은 파일 및 서비스 관리부터 클라우드 공급자와의 상호 작용까지 다양한 작업을 수행할 수 있는 광범위한 내장 모듈을 갖춘 모듈식 설계를 가지고 있습니다.
  5. 확장성: Ansible 은 많은 호스트를 관리할 수 있으므로 IT 자동화에 대한 확장 가능한 솔루션입니다.

Ansible 의 활용 사례

Ansible 은 다음과 같은 다양한 IT 자동화 작업에 사용될 수 있습니다.

  • 서버 프로비저닝: 운영 체제 설치, 네트워크 설정 구성 및 소프트웨어 설치를 포함하여 새 서버를 설정하는 프로세스를 자동화합니다.
  • 구성 관리: 모든 서버가 일관되게 구성되도록 하고 시스템의 원하는 상태를 유지합니다.
  • 애플리케이션 배포: 여러 서버에 애플리케이션을 배포하는 프로세스를 자동화하고 종속성 및 구성 설정을 관리합니다.
  • 오케스트레이션: 소프트웨어 업데이트 배포 또는 데이터베이스 마이그레이션과 같이 여러 호스트에서 여러 작업을 조정합니다.
  • 보안 및 컴플라이언스: 보안 정책을 적용하고 시스템이 업계 표준을 준수하도록 합니다.

Ansible 을 사용하면 조직은 IT 운영의 효율성과 신뢰성을 높이고, 인적 오류의 위험을 줄이며, IT 직원이 더 전략적인 이니셔티브에 집중할 수 있도록 지원합니다.

시스템에 Ansible 설치하기

필수 사항

Ansible 을 설치하기 전에 시스템에 다음이 설치되어 있어야 합니다.

  • Python 3 (버전 3.5 이상)
  • pip (Python 패키지 관리자)

Ubuntu 22.04 에 Ansible 설치하기

  1. 패키지 인덱스를 업데이트합니다.
sudo apt update
  1. 필요한 종속성을 설치합니다.
sudo apt install software-properties-common
  1. Ansible 저장소를 시스템 소스 목록에 추가합니다.
sudo add-apt-repository --yes --update ppa:ansible/ansible
  1. Ansible 을 설치합니다.
sudo apt install ansible
  1. 설치를 확인합니다.
ansible --version

이 명령어는 시스템에 설치된 Ansible 버전을 출력합니다.

Ansible 구성

Ansible 의 구성은 /etc/ansible/ansible.cfg 파일에서 관리됩니다. 기본 인벤토리 파일, 원격 사용자 및 SSH 연결 설정과 같은 다양한 옵션을 설정하기 위해 이 파일을 사용자 정의할 수 있습니다.

다음은 기본 ansible.cfg 파일의 예입니다.

[defaults]
inventory = ./hosts
remote_user = ubuntu

이 예제에서 인벤토리 파일은 ./hosts로 설정되어 있습니다. 즉, Ansible 은 현재 디렉토리에서 인벤토리 파일을 찾습니다. remote_user는 Ubuntu 22.04 인스턴스의 기본 사용자인 ubuntu로 설정되어 있습니다.

설치 확인

Ansible 이 올바르게 설치되고 구성되었는지 확인하려면 다음 명령어를 실행합니다.

ansible all -m ping

이 명령어는 인벤토리의 모든 호스트에 ping 을 보내 Ansible 이 해당 호스트에 연결할 수 있는지 확인합니다. 설치가 성공하면 다음과 유사한 응답이 표시됩니다.

all_hosts | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Ansible 이 설치되고 구성되면 이제 IT 작업을 자동화하는 데 사용할 준비가 되었습니다.

Ansible Playbook 시작하기

Ansible Playbook 이해

Ansible Playbook 은 YAML 기반의 구성 파일로, 인프라의 원하는 상태를 정의합니다. 서버 프로비저닝부터 애플리케이션 배포까지 다양한 IT 작업을 자동화할 수 있도록 Ansible 의 핵심 기능을 제공합니다.

일반적인 Ansible Playbook 은 하나 이상의 "플레이"로 구성됩니다. 각 플레이는 일련의 호스트에서 수행할 작업을 정의합니다. 각 플레이는 Ansible 이 대상 호스트에서 실행할 개별 단계인 하나 이상의 "작업"을 포함할 수 있습니다.

첫 번째 Ansible Playbook 만들기

Ubuntu 22.04 호스트에 Apache 웹 서버를 설치하는 간단한 Ansible Playbook 을 만들어 보겠습니다.

  1. 작업 디렉토리에 apache.yml이라는 새 파일을 만듭니다.
touch apache.yml
  1. 텍스트 편집기에서 파일을 열고 다음 내용을 추가합니다.
- hosts: all
  become: true
  tasks:
    - name: Install Apache
      apt:
        name: apache2
        state: present
    - name: Start Apache
      service:
        name: apache2
        state: started
        enabled: true

이 Playbook 에서:

  • hosts: all은 인벤토리의 모든 호스트에서 작업을 실행하도록 지정합니다.
  • become: true는 Ansible 이 높은 권한 (예: sudo) 을 사용하여 작업을 실행하도록 지정합니다.
  • apt 모듈은 Apache 웹 서버 패키지를 설치하는 데 사용됩니다.
  • service 모듈은 Apache 서비스를 시작하고 시스템 부팅 시 자동으로 시작하도록 설정하는 데 사용됩니다.
  1. 파일을 저장하고 Playbook 을 실행합니다.
ansible-playbook apache.yml

Ansible 은 대상 호스트에 연결하고 Playbook 에 정의된 작업을 실행하며 결과를 보고합니다.

Ansible 모듈 탐색

Ansible 에는 다양한 작업을 수행할 수 있는 광범위한 내장 모듈이 포함되어 있습니다. 사용 가능한 모듈은 Ansible 모듈 인덱스에서 확인할 수 있습니다.

일반적으로 사용되는 모듈은 다음과 같습니다.

  • file: 파일 및 디렉토리 관리
  • user: 사용자 계정 관리
  • cron: cron 작업 관리
  • systemd: 시스템 서비스 관리
  • aws_ec2: AWS 리소스 관리
  • azure_rm_virtualmachine: Azure 가상 머신 관리

이러한 모듈을 Playbook 에 결합하여 다양한 IT 작업을 자동화하고 인프라 관리를 간소화할 수 있습니다.

결론

이 Ansible Playbook 소개에서 Apache 웹 서버를 설치하는 간단한 Playbook 을 생성하고 실행하는 방법을 배웠습니다. 또한 Ansible Playbook 의 구조와 IT 작업을 자동화하는 데 사용할 수 있는 다양한 모듈을 살펴보았습니다. 이 지식을 바탕으로 더 복잡한 Playbook 을 만들어 인프라와 애플리케이션을 관리할 수 있습니다.

요약

이 튜토리얼에서는 컴퓨터에 Ansible 을 설치하고 Ansible playbook 을 시작하는 방법을 배웠습니다. Ansible 은 인프라 관리 프로세스를 간소화하는 데 도움이 되는 강력한 IT 자동화 도구입니다. Ansible 을 사용하면 소프트웨어 배포부터 구성 관리까지 다양한 작업을 자동화하여 IT 운영을 더욱 효율적이고 안정적으로 만들 수 있습니다.