DevOps/Ansible

Ansible 기초

devdubu 2023. 8. 4. 06:11

개인적으로 공부한 내용을 올리고 있습니다. 가독성이 떨어져도 양해 부탁드립니다 _ _

Ansible 기초

앤서블 공식 문서

Ansible Documentation - Ansible Documentation

서버 형상 관리(Server Configuration Management)

서버 운영체제 상에 필요한 소프트웨어를 설치하고 원하는 설정으로 관리하는 것 → 이를 통해서 Git Ops 가 가능해진다.

대표적인 형상관리 도구 Ansible, Puppet, Chef, Salt Stack 등등

앤서블의 유즈케이스

  • Configuration Management - 서버 구성 관리
  • Security Compliance - 보안 점검 관리
  • Provisioning
  • Continuous Delivery
  • Application Delpoyment

왜 앤서블?

이러한 형상 관리가 없었을 때는 Shell Script를 이용해서 이러한 서버 환경 셋팅을 진행을 했다.

which=`which mongod 2>&1 >/dev/null`
    if [$? -eq 0]; then
        if["$INSTALLED_MONGO" == "$MONGO_VERSION" ]; then
        echo "Mongo Server version is current and up to date"
    fi
    if ["$INSTALLED_MONGO" != "$MONGO_VERSION" ]; then
        remove_mongo_server
        install_mongo_server
    fi
    else
        install_mongo_server
    fi

왼쪽에 보이는 코드는 shell script를 이용해서 mongodb를 설치하는 코드 이다.

많은 조건문이 보여진다 → 이는 멱등성 을 위함이라고 보면 된다.

즉, 수많은 반복이 생겨도 항상 결과는 동일한 것들을 말한다.

Ansible

-name: install mongodb
    yum: name=mongodb-server-2.6 state=installed

왼쪽의 코드는 위에 있는 shell script와 동일한 코드이다.

  • 간단한 YAML 문법
  • 멱등성을 보장하여 여러번 실행해도 안전하다.
  • ssh / win_rm 기반으로 통신한다. 대상 서버에 에이전트 설치가 필요하지 않는다.
  • 여러 서버를 대상으로 동시 실행
  • 특정 서버들을 타겟팅 할 수 있다.
  • 버전 관리에 용이하다.

'DevOps > Ansible' 카테고리의 다른 글

Ansible Handler  (0) 2023.08.04
Ansible Module  (0) 2023.08.04
Ansible playbook  (0) 2023.08.04
Ansible Inventory  (0) 2023.08.04
Ansible 설치  (0) 2023.08.04