当前位置: 首页 > news >正文

OpenStack Train版三节点部署全攻略:从CentOS 7.6配置到Dashboard上线

OpenStack Train版三节点部署实战:从CentOS 7.6到Dashboard的完整指南

当企业需要构建私有云平台时,OpenStack作为最成熟的开源IaaS解决方案之一,其灵活性和可扩展性备受青睐。本文将带您完成一个生产级的三节点OpenStack Train版部署,涵盖从操作系统配置到Dashboard上线的全流程。不同于理论架构讲解,我们聚焦于实际部署中遇到的网络配置、服务依赖和组件联调等核心问题。

1. 环境准备与系统配置

1.1 硬件规划与网络拓扑

三节点部署通常包含一个控制节点和两个计算节点,以下是推荐的最低硬件配置:

节点类型CPU内存存储网卡配置
控制节点2核4线程8GB300GB双网卡(NAT+内部网络)
计算节点4核8线程16GB500GB双网卡(NAT+内部网络)

提示:生产环境中建议计算节点配置更高规格,特别是需要支持硬件虚拟化加速的场景

网络配置示例(根据实际环境调整):

# 控制节点网络配置示例 TYPE="Ethernet" BOOTPROTO=static IPADDR=192.168.100.11 NETMASK=255.255.255.0 GATEWAY=192.168.100.1 DNS1=114.114.114.114

1.2 操作系统基础配置

所有节点执行以下初始化操作:

  1. 设置主机名并更新hosts文件:
hostnamectl set-hostname ct # 控制节点 echo "192.168.100.11 ct 192.168.100.12 c1 192.168.100.13 c2" >> /etc/hosts
  1. 关闭防火墙和SELinux:
systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  1. 配置SSH免密登录:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa ssh-copy-id ct ssh-copy-id c1 ssh-copy-id c2

2. 基础服务部署

2.1 时间同步配置

控制节点配置为阿里云时钟源,计算节点同步控制节点时间:

# 控制节点chrony配置 yum install -y chrony sed -i 's/^server.*/server ntp6.aliyun.com iburst/' /etc/chrony.conf echo "allow 192.168.100.0/24" >> /etc/chrony.conf systemctl restart chronyd

验证时间同步状态:

chronyc sources -v

2.2 数据库与消息队列

  1. 安装配置MariaDB:
yum install -y mariadb mariadb-server python2-PyMySQL cat > /etc/my.cnf.d/openstack.cnf <<EOF [mysqld] bind-address = 192.168.100.11 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 --now
  1. RabbitMQ安装与权限配置:
yum install -y rabbitmq-server systemctl enable rabbitmq-server --now rabbitmqctl add_user openstack RABBIT_PASS rabbitmqctl set_permissions openstack ".*" ".*" ".*"

2.3 缓存与协调服务

  1. Memcached安装:
yum install -y memcached python-memcached sed -i 's/OPTIONS=.*/OPTIONS="-l 127.0.0.1,::1,ct"/' /etc/sysconfig/memcached systemctl enable memcached --now
  1. Etcd集群配置:
yum install -y etcd cat > /etc/etcd/etcd.conf <<EOF ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_PEER_URLS="http://192.168.100.11:2380" ETCD_LISTEN_CLIENT_URLS="http://192.168.100.11:2379" ETCD_NAME="ct" ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.100.11:2380" ETCD_ADVERTISE_CLIENT_URLS="http://192.168.100.11:2379" ETCD_INITIAL_CLUSTER="ct=http://192.168.100.11:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01" ETCD_INITIAL_CLUSTER_STATE="new" EOF systemctl enable etcd --now

3. OpenStack核心组件部署

3.1 Keystone身份服务

  1. 创建数据库并安装组件:
mysql -uroot -p -e "CREATE DATABASE keystone" yum install -y openstack-keystone httpd mod_wsgi
  1. 配置keystone.conf:
[database] connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@ct/keystone [token] provider = fernet
  1. 初始化数据库并配置Apache:
su -s /bin/sh -c "keystone-manage db_sync" keystone keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone keystone-manage bootstrap --bootstrap-password ADMIN_PASS \ --bootstrap-admin-url http://ct:5000/v3/ \ --bootstrap-internal-url http://ct:5000/v3/ \ --bootstrap-public-url http://ct:5000/v3/ \ --bootstrap-region-id RegionOne

3.2 Glance镜像服务

  1. 数据库准备与软件安装:
mysql -uroot -p -e "CREATE DATABASE glance" yum install -y openstack-glance
  1. 配置glance-api.conf和glance-registry.conf:
[database] connection = mysql+pymysql://glance:GLANCE_DBPASS@ct/glance [keystone_authtoken] auth_url = http://ct:5000 memcached_servers = ct:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = glance password = GLANCE_PASS [paste_deploy] flavor = keystone
  1. 初始化数据库并下载测试镜像:
su -s /bin/sh -c "glance-manage db_sync" glance openstack image create "cirros" \ --file cirros-0.5.1-x86_64-disk.img \ --disk-format qcow2 --container-format bare \ --public

