OpenStack Train版-1.安装基础环境&服务

\1. 服务组件的密码

密码名称 描述
ADMIN_PASS admin用户密码
CINDER_DBPASS 块设备存储服务的数据库密码
CINDER_PASS 块设备存储服务的 cinder 密码
DASH_DBPASS 仪表板的数据库密码
DEMO_PASS demo用户的密码
MYUSER_PASSWORD myuser用户的密码
GLANCE_DBPASS 镜像服务的数据库密码
GLANCE_PASS 镜像服务的 glance 用户密码
KEYSTONE_DBPASS 认证服务的数据库密码
METADATA_SECRET 元数据代理的密码
NEUTRON_DBPASS 网络服务的数据库密码
NEUTRON_PASS 网络服务的 neutron 用户密码
NOVA_DBPASS 计算服务的数据库密码
NOVA_PASS 计算服务的 nova 用户的密码
PLACEMENT_PASS 展示位置服务placement用户的密码
RABBIT_PASS RabbitMQ服务的openstack用户的密码

\2. Openstack环境准备

每台服务器关闭防火墙和selinux

systemctl stop firewalld

vim /etc/selinux/config
SELINUX=disabled

setenforce 0

服务器环境准备

准备两台优化好的服务器用来部署环境,一台控制节点 一台计算节点

生产环境中建议按下面的推荐,将服务分布式部署到单独的服务器上

CPU 支持 intel64 或 AMD64 CPU扩展,并启用AMD-H或intel VT硬件虚拟化支持的64位x86处理器
系统版本 CentOS7.6 版本
内存最低要求 根据实际测试环境选择 >=4G
硬盘 根据实际测试环境选择 >=50G
防火墙 关闭
SELINUX 关闭
YUM源 阿里云的Yum源

虚拟机IP分配情况

主机 IP地址 主机名 注意事项
控制节点 eth0:192.168.0.10/24 ;eth1: 10.0.1.10/24 controller 至少4G,要开虚拟化
计算节点 eth0:192.168.0.20/24 ;eth1: 10.0.1.20/24 computel01 至少4G,要开虚拟化
网络节点 eth0:192.168.0.30/24 ;eth1: 10.0.1.30/24 neutron01 至少4G,要开虚拟化
存储节点 eth0:192.168.0.40/24 ;eth1: 10.0.1.40/24 cinder01 至少4G,要开虚拟化

eth0网卡为NAT模式,eth1网卡为仅主机模式

img

将仅虚拟机的VMnet1仅主机网络设置为可以共享当前主机的外网网卡

img

设置仅主机模式的网段为10.0.1.0/24

img
修改VMware的虚拟网络编辑器,这里的仅主机网络IP为手动设置,也可以打开DHCP,在eth1网卡配置文件中则不需要配置IP

img

\3. 控制节点基础配置
为其他节点批量下发秘钥

yum install sshpass -y

#测试环境下每台服务器的root密码设置相同了,生产中可写多条sshpass下发秘钥命令
[root@controller ~]# cat >>/server/scripts/fenfa_pub.sh<< EOF
#!/bin/bash
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
for ip in 20 30 40
do
sshpass -p123456 ssh-copy-id -o StrictHostKeyChecking=no 172.16.0.$ip
done
EOF
---------
sh /server/scripts/fenfa_pub.sh

配置hosts

[root@controller ~]# cat >>/etc/hosts <<EOF
192.168.0.10 controller 
192.168.0.20 computel01
192.168.0.30 neutron01
192.168.0.40 cinder01
EOF

批量分发hosts文件

for ip in 20 30 40 ;do scp -rp /etc/hosts root@172.16.0.$ip:/etc/hosts ;done

ntp时间同步

#controller节点
yum install chrony -y
vim /etc/chrony.conf 
server ntp1.aliyun.com iburst
allow 192.168.0.10/24

systemctl restart chronyd.service 
systemctl enable chronyd.service 
chronyc sources

#其他节点上配置
yum install chrony -y
vim /etc/chrony.conf 
server controller iburst

systemctl restart chronyd.service 
systemctl enable chronyd.service 
chronyc sources

安装train版yum源

yum install centos-release-openstack-train -y

安装客户端

yum install python-openstackclient -y

安装数据库

#也可以自定义配置其他版本的数据库,例如mysql
yum install mariadb mariadb-server python2-PyMySQL -y

openstack控制节点重启连接后可能会报一堆错误,下载此应用可以解决此问题

yum install libibverbs -y
cat > /etc/my.cnf.d/openstack.cnf << EOF
[mysqld]
bind-address = 192.168.0.10
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
EOF

systemctl enable mariadb.service
systemctl start mariadb.service
#mysql初始化
mysql_secure_installation

安装消息队列服务

yum install rabbitmq-server -y
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
rabbitmq-plugins enable rabbitmq_management

rabbitmqctl add_user openstack RABBIT_PASS
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

安装Memcached

yum install memcached python-memcached -y
sed -i '/OPTIONS/c\OPTIONS="-l 0.0.0.0,::1"' /etc/sysconfig/memcached
systemctl restart memcached.service
systemctl enable memcached.service

安装 etcd

#IP地址为控制节点192.168.0.10

yum install etcd -y
cp -a /etc/etcd/etcd.conf{,.bak}
cat > /etc/etcd/etcd.conf <<EOF 
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.0.10:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.0.10:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.0.10:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.0.10:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.0.10:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
EOF

systemctl restart etcd.service
systemctl enable etcd.service
posted @   wanghongwei-dev  阅读(1128)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示