yoga
基于国产系统搭建openstack yoga版本,本实验采用脚本搭建,如需手工搭建参考官网
环境准备:双节点虚拟机、每台虚拟机双网卡、计算节点虚拟机额外准备一个磁盘
配置yum源
bash
[root@controller ~]# ls
openstack-yago.iso openEuler-22.09-x86_64-dvd.iso
- 挂载软件包
bash
mount openstack-yago.iso /mnt/
bash
cp -rf /mnt/* /opt/
umount /mnt/
mkdir /opt/openeuler
bash
mount openEuler-22.09-x86_64-dvd.iso /mnt/
cp -rf /mnt/* /opt/openeuler/
- 配置yum文件
bash
mv /etc/yum.repos.d/* /media/
bash
vi /etc/yum.repos.d/local.repo
bash
[openeuler]
name=openeuler
baseurl=file:///opt/openeuler
gpgcheck=0
enabled=1
[yoga]
name=yoga
baseurl=file:///opt/yoga-repo/
gpgcheck=0
enabled=1
将文件传输给计算节点
bash
[root@controller ~]# scp -r /opt/* root@compute:/opt
- 配置计算节点yum源
bash
[root@compute ~]# mv /etc/yum.repos.d/* /media/
bash
[root@compute ~]# scp root@10.28.2.176:/etc/yum.repos.d/* /etc/yum.repos.d/
- 配置磁盘分区,以下操作执行四次,注意第四次要指定主分区,最后w退出
bash
[root@compute ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xa4bcd2c4.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-209715199, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-209715199, default 209715199): +10G
Created a new partition 1 of type 'Linux' and of size 10 GiB.
bash
[root@compute ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 253:0 0 50G 0 disk
├─vda1 253:1 0 2G 0 part /boot
└─vda2 253:2 0 48G 0 part /
vdb 253:16 0 100G 0 disk
├─vdb1 253:17 0 10G 0 part
├─vdb2 253:18 0 10G 0 part
├─vdb3 253:19 0 10G 0 part
└─vdb4 253:20 0 10G 0 part
vdc 253:32 0 1M 0 disk
安装iaas软件包
- 双节点同时安装
bash
yum install -y iaas-yoga
- 配置环境环境,控制节点执行
bash
sed -i -e 's/^#//'g /etc/1cloud/openrc.sh
bash
sed -i -e 's/PASS=""/PASS="000000"/'g /etc/1cloud/openrc.sh
bash
cat /etc/1cloud/openrc.sh
bash
CONTROLLER_HOST="192.168.10.10" # 控制节点IP
CONTROLLER_NAME="controller"
CONTROLLER_PASS="000000"
#
#=============================[ Compute node options ]================================#
#Set the ip address, hostname, and password for the compute node
#
COMPUTE_HOST="192.168.10.11" # 计算节点IP
COMPUTE_NAME="compute"
COMPUTE_PASS="000000"
#
#=============================[ Storage node options ]================================#
#Set the ip address, hostname, and password for the storage node
#
STORAGE_HOST="192.168.10.11" # 存储节点,默认用计算节点IP
STORAGE_NAME="compute"
STORAGE_PASS="000000"
#
#=============================[ Networking options ]==================================#
#
#Set the control network segment and mask. Example: "172.16.11.0/16"
Network_segment_mask="192.168.10.0/24"
#If VMware is used, it is generally NAT or bridge network card. Example: "eth1"
INTERFACE_NAME="ens34"
#Set the name to be used when creating an external Flat network. Example: "provider"
Physical_interface="provider"
#
#=====================================================================================#
# OpenStack Host & Base options #
#=====================================================================================#
# END
# BEGIN
#=====================================================================================#
# OpenStack Service options #
#=====================================================================================#
#Set the passwords for various OpenStack services. Example: "000000"
#
MARIADB_PASS="000000"
RABBIT_PASS="000000"
ADMIN_PASS="000000"
KEYSTONE_DBPASS="000000"
GLANCE_PASS="000000"
GLANCE_DBPASS="000000"
NOVA_DBPASS="000000"
NOVA_PASS="000000"
PLACEMENT_PASS="000000"
PLACEMENT_DBPASS="000000"
NEUTRON_PASS="000000"
NEUTRON_DBPASS="000000"
METADATA_SECRET="yoga"
PROMETHEUS_VERSION="2.43.0"
PROMETHEUS_PORT="9091"
NODE_EXPORTER_VERSION="1.5.0"
MEMCACHED_EXPORTER_VERSION="0.11.2"
OPENSTACK_EXPORTER_VERSION="1.6.0"
SKYLINE_DBPASS="000000"
SKYLINE_SERVICE_PASS="000000"
CINDER_DBPASS="000000"
CINDER_PASS="000000"
#Cinder disk configuration. Example: "nvmeOn2"
CINDER_DISK="vdb1"
CINDER_VG="cinder-volumes"
SWIFT_PASS="000000"
#Swift disk configuration. Example: "nvmeOn3"
SWIFT_DISK="vdb2"
HEAT_DBPASS="000000"
HEAT_PASS="000000"
HEAT_DOMAIN_PASS="000000"
TROVE_DBPASS="000000"
TROVR_PASS="000000"
AODH_DBPASS="000000"
AODH_PASS="000000"
OCTAVIA_PASS="000000"
OCTAVIA_DBPASS="000000"
REDIS_PASS="000000"
GNOCCHI_DBPASS="000000"
GNOCCHI_PASS="000000"
CEILOMETER_PASS="000000"
RALLY_DBPASS="000000"
RALLY_PASS="000000"
CYBORG_DBPASS="000000"
CYBORG_PASS="000000"
- 复制给计算节点
bash
scp /etc/1cloud/openrc.sh compute:/etc/1cloud/
执行初始化脚本
- 双节点执行
bash
iaas-install-pre-cloud.sh
- 两台节点刷新环境,同时执行ssh连接
bash
[root@controller ~]# ssh controller
bash
[root@compute ~]# ssh compute
基础中间件服务安装
- 控制节点执行
bash
iaas-install-mariadb.sh
- 验证服务
bash
[root@controller ~]# systemctl status mariadb
● mariadb.service - MariaDB 10.5.15 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2026-01-15 16:14:58 CST; 1min 5s ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 5148 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 9 (limit: 74748)
Memory: 82.1M
CGroup: /system.slice/mariadb.service
└─5148 /usr/libexec/mariadbd --basedir=/var/lib/mysql/
bash
[root@controller ~]# rabbitmqctl list_users
Listing users ...
usertags
openstack[administrator]
guest[administrator]
bash
[root@controller ~]# systemctl status memcached
● memcached.service - memcached daemon
Loaded: loaded (/usr/lib/systemd/system/memcached.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2026-01-15 16:15:22 CST; 1min 29s ago
Main PID: 6955 (memcached)
Tasks: 10 (limit: 74748)
keystone服务安装
- 控制节点执行
bash
iaas-install-keystone.sh
bash
[root@controller ~]# openstack user list
+----------------------------------+-------+
| ID | Name |
+----------------------------------+-------+
| 21bcdd7964a2485e816a57ca1f7e6ffe | admin |
+----------------------------------+-------+
- 手动配置环境变量
bash
cat > /root/admin-openrc << EOF
export OS_USERNAME=admin
export OS_PASSWORD=000000
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_REGION_NAME=RegionOne
EOF
bash
source admin-openrc
glance服务安装
- 控制节点执行
bash
iaas-install-glance.sh
nova服务安装
- 双节点节点执行(必须控制节点跑完后才能执行另一个节点!!)
bash
iaas-install-nova-controller.sh
bash
iaas-install-nova-compute.sh
neutron服务安装
- 双节点节点执行(必须控制节点跑完后才能执行另一个节点!!)
bash
iaas-install-neutron-controller-openvswitch.sh
bash
iaas-install-neutron-compute-openvswitch.sh
horizon服务安装
- 控制节点执行
bash
iaas-install-horizon.sh
cinder服务安装
- 双节点节点执行(必须控制节点跑完后才能执行另一个节点!!)
bash
iaas-install-cinder-controller.sh
bash
iaas-install-cinder-storage.sh
swift服务安装
- 双节点节点执行(必须控制节点跑完后才能执行另一个节点!!)
bash
iaas-install-swift-controller.sh
bash
iaas-install-swift-storage.sh