Ansible-소개

Ansible 애플리케이션 배포, 서비스 내 오케스트레이션, 클라우드 프로비저닝 및 기타 여러 IT 도구를 자동화하는 간단한 오픈 소스 IT 엔진입니다.

Ansible은 에이전트 나 사용자 지정 보안 인프라를 사용하지 않기 때문에 배포가 쉽습니다.

Ansible은 플레이 북을 사용하여 자동화 작업을 설명하고 플레이 북은 매우 간단한 언어를 사용합니다. YAML(사람이 읽을 수있는 데이터 직렬화 언어이며 구성 파일에 일반적으로 사용되지만 데이터가 저장되는 많은 애플리케이션에서 사용할 수 있음) 사람이 이해하고 읽고 쓰기가 매우 쉽습니다. 따라서 IT 인프라 지원 담당자조차도 플레이 북을 읽고 이해할 수 있으며 필요한 경우 디버그 할 수 있다는 장점이 있습니다 (YAML – 사람이 읽을 수있는 형식 임).

Ansible은 다중 계층 배포를 위해 설계되었습니다. Ansible은 한 번에 하나의 시스템을 관리하지 않으며 모든 시스템이 상호 연관되어 있음을 설명하여 IT 인프라를 모델링합니다. Ansible은 완전히 에이전트가 없으므로 Ansible은 ssh (기본값)를 통해 노드를 연결하여 작동합니다. 그러나 Kerberos와 같은 다른 연결 방법을 원할 경우 Ansible은 해당 옵션을 제공합니다.

노드에 연결 한 후 Ansible은 "Ansible 모듈"이라는 작은 프로그램을 푸시합니다. Ansible은 노드에서 해당 모듈을 실행하고 완료되면 제거합니다. Ansible은 간단한 텍스트 파일 (호스트 파일)로 인벤토리를 관리합니다. Ansible은 호스트 파일을 사용하여 호스트를 그룹화하고 플레이 북의 특정 그룹에 대한 작업을 제어 할 수 있습니다.

샘플 호스트 파일

이것은 호스트 파일의 내용입니다-

#File name: hosts
#Description: Inventory file for your application. Defines machine type abc
node to deploy specific artifacts
# Defines machine type def node to upload
metadata.

[abc-node]
#server1 ansible_host = <target machine for DU deployment> ansible_user = <Ansible
user> ansible_connection = ssh
server1 ansible_host = <your host name> ansible_user = <your unix user>
ansible_connection = ssh

[def-node]
#server2 ansible_host = <target machine for artifact upload>
ansible_user = <Ansible user> ansible_connection = ssh
server2 ansible_host = <host> ansible_user = <user> ansible_connection = ssh

구성 관리 란?

Ansible의 구성 관리는 기업의 하드웨어 및 소프트웨어를 설명하는 세부 정보를 기록하고 업데이트하여 제품 성능의 구성을 유지하는 것을 의미합니다.

이러한 정보에는 일반적으로 설치된 소프트웨어 패키지에 적용된 정확한 버전 및 업데이트와 하드웨어 장치의 위치 및 네트워크 주소가 포함됩니다. 예를 들어 새 버전을 설치하려는 경우WebLogic/WebSphere 기업에있는 모든 컴퓨터에 서버를 설치하는 경우 수동으로 이동하여 모든 컴퓨터를 업데이트하는 것은 불가능합니다.

가장 간단한 방법으로 작성된 Ansible 플레이 북 및 인벤토리를 사용하여 모든 시스템에 WebLogic / WebSphere를 한 번에 설치할 수 있습니다. 인벤토리에서 노드의 IP 주소를 나열하고 WebLogic / WebSphere를 설치하는 플레이 북을 작성하기 만하면됩니다. 제어 시스템에서 플레이 북을 실행하면 모든 노드에 설치됩니다.

Ansible은 어떻게 작동합니까?

아래 그림은 Ansible의 작동 방식을 보여줍니다.

Ansible works 노드에 연결하고 ""라는 작은 프로그램을 푸시하여Ansible 모듈 ". Ansible그런 다음 이러한 모듈 (기본적으로 SSH를 통해)을 실행하고 완료되면 제거합니다. 모듈 라이브러리는 모든 시스템에 상주 할 수 있으며 서버, 데몬 또는 데이터베이스가 필요하지 않습니다.

위 그림에서 관리 노드는 플레이 북의 전체 실행을 제어하는 ​​제어 노드 (관리 노드)입니다. 설치를 실행하는 노드입니다. 인벤토리 파일은 Ansible 모듈을 실행해야하는 호스트 목록을 제공하고 관리 노드는 SSH 연결을 수행하고 호스트 머신에서 작은 모듈을 실행하고 제품 / 소프트웨어를 설치합니다.

Beauty Ansible은 모듈이 설치되면 모듈을 제거하여 호스트 머신에 효과적으로 연결하고 명령을 실행하며 성공적으로 설치되면 실행 된 호스트 머신에 복사 된 코드를 제거합니다.