홈페이지 Enterprise 앤서블이란?

앤서블이란?

by 게스트 작성자

Ansible은 Python으로 작성된 에이전트 없는 자동화 도구입니다. SSH를 통해 클라이언트에 연결하고 원하지 않는 지루하고 반복적인 작업을 자동화할 수 있습니다. 이를 통해 수행하는 데 XNUMX시간이 걸릴 수 있는 작업을 사람이 수행하고 몇 분 안에 완료되는 단일 명령으로 변환할 수 있습니다. 이렇게 하면 성능이 향상되고 다음 큰 프로젝트에서 작업을 시작할 수 있습니다.


Ansible은 Python으로 작성된 에이전트 없는 자동화 도구입니다. SSH를 통해 클라이언트에 연결하고 원하지 않는 지루하고 반복적인 작업을 자동화할 수 있습니다. 이를 통해 수행하는 데 XNUMX시간이 걸릴 수 있는 작업을 사람이 수행하고 몇 분 안에 완료되는 단일 명령으로 변환할 수 있습니다. 이렇게 하면 성능이 향상되고 다음 큰 프로젝트에서 작업을 시작할 수 있습니다.

가능한 이점

Ansible은 많은 이점을 제공합니다. 시간을 내어 가장 중요한 몇 가지를 살펴보겠습니다. 자동화가 없거나 최소한인 사용자를 위한 섹션과 이미 Salt 또는 Puppet과 같은 자동화 도구를 사용하고 있는 사용자를 위한 섹션으로 분류하겠습니다.

자동화를 처음 접하다

자동화를 처음 사용하는 경우 간단한 도구를 사용하면 학습 곡선에 도움이 될 수 있습니다. 사용 가능한 다른 도구보다 Ansible을 선택해야 하는 몇 가지 이유를 살펴보겠습니다.

1. 간단한 구문

작업을 정의하는 Ansible의 간단한 방법으로 인해 시작하기가 매우 간단합니다. 아래 스니펫을 예로 들어 보겠습니다.

-

– 호스트: 모두

 작업 :

  – 이름: Nginx 설치

   냠:

     이름: nginx

     상태: 최신

모든 호스트에서 `yum install nginx`를 실행하는 것과 동일한 완전한 Ansible 작업입니다.

당신은 아마 그것이 무엇을 하고 있는지 이미 말할 수 있을 것입니다. 최신 버전을 설치하고 있습니다. Nginx에 정의된 모든 호스트의 오픈 소스 웹 서버. 나중에 호스트를 정의하는 방법을 살펴보겠습니다. 생성하는 모든 작업은 YAML에 있으므로 읽기 쉽고 생성하기 쉽습니다. 이는 자신감과 이해를 구축하면서 빠르게 경험을 얻을 수 있으므로 새로운 도구를 배우기 시작할 때 매우 중요합니다.

2. 힘내 사랑

자동화는 간단한 텍스트 파일이므로 Git(또는 다른 소스 리포지토리 시스템)에 저장할 수 있습니다. 여기서 변경 제어가 가능하고 중앙 소스에서 체크아웃 및 업데이트할 수 있습니다.

3. 간단한 실행 순서

작업은 정의한 순서대로 실행되므로 실행 순서에 대해 걱정할 필요가 없습니다. 사람에게 하듯이 단계를 정의하기만 하면 Ansible이 단계 누락에 대해 걱정할 필요 없이 매번 정확히 해당 순서로 실행합니다.

4. 에이전트리스

자동화된 방식으로 에이전트를 배포하는 방법이 아직 없는 경우 에이전트 없이 호스트를 관리하는 것이 중요합니다. 기존 환경에서 자동화 푸시를 시작하려는 시도는 악몽이 될 수 있습니다. 특히 새 에이전트가 필요한 머신이 수십 또는 수백 대 있는 경우 더욱 그렇습니다.

자동화 애호가

Bash, Python 또는 Powershell을 사용하여 일부 자동화를 이미 수행한 경우 Ansible이 테이블에 제공하는 것이 무엇인지 궁금할 수 있습니다. 한 번 보자.

1. 간단한 오케스트레이션

bash 스크립트를 사용하여 웹 사이트를 업데이트하려고 시도한 적이 있습니까? 웹 로드 밸런서 또는 리버스 프록시, 5개의 웹 서버, 데이터베이스 로드 밸런서 및 2개의 데이터베이스 서버가 있다고 가정합니다. 각 구성 요소가 성공적으로 업데이트되었는지 확인하는 데 수백 줄을 소비할 수 있습니다.

Ansible을 사용하면 상태 확인, 롤링 업그레이드를 정의하고 로드 밸런서를 설정하여 업그레이드의 각 단계에서 추가 및 제거 노드를 제거할 수 있습니다. 이에 대한 예는 공식 지속적 제공 및 롤링 업그레이드 문서에서 볼 수 있습니다.

2. 멱등성

