728x90
반응형
OpenStack 인스턴스 자동 생성 메뉴얼 (Ansible 사용)
📑 목차
- 1. 환경 설정 준비
- 2. OpenStack Cluster 정보 확인 및 연동
- 3. clouds.yaml 파일 설정
- 4. Ansible 플레이북 작성
- 5. Ansible 플레이북 실행 및 인스턴스 생성 확인
- 6. Floating IP 자동 할당 문제
- 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
반응형