4. 计算与网络服务部署

4.1 Nova计算服务

控制节点安装:

yum install -y openstack-nova-api openstack-nova-conductor \ openstack-nova-console openstack-nova-novncproxy \ openstack-nova-scheduler

计算节点安装:

yum install -y openstack-nova-compute

关键配置项(nova.conf):

[api_database] connection = mysql+pymysql://nova:NOVA_DBPASS@ct/nova_api [database] connection = mysql+pymysql://nova:NOVA_DBPASS@ct/nova [vnc] enabled = true server_listen = 0.0.0.0 server_proxyclient_address = $my_ip novncproxy_base_url = http://ct:6080/vnc_auto.html

4.2 Neutron网络服务

  1. 控制节点安装:
yum install -y openstack-neutron openstack-neutron-ml2 \ openstack-neutron-linuxbridge ebtables
  1. 计算节点安装:
yum install -y openstack-neutron-linuxbridge ebtables ipset

网络配置示例(linuxbridge_agent.ini):

[linux_bridge] physical_interface_mappings = provider:eth1 [vxlan] enable_vxlan = false [securitygroup] enable_security_group = true firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

5. Dashboard部署与验证

5.1 Horizon安装配置

yum install -y openstack-dashboard

关键配置修改(/etc/openstack-dashboard/local_settings):

OPENSTACK_HOST = "ct" ALLOWED_HOSTS = ['*'] SESSION_ENGINE = 'django.contrib.sessions.backends.cache' CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': 'ct:11211', } } OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"

重启服务:

systemctl restart httpd memcached

5.2 系统验证

  1. 检查服务状态:
openstack compute service list openstack network agent list
  1. 创建测试网络和实例:
openstack network create --share --external \ --provider-physical-network provider \ --provider-network-type flat provider openstack server create --image cirros \ --flavor m1.tiny \ --nic net-id=PROVIDER_NET_ID \ test-instance
  1. 访问Dashboard:
http://<控制节点IP>/dashboard
http://www.jsqmd.com/news/566915/

相关文章:

  • Phi-3-mini-4k-instruct-gguf效果实测:128token内高准度中文问答生成案例
  • ExcelJS技术解构:逆向工程驱动的JavaScript电子表格处理架构
  • 3大实战场景解析:如何用FakeLocation实现Android应用级GPS伪装
  • 5个Pinocchio实战问题解决指南:从安装到性能调优
  • 三角函数公式速查手册:从基础到进阶的实用指南
  • eSearch:5分钟掌握跨平台屏幕操作神器,工作效率翻倍提升
  • Qt Creator工具栏字体太小看不清?手把手教你用CSS样式表自定义(Windows/Mac通用)
  • 空心线圈电感计算:从基础公式到实际应用
  • 基于STM32H743的调试记录2——从CubeMX到MDK:构建现代化工程模板的实战指南
  • 如何在Windows 10上快速安装Android子系统:完整免费指南
  • Linux系统下Realtek RTL8821CU无线网卡驱动完整指南:从安装到性能优化
  • 保姆级教程:用acquireUnstableContentProviderClient()安全调用其他App的ContentProvider
  • 【模糊PID主动悬架模型】 采用模糊PID控制的二自由度(1/4)主动悬架模型,可以自适应调整...
  • FPGA实战:手把手教你用Verilog实现以太网PHY芯片MDIO寄存器读写(附完整代码)
  • 开源软件媒体资源加载异常全解析:从诊断到根治的系统方法
  • GodotPckTool 高效资源包管理指南:从基础操作到专业应用
  • 终极指南:如何3分钟内为Figma实现专业中文界面
  • 怎么把AVI改成mp4?把AVI改成mp4的5种方法
  • Winhance中文版终极指南:免费Windows系统优化神器快速上手
  • 告别等待!SDXL-Turbo实时绘画工具快速上手:1步推理,所见即所得
  • COMSOL电弧-等离子体-熔池全耦合模型:氩气环境中钨金属与钢的相互作用及优势分析
  • 如何构建多智能体量化交易系统:TradingAgents-CN本地化实施指南
  • 【无人机控制】LQR和PID控制器在风扰下对一维无人机高度稳定的控制【含Matlab源码 15254期】
  • USB设备映射混乱?三招教你通过终端识别/dev/ttyUSB*对应的物理插槽
  • JavaScript电子表格处理全攻略:高效掌握ExcelJS的核心技术与实战技巧
  • 别再只把Dropout当防过拟合了:用TensorFlow/PyTorch实现MC Dropout,给你的模型加个‘信心指数’
  • 全新foobox-cn终极指南:如何打造专属foobar2000界面优化方案
  • JS脚本自动化:从网页小游戏到资源管理大师
  • 深入解析:如何高效调试Cocos打包的Android H5应用
  • 2026年市场评价高的齿式传动轴供应商推荐,球齿联轴器/齿式联轴器/球齿/挠性联轴器/十字传动轴,齿式传动轴厂商有哪些 - 品牌推荐师