멱등성은 수학 및 컴퓨터 과학에서 특정 작업의 속성으로 초기 적용 이후 결과를 변경하지 않고 여러 번 적용할 수 있습니다. - Wikipedia 기본적으로 플레이북을 한 번 실행하여 원하는 대로 설정한 다음 계속 실행하는 것이 목표입니다. 아무 것도 변경되지 않았는지 확인하기 위해 *X*시간/일/주마다. 변경 사항이 있는 경우 환경에서 *구성 드리프트*의 원인을 찾아야 합니다.

인프라의 서버가 시간이 지남에 따라 점점 더 달라지는 구성 드리프트.- Shadow Soft

3. 내장 비밀 저장소

Ansible Vault라고 하는 Ansible의 내장된 비밀 스토리지를 사용하면 암호, API 키 또는 프라이빗 키와 같은 민감한 데이터를 소스 제어의 나머지 코드베이스와 함께 안전한 방식으로 저장할 수 있습니다. 이는 Bash 또는 Python에서는 들어본 적이 없으며 일반적으로 API 지원 암호 저장소와 같은 타사 도구가 필요합니다.

4. 확장 성

Ansible은 Windows 및 Linux 모듈 모두에 대해 쉽게 확장할 수 있을 뿐만 아니라 타사 도구와 통신할 수 있습니다. 즉, 무언가를 자동화하려는 경우 사용할 수 있는 커뮤니티 모듈이 이미 있거나 필요에 맞게 기존 모듈을 만들거나 조정할 수 있습니다.

공식 문서에서 자체 모듈 개발에 대한 정보를 찾거나 Ansible Galaxyfor 커뮤니티 모듈을 확인할 수 있습니다.

앤서블 시작하기

가능한 설치

시작하는 것은 워크스테이션이나 서버에 Ansible을 설치하는 것만큼 간단합니다. RedHat/CentOS 명령을 표시할 예정이지만 공식 문서에서 다른 설치 단계를 볼 수 있습니다.

`sudo yum 설치 가능`

그게 다야! 완전한 기능을 갖춘 Ansible 제어 노드가 설치되어 있고 사용할 준비가 되었습니다.

목록

Ansible은 어떤 머신과 통신하고 플레이북을 실행할지 알아야 합니다. 이제 기본 인벤토리 설정에 대해 살펴보겠습니다. 기본 인벤토리 파일은 Linux의 `/etc/ansible/hosts`에서 사용할 수 있습니다. 해당 파일을 살펴보면 INI와 유사한 형식이며 아마도 다음과 같이 보일 것입니다.

mail.example.com

[웹서버]

foo.example.com

bar.example.com

[db서버]

one.example.com

two.example.com

three.example.com

설명서에 설명된 대로 괄호 안의 제목은 시스템을 임의의 그룹으로 분류할 수 있는 그룹 이름입니다. 작업을 실행하려는 호스트를 Ansible이 아는 것이 중요하므로 시간을 갖고 인벤토리 파일을 설정하는 것이 좋습니다.

플레이북 만들기

플레이북은 호스트에 대해 실행할 작업 모음입니다. 하나의 플레이가 포함된 단일 파일처럼 단순한 플레이북을 만들거나 여러 조건이 있는 여러 파일을 만들고 다른 플레이북에서 가져오기할 수 있습니다. 우리는 웹 서버에서 nginx에 대한 방화벽 규칙을 설치, 시작 및 추가하는 간단한 플레이북으로 시작할 것입니다. 호스트 파일에는 다음과 같은 내용이 있을 수 있습니다.

[웹서버]

web01.example.com

web02.example.com

그리고 `nginx-install.yaml` 파일에는 다음이 있습니다.

-

– 호스트: 웹서버

 작업 :

  – 이름: Nginx 설치

   냠:

     이름: nginx

     상태: 최신

  – 이름: Nginx 시작

   서비스:

     이름: nginx

     상태: 시작됨

  – 이름: 방화벽을 통해 포트 80 허용

   방화벽:

     port: 80/tcp # 또는 "service: http" 구문을 사용할 수 있습니다.

     영구: 예

     상태: 사용

웹 서버에 연결하고 NGINX를 설치하는 Ansible 호스트 개요. 이 플레이북을 실행하려면 `ansible-playbook nginx-install.yaml`을 실행하기만 하면 Ansible이 웹서버 그룹의 모든 호스트에 Nginx를 설치합니다. 이것은 한 번의 플레이가 포함된 간단한 플레이북이지만 사용자 환경에서 Ansible을 쉽게 사용할 수 있음을 보여주는 좋은 예입니다.

결론

보시다시피 Ansible은 모든 환경에서 작동할 수 있는 매우 유연하고 사용하기 쉬운 자동화 도구입니다. 손쉬운 학습 곡선과 필요에 따라 성장할 수 있는 능력을 갖춘 Ansible은 전체 DevOps 관리 환경에 대한 인프라 배포를 위한 최고의 자동화 도구 중 하나입니다.

-저스틴 고티에

@justinsane454