[자동화] Ansible을 활용하여 인스턴스 VM 생성방법

2025. 4. 3. 22:53·깐돌의 클라우드 도구함
728x90

 

 

OpenStack 인스턴스 자동 생성 메뉴얼 (Ansible 사용)

📑 목차

  1. 1. 환경 설정 준비
  2. 2. OpenStack Cluster 정보 확인 및 연동
  3. 3. clouds.yaml 파일 설정
  4. 4. Ansible 플레이북 작성
  5. 5. Ansible 플레이북 실행 및 인스턴스 생성 확인
  6. 6. Floating IP 자동 할당 문제
  7. 7. 참고 사항

1. 환경 설정 준비

1.1 Ansible Collection 설치

Ansible에서 OpenStack 모듈을 사용하기 위해 필요한 Collection을 설치합니다.

ansible-galaxy collection install openstack.cloud

설치 확인:

ansible-galaxy collection list | grep openstack.cloud

1.2 Python3 및 PIP3 설치 확인 및 설치

Python3과 pip3가 설치되어 있는지 확인합니다.


python3 --version
pip3 --version

설치되지 않았다면 아래 명령어로 설치합니다.


sudo apt-get update
sudo apt-get install python3
sudo apt-get install python3-pip

1.3 OpenStack SDK 설치

PIP3를 사용하여 OpenStack SDK를 설치합니다.

pip3 install openstacksdk

설치 확인:

pip3 show openstacksdk

2. OpenStack Cluster 정보 확인 및 연동

2.1 Python을 이용한 정보 확인

Python 스크립트를 작성하여 OpenStack 리소스를 확인합니다.

Python 코드 예제:


from openstack import connection

conn = connection.from_config(cloud_name='default')

print("Available Images:")
for image in conn.list_images():
    print(f"ID: {image.id}, Name: {image.name}")

print("Available Flavors:")
for flavor in conn.list_flavors():
    print(f"ID: {flavor.id}, Name: {flavor.name}, RAM: {flavor.ram}MB, VCPUs: {flavor.vcpus}, Disk: {flavor.disk}GB")

print("Available Networks:")
for network in conn.list_networks():
    print(f"ID: {network.id}, Name: {network.name}")

Python 스크립트 실행 방법:

python3 list_openstack_resources.py

3. clouds.yaml 파일 설정


clouds:
  default:
    auth:
      auth_url: https://10.10.11.80:5000/v3
      project_name: admin
      tenant_name: admin
      project_domain_name: Default
      username: admin
      password: npd!234
      user_domain_name: Default
    region_name: RegionOne
    interface: internal
    identity_api_version: "3"
    verify: False

4. Ansible 플레이북 작성


---
- name: OpenStack Instance Creation
  hosts: localhost
  collections:
    - openstack.cloud
  gather_facts: no
  connection: local
  tasks:
    - name: Create OpenStack instance
      openstack.cloud.server:
        cloud: default
        name: My-Ansible-Instance
        state: present
        image: a39b608a-6cdc-408d-b0f7-df4fcb0a3e16
        flavor: c2m4d10
        network: t-network-1
        auto_ip: false
        wait: yes
      register: server_info

    - name: Display server information
      debug:
        var: server_info

5. Ansible 플레이북 실행 및 인스턴스 생성 확인


ansible-playbook -i localhost, test-instance.yaml

6. Floating IP 자동 할당 문제

플레이북 실행 시 External network와 Tenant-Router가 구성되어 있을 경우, Floating IP가 자동으로 할당되는 현상이 있습니다. clouds.yaml에 auto_ip: false 옵션을 추가하면 해결됩니다.

7. 참고 사항

Ansible 공식 사이트: Ansible 공식 문서

OpenStack 공식 사이트: OpenStack 공식 사이트

Ansible OpenStack Cloud Module: Ansible OpenStack Cloud Module 공식 문서

728x90
반응형

'깐돌의 클라우드 도구함' 카테고리의 다른 글

[가상화] KVM to KVM VM Live Migration 방법  (0) 2025.05.09
[컨테이너] Podman 설치 및 사용 가이드  (2) 2025.05.07
[가상화] DB에서 Cinder 볼륨 강제 삭제 및 사용량 초기화방법  (0) 2025.04.01
[가상화] Ubuntu ISO & qcow2 이미지 다운로드 방법  (1) 2025.03.27
[Linux] Ubuntu machine-id 재 생성 방법  (0) 2025.03.16
'깐돌의 클라우드 도구함' 카테고리의 다른 글
  • [가상화] KVM to KVM VM Live Migration 방법
  • [컨테이너] Podman 설치 및 사용 가이드
  • [가상화] DB에서 Cinder 볼륨 강제 삭제 및 사용량 초기화방법
  • [가상화] Ubuntu ISO & qcow2 이미지 다운로드 방법
깐돌씨
깐돌씨
하루하루를 기록하는 공간. 일상에서 얻은 영감, 좋아하는 취미, 그리고 클라우드 업무 팁까지 함께 나눕니다.
  • 깐돌씨
    조용한 깐돌이네
    깐돌씨
  • 전체
    오늘
    어제
    • 분류 전체보기 (69) N
      • 깐돌일기 (2) N
      • 취미탐험대 (13) N
      • 깐돌의 클라우드 도구함 (54) N
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    private registry
    수락산 자연휴양림 예약
    서버 관리
    리눅스 가상화
    노원 자연휴양림
    kickstart
    RHEL8
    리눅스
    Docker
    rhocp
    오픈소스
    리눅스 서버
    rhel
    컨테이너
    KVM
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
깐돌씨
[자동화] Ansible을 활용하여 인스턴스 VM 생성방법
상단으로

티스토리툴바