2018 졸작 게시판

OpenStack CLI 명령어 (VM 생성을 위한 cli)

작성자
admin
작성일
2018-01-17 20:49
조회
749
1. openstack cli(command line interface)
1.1 cli를 사용하기 위해 환경 변수 적용
각 개인 계정으로 테스트 서버에 접속
a) 테스트용 vpn에 접속
b) ssh [user]@192.168.11.254

source /opt/stack/devstack/openrc [USER] [PROJECT NAME] [PASS]
ex) source /opt/stack/devstack/openrc ykpark ykpark ykpark123!


1.2 openstack cli는 Core 프로젝트 및 Optional 프로젝트의 클라이언트를 이용해서 사용됨.
- newton 버전부터 "openstack" 클라이언트로 통합 되고 있음.
- 추후 프로젝트의 클라이언트에서 지원 안되는 문제가 발생 할 수 있음.
- cli 용 클라이언트 종류
nova, neutron, cinder, glance, alarm, tacker, mistral 등 거의 모든 프로젝트에서 클라이언트 툴을 지원하고 있음.
프로젝트별 자체 클라이언트가 있지만 기능들이 openstack 로 통합 진행 되고 있음
- 위치 : /usr/bin/ or /usr/local/bin


1.3 openstack 클라이언트 사용
1.3.1 명령어 종류 보기
## ref : https://docs.openstack.org/python-openstackclient/pike/cli/command-list.html
openstack command list [--group ]
ex) openstack command list --group compute
openstack command list --group network


1.3.2 VM 생성을 위한 openstack cli 사용하기
1.3.2.1 Image upload (https://docs.openstack.org/image-guide/obtain-images.html)
- cloud image download url
# https://docs.openstack.org/image-guide/obtain-images.html
- ubuntu image download
wget –c http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img
- kvm-qemu용 이미지로 변환 (QEMU Copy On Write - qcow)
qemu-img convert -c -O qcow2 xenial-server-cloudimg-amd64-disk1.img xenial-server-key.qcow2

- 이미지 변환 작업
lsmod | grep nbd || modprobe nbd
qemu-nbd -c /dev/nbd0 xenial-server-key.qcow2
partprobe /dev/nbd0
ls image || mkdir image
mount /dev/nbd0p1 image
cd image && ls

- image upload
openstack image create --protected \
--file xenial-server-key.qcow2 --disk-format qcow2 \
--container-format bare --project ykpark \
--public xenial-server-key


1.3.2.2 network 생성
openstack network list
openstack network create test_net
openstack subnet create --network test_net \
--dhcp --subnet-range 11.11.11.0/24 \
--dns-nameserver 8.8.8.8 \
test_sub

openstack network list


1.3.2.3 keypair 생성
openstack keypair list
openstack keypair create ykpark-key | tee ykpark-key.pem

- VM 접근을 위한 id/pass 파일 생성
cat passwd.sh
#cloud-config
chpasswd:
list: |
root:root
ubuntu:ubuntu
expire: False
ssh_pwauth: True
EOF


1.3.2.4 VM 생성
openstack server list
openstack image list
openstack server delete test_vm
openstack server create --flavor m1.small \
--image xenial-server-key \
--nic net-id=$(openstack network list | awk '/ test_net / {print $2}'),v4-fixed-ip=11.11.11.100 \
--network test_net \
--key-name ykpark-key \
--user-data passwd.sh \
test_vm

openstack server list


1.3.2.5 VM의 외부네트워크 연결을 위한 라우터 생성
openstack router list
openstack router show [ID]
openstack subnet show [SUBNET_ID]
openstack router remove subnet [ROUTER_NAME] ykpark-sub
openstack router delete [ROUTER_NAME]

## create router for vepc
openstack router create ykpark-router
openstack router set --external-gateway public ykpark-router
openstack router add subnet ykpark-router test_sub


1.3.2.6 VM 접속
- VM용 floating ip 생성
openstack floating ip list
openstack floating ip create public

- VM에 할당
openstack server list
openstack server add floating ip --fixed-ip-address 11.11.11.100 test_vm 192.168.11.19

- VM에 접속
ssh -i ykpark-key.pem ubuntu@192.168.11.19
openstack console url show --novnc test_vm