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

2025. 4. 3. 22:53·깐돌의 클라우드 도구함
목차
  1. 📑 목차
  2. 1. 환경 설정 준비
  3. 1.1 Ansible Collection 설치
  4. 1.2 Python3 및 PIP3 설치 확인 및 설치
  5. 1.3 OpenStack SDK 설치
  6. 2. OpenStack Cluster 정보 확인 및 연동
  7. 2.1 Python을 이용한 정보 확인
  8. 3. clouds.yaml 파일 설정
  9. 4. Ansible 플레이북 작성
  10. 5. Ansible 플레이북 실행 및 인스턴스 생성 확인
  11. 6. Floating IP 자동 할당 문제
  12. 7. 참고 사항
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
  1. 📑 목차
  2. 1. 환경 설정 준비
  3. 1.1 Ansible Collection 설치
  4. 1.2 Python3 및 PIP3 설치 확인 및 설치
  5. 1.3 OpenStack SDK 설치
  6. 2. OpenStack Cluster 정보 확인 및 연동
  7. 2.1 Python을 이용한 정보 확인
  8. 3. clouds.yaml 파일 설정
  9. 4. Ansible 플레이북 작성
  10. 5. Ansible 플레이북 실행 및 인스턴스 생성 확인
  11. 6. Floating IP 자동 할당 문제
  12. 7. 참고 사항
'깐돌의 클라우드 도구함' 카테고리의 다른 글
  • [가상화] KVM to KVM VM Live Migration 방법
  • [컨테이너] Podman 설치 및 사용 가이드
  • [가상화] DB에서 Cinder 볼륨 강제 삭제 및 사용량 초기화방법
  • [가상화] Ubuntu ISO & qcow2 이미지 다운로드 방법
깐돌IT
깐돌IT
클라우드 업무 팁
  • 깐돌IT
    조용한 깐돌의 IT창고
    깐돌IT
  • 전체
    오늘
    어제
    • 분류 전체보기 (56)
      • 깐돌의 클라우드 도구함 (56)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    리눅스
    공모주청약
    Docker
    신규상장주
    IPMI
    private registry
    RHEL8
    에스엔시스
    리눅스 가상화
    rhocp
    KVM
    공모주분석
    시스템 모니터링
    리눅스 서버
    rhel
  • 최근 댓글

  • 최근 글

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

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.