# Oracle VM에서 Vargrant OS를 다운받아서 devstack으로 All-In-One Single Machine로 OpenStack을 설치해 본다.
- CentOS7, CentOS8 설치 실패(2023. 11월)
- Rocky9 설치 실패 (2023.12월)
- Ubuntu 20.04(jemmy) 설치실패(2023.12월)
-Ubuntu 20.04(jemmy) OpenStack All-In-On 설치성공(2024.1.1)
# 처음부터 차근차근 다시
# 준비물
- PC에 Oracle VM 설치 https://www.virtualbox.org/ VirtualBox-7.0.4-154605-Win.exe
- PC에 Vagrant 파일 설치 https://www.vagrantup.com/ vagrant_2.3.4_windows_i686.msi
# Openstack 설치 참고 사이트 -1
https://docs.openstack.org/devstack/latest/
# Openstack 설치 참고 사이트 -2 (All-In-One Single Machine)
https://docs.openstack.org/devstack/latest/guides/single-machine.html
# VARGRANT 파일
# Vargrant 설치후 C:\HashiCorp\Vagrantfile 생성 및 수정
Vagrant.configure("2") do |config| config.vm.box = "alvistack/ubuntu-22.04" end
# Vargrantfile 에 config.vm.box ="OOO" 의 내용은 https://app.vagrantup.com 사이트에 접속하여
설치하고 싶은 OS를 찾으면 됨
- 저는 오픈스택 홈페이지에서 권장하는 Ubuntu 22.04(jammy) version의 ubuntu OS 이미지를 다운로드함
# alvistack/ubuntu-22.04 이미지를 선택하면
- Vargrantfiel을 아래와 같이 설정하라고 나옴
# 파일수정후 Vargrant UP 실행 (Wiindows CMD.exe 모드에서 실행)
C:\HashiCorp\Vagrant UP
# Oracle VM을 실행하면 VitualBOX에 다음과 같이 VM이 생김
- 설치가 끝나면 아래와 같이 vm이 생성됨 ... HashCorp_defaul......
# 해당 이미지를 중단시키고 해당정보를 수정함 -- 설정에서 수행
- 일반 - 기본 - 이름(N) : alvistack-ubuntu-22.04
(본인이 알기 쉬운 이름으로 수정하면 됨,, 시스템에 영향 없음)
# 시스템 - 마더보드 - 기본 메모리 : 4096MB 로 수정 (또는 이하로 수정)
(본인의 PC 사양에 맞게 메모리 수정 : default는 8012MB로 되어 있음)
# 네트워크 아댑터를 수정함
- 어뎁터 모드의 브리지 모드, NAT 모드 차이점, VM DHCP 설정은 해당 게시물 참조 ㅇ
o 어뎁터 1 : 어댑터에 브리지 (무작위 모드 : 모두 허용)
o 어뎁터 2 : 호스트전용어댑터 (무작위 모드 : 모두 허용)
# VARGRANT 파일 확장 사용 (예시)
# Vargrant 파일로 Oracle VM 환경설정을 할수 있으나 저는 귀찮아서 그냥 VM 만들어 놓고 수동으로 수정함
# Vargant 파일 확장 사용 예시
(기존) Vagrant.configure("2") do |config| config.vm.box = "alvistack/ubuntu-22.04" end (응용) # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.define "OPENSTACK" do |cfg| cfg.vm.box = "alvistack/ubuntu-22.04" cfg.vm.provider "virtualbox" do |vb| vb.name = "alvistack-ubuntu-22.04" vb.cpus = 2 vb.memory = 4096 end cfg.vm.host_name = "openstack_svr" cfg.vm.network "private_network", ip: "192.168.56.30" cfg.vm.network "forwarded_port", guest: 22, host: 60010, auto_correct: true, id: "ssh" cfg.vm.provision "shell", inline: "sudo apt install git -y" cfg.vm.provision "shell", inline: "sudo apt install network-manager -y" cfg.vm.provision "shell", inline: "sudo apt install net-tools -y" cfg.vm.provision "shell", inline: "sudo systemctl disable ufw" cfg.vm.provision "shell", inline: "ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime" end end
* 먹힐때도 있고 안먹힐때도 있음
# 생성된 Oracle VM 접속 방법 및 시스템 기본 설정
# 해당 오라클 VM 을 실행하면 다음과 같은 기본 창이 뜨고 여기서 접속
- login 시 root / vagrant 로 접속 (vargrant 이미지 파일의 기본 패스워드는 vagrant 임)
- 일부 root로 로그인이 안될 경우 vargrant/vagrant 로 접속한후
$ sudo passwd root 명령어를 입력하여 root 패스워드를 변경함
# root로 로그인하여 몇가지 수정을 해야 됨
1. 네트워크 IP 설정
2. SSH 접속 (향후 putty.exe로 접속을 위한 sshd_conf 파일 수정
3. 날짜 수정 (시간 설정)
4. apt 업데이트
5. 방화벽 disable (설치를 위해서 일단은 중단)
1. 네트워크 설정
# vi /etc/netplan/00-installer-copnfig.yaml (파일 수정후) # netplan apply # 아래 2개 명령어 실행이 안되면 다음으로 넘어감 (설치되어 있을수도 있음) # vi /etc/netplan/00-installer-copnfig.yaml (파일 수정후) # netplan apply
- eth0 : DHCP 집(카페 등) 공유기 IP 대역 (192.168.219.16은 공유기에서 자동으로 받아옴)
- eth1 : Oracle VM에 설치된 서버의 IP (192.168.56.30은 netplan 파일 수정)
2. SSH 접속 (향후 putty.exe로 접속을 위한 sshd_conf 파일 수정)
# /etc/ssh/sshd_config 파일에 다음 항목을 수정
PermitRootLogin yes로 변경 PasswordAuthentication yes로 변경
# systemctl restart ssh 실행
이제부터 putty로 접속가능
3. 날짜 수정 (시간 설정)
- 시스템 시간을 서울 시간대로 바꿈
# ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime # sudo timedatectl set-timezone Asia/Seoul
4. apt 업데이트# sudo apt update # sudo apt upgrade -y # sudo apt-get update # sudo apt-get upgrade -y
5. 방화벽 disable (설치를 위해서 일단은 중단 / 향후 운영할때는 올바른 방법은 아닌것 같음)# systemctl status ufw # systemctl stop ufw # systemctl disable ufw
# openstack devstack으로 설치 준비
# devstack 설치를 위한 stack 계정 생성
# sudo useradd -s /bin/bash -d /opt/stack -m stack
# sudo chmod +x /opt/stack
# echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
# sudo -u stack -i
# git 파일을 설치합니다 (대부분 설치되어 있어서 이 과정은 빠져도 됨)
# sudo apt install git -y
# stack 계정으로 변경후 git으로 devstack을 설치합니다..
# su - stack
$ pwd
/opt/stack/
$ git clone https://opendev.org/openstack/devstack
$ cd /opt/stack/devstack/
$ git checkout stable/2023.2
$ git checkout stable/ version 은 https://opendev.org/openstack/devstack/branches 에서 확인가능
(중요) git clone 으로 그냥 받게 되면 devstack 이 불완전하다고 하여 2023.1 버전 공식 릴리스로 사용
- git checkout stable/2023.1
(도움을 주신분 오픈스텍 코리아 조성수 님(NHN 근무)
# local.conf 수정 (All-In-One Single Machine)
- openstack 서버 ip : 192.168.56.30 (eth1)
- openstack gw : 192.168.56.1
$ cp /opt/stack/devstack/samples/local.conf /opt/stack/devstack
$ vi /opt/stack/devstack/local.conf
- local.conf 파일에 아래 내용을 복사해서 저장
[[local|localrc]]
# eth0 : 192.168.1.0/24 (공유기 Public IP)
# eth1 : 192.168.56.30/24 (openstack 서버 IP)
# ===== BEGIN localrc =====
HOST_IP=192.168.56.30
ADMIN_PASSWORD=openstack
DATABASE_PASSWORD=openstack
RABBIT_PASSWORD=openstack
SERVICE_PASSWORD=openstack
SERVICE_TOKEN=openstack
#PUBLIC_INTERFACE=eth0
#FLOATING_RANGE=192.168.1.0/24
#PUBLIC_NETWORK_GATEWAY=192.168.1.1
#Q_FLOATING_ALLOCATION_POOL=start=192.168.0.100,end=192.168.0.200
#FIXED_RANGE=10.0.0.0/24
GIT_BASE=https://opendev.org
LOGFILE=$DEST/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=True
#LOGDAYS=2
SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
SWIFT_REPLICAS=1
SWIFT_DATA_DIR=$DEST/data
#enable_service rabbit
#enable_plugin neutron $GIT_BASE/openstack/neutron
#enable_service q-qos
#enable_service placement-api placement-client
#enable_plugin octavia $GIT_BASE/openstack/octavia master
#enable_plugin octavia-dashboard $GIT_BASE/openstack/octavia-dashboard
#enable_plugin ovn-octavia-provider $GIT_BASE/openstack/ovn-octavia-provider
#enable_plugin octavia-tempest-plugin $GIT_BASE/openstack/octavia-tempest-plugin
#enable_service octavia o-api o-cw o-hm o-hk o-da
#disable_service c-api c-vol c-sch
#enable_service tempest
# ===== END localrc =====
(참조) 설치시 에러
# 설치할때 아래 부분에서 에러가 많이 남,, 일단 주석처리 해놓고 관리자 모드(대쉬보드)에서수정해도 됨
#PUBLIC_INTERFACE=eth0
#FLOATING_RANGE=192.168.1.0/24
#PUBLIC_NETWORK_GATEWAY=192.168.1.1
#Q_FLOATING_ALLOCATION_POOL=start=192.168.0.100,end=192.168.0.200
#FIXED_RANGE=10.0.0.0/24
(참조) All-In-One Single Machine 설치시 참조사이트
https://docs.openstack.org/devstack/latest/guides/single-machine.html
DevStack 실행
이제 구성합니다 stack.sh. DevStack에는 devstack/samples/local.conf. local.conf다음을 수행하려면 아래와 같이 생성하세요 .
- FLOATING_RANGE로컬 네트워크에서 사용되지 않는 범위(예: 192.168.1.224/27)로 설정하세요 . 225~254로 끝나는 IP 주소를 유동 IP로 사용할 수 있도록 구성합니다.
- FIXED_RANGE인스턴스가 사용하는 내부 주소 공간을 구성하려면 설정합니다 .
- 관리 비밀번호를 설정합니다. 이 비밀번호는 OpenStack 사용자로 설정된 관리자 및 데모 계정 에 사용됩니다 .
- MySQL 관리 비밀번호를 설정합니다. 여기서 기본값은 임의의 16진수 문자열로, 데이터베이스에서 무엇이든 직접 확인해야 하는 경우 불편합니다.
- RabbitMQ 비밀번호를 설정합니다.
- 서비스 비밀번호를 설정하세요. 이는 OpenStack 서비스(Nova, Glance 등)에서 Keystone을 인증하는 데 사용됩니다.
# stack.sh 실행
$ /opt/stack/devstack/./stack.sh
# stack 실행 오류 무시하고 설치
$ /opt/stack/devstack/FORCE=yes ./stack.sh
# stack 실행오류 시 재설치
$ /opt/stack/devstack/./unstack
$ /opt/stack/devstack/./clean.sh
# 설치완료
# 설치 완료 로그
================= Async summary ================= Time spent in the background minus waits: 547 sec Elapsed time: 2092 sec Time if we did everything serially: 2639 sec Speedup: 1.26147 Post-stack database query stats: +------------+-----------+-------+ | db | op | count | +------------+-----------+-------+ | keystone | SELECT | 46213 | | keystone | INSERT | 93 | | neutron | SELECT | 3917 | | neutron | CREATE | 1 | | neutron | SHOW | 4 | | neutron | INSERT | 4111 | | neutron | DELETE | 28 | | neutron | UPDATE | 116 | | placement | SELECT | 46 | | placement | INSERT | 55 | | placement | SET | 1 | | nova_api | SELECT | 114 | | nova_cell0 | SELECT | 75 | | nova_cell1 | SELECT | 178 | | nova_cell0 | INSERT | 5 | | nova_cell0 | UPDATE | 6 | | nova_cell1 | UPDATE | 42 | | nova_cell1 | INSERT | 4 | | cinder | SELECT | 121 | | cinder | INSERT | 5 | | placement | UPDATE | 3 | | cinder | UPDATE | 3 | | nova_api | INSERT | 20 | | glance | SELECT | 47 | | glance | INSERT | 6 | | glance | UPDATE | 2 | | cinder | DELETE | 1 | | nova_api | SAVEPOINT | 10 | | nova_api | RELEASE | 10 | +------------+-----------+-------+ This is your host IP address: 192.168.56.30 This is your host IPv6 address: ::1 Horizon is now available at http://192.168.56.30/dashboard Keystone is serving at http://192.168.56.35/identity/ The default users are: admin and demo The password: openstack Services are running under systemd unit files. For more information see: https://docs.openstack.org/devstack/latest/systemd.html DevStack Version: 2023.2 Change: b082d3fed3fe05228dabaab31bff592dbbaccbd9 Make multiple attempts to download image 2023-12-12 08:07:39 +0000 OS Version: Ubuntu 22.04 jammy
# 설치과정 로그파일 첨부
- 설치시 여러번 설치 실패로 192.168.56.30, 192.168.56.35, 192.168.56.36 192.168.56.41 등
한 20번은 IP를 바꿔가며 설치 한것 같네요,,,
그러다 보니 서버 IP 및 로그 IP가 제 각각 입니다. (본인 IP 설정에 맞게 비교해 보시면 됩니다.)
# 192.168.56.30 번 서버 설치 성공로그
192.168.56.41번으로 설정하여 설치완료된 로그
# 오픈스텍 접속 및 로그인
# 고대하고 고대하던 오픈스택 로그인 화면이 떴다
http://192.168.56.30 접속하면
http://192.168.56.30/dashboard/auth/login/?next=/dashboard/ 로 포워딩 됨
# 사용자 이름 : admin
# 암호는 : openstack /opt/stack/devstack/local.conf에 설정한 패스워드
# 오픈스택 코리아 조성수 님이 도움 주신내용
https://www.facebook.com/groups/openstack.kr?locale=ko_KR
# Openstack git hub 사이트
https://opendev.org/openstack/devstack
'서버가상화 > openstack' 카테고리의 다른 글
openstack RabbitMQ 설치(메시지 Queus) (0) | 2024.01.06 |
---|---|
openstak 오류(Missing value auth-url required for auth plugin password) (0) | 2024.01.06 |
04 openstack 인스턴스 생성 (0) | 2024.01.02 |
openstack mysql 설치정보 (0) | 2024.01.02 |
02 openstack 설치정보 (0) | 2023.12.30 |