Provisioning - 2. Ansible

2020-02-28

Index


  1. Docker
    1. Docker 개념
    2. Docker Install
    3. Docker Command
    4. Docker Example
    5. Image 만들기
    6. Dockerfile
    7. Docker Compose
    8. Image 저장소

  1. Container Orchestration
    1. Container Orchestration 이란
    2. kubernetes(1)
    3. kubernetes(2)
    4. kubernetes install
    5. kubernetes ui
    6. kubernetes를 이용해 배포해보기
    7. kubectl CLI

  1. Provisioning
    1. Provisioning이란
    2. Ansible
    3. Ansible을 이용해 kubernetes cluster 생성하기

Ansible

Ansible은 오픈 소스 소프트웨어 프로비저닝, 구성 관리, 애플리케이션 전개 도구입니다. 수많은 유닉스 계열 시스템에서 실행되며 유닉스 계열 운영 체제 및 마이크로소프트 윈도우의 구성이 가능합니다. 시스템 구성을 기술하기 위해 자체 선언형 언어를 포함하고 있습니다.
python으로 개발되고 YAML 언어를 통해 정의하며 json으로 통신합니다. (python Github project 중 상위 6위)

IaC (Infrastructure as a Code) 라는 개념에서 나온 기술로 여러대의 서버를 효율적으로 관리하기 위해 만들어진 자동화 툴입니다.

1. Ansible 특징

2. Ansible 구성요소

Ansible에는 크게 3가지 요소가 있습니다. Inventory, playbook, module 입니다. 간단히 말해서 어디서(Inventory), 무엇을(playbook), 어떻게(module) 수행할 지를 정의합니다.
module은 playbook이 정의된 파일 내부에서 사용됩니다.

2.1 Inventory

배포 대상을 정리한 파일입니다. 간단히 말해 host ip와 접근방식등을 기록해 놓은 파일입니다. yaml문법을 적용하지 않았고 기본파일은 /etc/ansible/hosts 를 읽게 하거나, 따로 inventory 파일을 만들고 옵션을 주어 동작하게 할 수 있습니다.

2.3 playbook

다수의 서버에 대한 배포시스템의 기본 단위입니다. Inventory에 작성된 서버들을 대상으로 실행 스크립트를 정의한 파일입니다. YAML 문법을사용합니다.

참고

https://www.ansible.com/
https://ko.wikipedia.org/wiki/Ansible
https://brownbears.tistory.com/358