본문으로 바로가기
반응형

Ansible은 인프라 관리를 코드 기반으로 자동화하는 도구 입니다.

 

Infrastructure as Code (IaC) 이름 그대로 IT 인프라를 코드 기반으로 자동 설치 및 구축/관리/프로비저닝 하는 프로세스를 말하며, 앤서블(Ansible)은 SSH를 기반으로 대상 서버에 명령을 전달하기 때문에 에이전트가 필요 없습니다.

 

Agent가 필요 없음으로, 각 대상 서버에 별도의 agent를 설치할 필요가 없습니다.

 

또한 앤서블은 이러한 명령 모음집을 YAML형식 (python)의 파일로 관리하는데 네트워크 장비나 가상화 플랫폼 (예, 오픈스택) 같은 경우 해당 장비에서 파이썬 실행을 할 수 없어, 해당 모듈을 control 노드 (예, localhost)에서 ansible이나 ansible-playbook으로 실행하는 것으로 됩니다.

 

즉, 일반적인 대상 노드에서 명령을 전달하는게 아닌 앤서블의 control 노드 (예, localhost)에서 네트워크 / 가상화등의 모듈이 실행된다고 생각하면 됩니다.

다양한 통신 프로토콜 (XML over SSH, CLI over SSH, API over HTTPS)이 지원되지만, 일반적으로는 CLI over SSH를 많이 사용합니다.

 

그래서 아래 내용은, Tower (awx)를 통한, 가상화플랫폼 OpenStack (오픈스택) 연동 방법입니다. 

 

 

1. Project 생성

프로젝트를 구성하고 저장합니다.

 

 

2. Credentials 생성

오픈스택 인증 정보를 구성하고 저장합니다.

 

 

3. Inventory 생성

인벤토리를 구성하고 저장합니다.

 

 

4. Inventory - HOSTS 구성

인벤토리의 상위 메뉴탭에서 HOSTS를 선택한 후 아래와 같이 구성합니다.

 

 

5. Inventory - SOURCES 구성

인벤토리의 상위 메뉴탭에서 SOURCES를 선택한 후 아래와 설정하여 구성합니다.

 

 

6. Inventory - SOURCES Sync

화면 하단부분에 생성한 SOURCE 오른쪽에 동기화 버튼을 선택하여 동기화를 진행합니다.

 

 

7. Inventory - SOURCES Sync Complete 확인 및 VM 정보 확인

동기화가 정상적으로 되면, 왼쪽 구름의 색이 녹색으로 변경됩니다.

 

녹색으로 변경되었다면, Inventory 상단 메뉴탭에 HOSTS를 선택합니다.

SYNC로 인해 오픈스택 VM 정보와 관련된 오픈스택 관련정보가 나타나는것을 확인할 수 있습니다.

동기화된 정보를 기반으로 Group를 새로 생성한 후, 그 정보를 기반으로 Job를 실행할 수도 있습니다. (참고용)

 

 

7. Job Template 생성 (오픈스택 - Flavor 생성)

연동 테스트를 위해 Flavor 생성 Template를 구성합니다.

 

# task - main.yml 내용

---
- name: Create m1.medium flavor
  os_nova_flavor:
     cloud: openstack
     state: present
     name: m1.medium
     ram: 2048
     vcpus: 1
     disk: 20

 

 

8. Job 실행 및 확인

# Job 실행 전 오픈스택 Flavor 리스트를 확인합니다.

 

 

# Flavor 생성 job를 실행합니다.

 

 

# Flavor 생성이 정상적으로 이루어지는 것을 확인할 수 있습니다.

728x90