리눅스/개념

[LINUX] ANSIBLE (앤서블)이란?

ㅎㄷㄹㅁㅇ 2022. 2. 27. 01:01
반응형

Ansible (앤서블)

목차

    Ansible 이란? 

    Ansible은 오픈소스 IT 자동화 툴입니다. 이전과 달리 데이터의 전체적인 증가로 인해 클라우드 인프라 방식으로 변하고 있습니다. 관리해야 할 대상이 많아졌고 동시다발적인 형태의 서버의 배포와 자동화가 필요해졌습니다. 이를 더 쉽고 간단하게 도와주는 것이 Ansible입니다. 프로비저닝, 구성 관리, 서버 및 애플리케이션 배포 등을 자동화합니다. 소프트웨어의 설치뿐만 아니라, Task 등록과 Server에 맞는 패치 등을 진행합니다. 

     

     

    Ansible 특징

    - 멱등성(Idempotency)
    멱등선은 Ansible의 핵심입니다. 동일한 작업을 여러번 수행하여도 결과는 동일한 것을 말합니다. Ansible을 수십 수백번을 실행해도 동일한 결과가 나오는 것을 말합니다.
    (사전적의미 멱등성(冪等性, 영어: idempotent)은 수학이나 전산학에서 연산의 한 성질을 나타내는 것으로,
    연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다. )

    - Agent-less
    Ansible은 위에서 설명했듯이 SSH 기반으로 동작합니다. 추가로 Agent의 설치가 필요 없습니다. 
    SSH를 통한 Pushing을 통해 동작합니다. 

     

     

    * Agent Based / Agent less 각각의 특징
    Agent Based :
    실시간 모니터링 가능, 원격 ROOT 로그인 불가, 시스템 부하를 효율적으로 사용, 네트워크 부하가 적음
    Agent less  :
    대상 서버를 즉시 검사 할 수 있음, 소프트웨어 설치 불필요, 스캔 정책을 유연하게 적용

     

     

    Ansible 구조

     

    Ansible 구조

    * Control Node
     - 원격으로 대상서버를 관라히는 노드
     - Ansible이 설치되는 노드
     - SSH 설치 필요
     - Python-2.6 이상 설치가 되어 있어야 함


    * Managed Node(s) 
     - Ansible Control Node에 의해서 관리되어지는 노드
     - Ansible 설치가 필요 없음
     - SSH 설치 필요
     - Python-2.6 이상 설치가 되어 있어야 함

    * Inventory
     - Managed Node의 List 
     - Hosts 파일 
     - Managed Node의 IP 및 정보 등을 저장 
       (default - /etc/ansible/hosts)
     - 시스템의 단위는 그룹으로 묶일 수 있음

    * Playbookㅋㅋ
     - YAML 파일로 작성된 문서로 Ansible이 실행하는 파일 
     - 순서대로 진행되는 TASK들의 집합
     - 모든 서버 혹은 지정 서버에서 실행되어 짐
     - 각각의 Playbook은 한개 이상의 Play로 구성되어 있음
     - 멱등성을 유지하지 않을 경우 반드시 표시해야 함.
     
    * Module
     - Ansible 내장 자동화 모듈
     - 사용자가 직접 사용하거나, Playbook을 통해 사용 함
     - Server, Network, Storage 등 다양한 모듈이 존재함(계속적으로 추가 중)

    * Variables
     - Ansible 자동화 코드에 사용하는 변수
     - 우선순위에 이해가 필요함 

     

    * 참고
    각각의 Node들은 Python-2.6 이상 설치, SSH 설치를 필요로 합니다. 

     

     

    Ref

    * 참고 사이트 & 문헌
    https://www.redhat.com/ko/technologies/management/ansible/what-is-ansible
    What is Ansible? | Opensource.com
    What is Ansible? A Tool to Automate Parts of Your Job (freecodecamp.org)
    [번역] Ansible(2) inventory, Playbooks, Roles (velog.io)

     

    반응형

    '리눅스 > 개념' 카테고리의 다른 글

    [LINUX] iscsi.service vs iscsid.service  (0) 2024.08.28
    [LINUX]특수 권한 및 파일 설정  (1) 2023.12.07
    [LINUX]라우팅 매트릭 및 최적 경로  (2) 2023.11.18
    [오픈스택] TripleO란?  (0) 2023.03.10
    [LINUX]HA Pacemaker란?  (0) 2021.01.06
    TOP