2019 졸업작품

OpenStack CLI 사용법

작성자
admin
작성일
2019-02-09 15:02
조회
146
[주의사항]
* 본 명령어는 개인마다 들어가는 변수가 다를 수 있으므로, 반드시 본인의 환경에 맞게 수정해서 사용.
* 예를 들어 IP나 사용자 이름은 반드시 본인의 것으로 사용할 것.
* 대괄호 내에 있지 않은 변수도 자신의 환경에 맞게 수정하여 사용할 것.
* 단순히 복사, 붙여넣기만 하시면 안됩니다.

1. openstack cli(command line interface)
1.1 cli를 사용하기 위해 환경 변수 적용
각 개인 계정으로 테스트 서버에 접속
a) 테스트용 vpn에 접속
b) ssh [user]@192.168.11.254

> 위의 명령어는 예시입니다.
> 접속하셔야 하는 대상은 여러분께서 만드신 devstack입니다. (devstack-aio)

source /opt/stack/devstack/openrc [USER] [PROJECT NAME] [PASS]
ex) source /opt/stack/devstack/openrc grad0 grad0 grad123!


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/rocky/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

- image upload
openstack image create --protected \
--file xenial-server-cloudimg-amd64-disk1.img --disk-format qcow2 \
--container-format bare --project grad0 \
--public xenial-server


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 grad0-key | tee grad0-key.pem

- VM 접근을 위한 id/pass 파일 생성
> 첨부파일을 참고하여서 passwd.sh 파일 생성.
vi passwd.sh
passwd.sh 파일 내에서 첨부파일에 있는 내용 붙여넣기 (띄어쓰기 유지하기)

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 \
--nic net-id=$(openstack network list | awk '/ test_net / {print $2}'),v4-fixed-ip=11.11.11.100 \
--network test_net \
--key-name grad0-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] grad0-sub
openstack router delete [ROUTER_NAME]

## create router
openstack router create grad0-router
openstack router set --external-gateway public grad0-router
openstack router add subnet grad0-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 grad0-key.pem ubuntu@192.168.11.19
openstack console url show --novnc test_vm