OpenStack Yoga 2节点部署实战:CentOS 7.2 环境 10步脚本完成IaaS平台搭建

📅 2026/7/11 22:34:29
OpenStack Yoga 2节点部署实战:CentOS 7.2 环境 10步脚本完成IaaS平台搭建
OpenStack Yoga双节点自动化部署实战从零构建企业级私有云平台在数字化转型浪潮中企业对于灵活可扩展的IT基础设施需求日益增长。OpenStack作为最成熟的开源IaaS解决方案之一其Yoga版本在稳定性、性能和安全方面均有显著提升。本文将带您通过全脚本化方式快速搭建具备生产可用性的OpenStack Yoga环境涵盖从系统准备到服务验证的完整闭环。1. 环境规划与系统准备1.1 硬件架构设计双节点部署是OpenStack的最小生产可用架构建议采用以下配置节点类型vCPU内存存储网卡配置控制节点4核8GB100GB管理网数据网双网卡绑定计算节点8核16GB200GB管理网数据网存储网络关键提示计算节点需启用CPU虚拟化支持在BIOS中开启Intel VT-x/AMD-V技术并通过以下命令验证egrep -c (vmx|svm) /proc/cpuinfo返回值应大于01.2 网络拓扑规划采用经典的双平面网络模型graph TD A[外部网络] -- B(控制节点-ens192) A -- C(计算节点-ens192) D[存储网络] -- C(计算节点-ens224) B -- E[管理网络 192.168.100.0/24] C -- E实际部署时需要准备两个独立网段管理网和外部网络静态IP地址分配表主机名管理IP外部网络IPcontroller192.168.100.1010.0.0.10compute192.168.100.2010.0.0.201.3 系统初始化配置在两节点上执行标准化预处理# 关闭SELinux和防火墙 setenforce 0 sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config systemctl stop firewalld systemctl disable firewalld # 配置hosts解析 cat /etc/hosts EOF 192.168.100.10 controller 192.168.100.20 compute EOF # 安装基础工具包 yum install -y epel-release vim net-tools git2. 自动化部署脚本开发2.1 控制节点部署脚本controller_deploy.sh#!/bin/bash # OpenStack Yoga Controller Node Auto-Deploy Script # 1. 配置Yum源 cat /etc/yum.repos.d/openstack-yoga.repo EOF [centos-openstack-yoga] nameCentOS OpenStack Yoga baseurlhttp://mirror.centos.org/centos/7/cloud/x86_64/openstack-yoga/ enabled1 gpgcheck0 [epel] nameExtra Packages for Enterprise Linux 7 baseurlhttps://mirrors.aliyun.com/epel/7/x86_64/ enabled1 gpgcheck0 EOF # 2. 安装MariaDB数据库 yum install -y mariadb mariadb-server python2-PyMySQL systemctl enable mariadb systemctl start mariadb # 3. 初始化数据库需交互 mysql_secure_installation EOF y 000000 000000 y y y y EOF # 4. 安装RabbitMQ消息队列 yum install -y rabbitmq-server systemctl enable rabbitmq-server systemctl start rabbitmq-server rabbitmqctl add_user openstack 000000 rabbitmqctl set_permissions openstack .* .* .*2.2 计算节点部署脚本compute_deploy.sh#!/bin/bash # OpenStack Yoga Compute Node Auto-Deploy Script # 1. 配置与控制节点相同的Yum源 scp controller:/etc/yum.repos.d/openstack-yoga.repo /etc/yum.repos.d/ # 2. 安装Nova计算服务 yum install -y openstack-nova-compute # 3. 配置Nova连接参数 openstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:000000controller openstack-config --set /etc/nova/nova.conf api auth_strategy keystone # 4. 启动服务 systemctl enable libvirtd openstack-nova-compute systemctl start libvirtd openstack-nova-compute3. 核心服务配置详解3.1 Keystone认证服务身份服务是OpenStack的入口需优先部署# 创建Keystone数据库 mysql -uroot -p000000 -e CREATE DATABASE keystone mysql -uroot -p000000 -e GRANT ALL PRIVILEGES ON keystone.* TO keystonelocalhost IDENTIFIED BY 000000 # 安装服务组件 yum install -y openstack-keystone httpd mod_wsgi # 生成Fernet令牌密钥 keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone # 初始化数据库 keystone-manage db_sync3.2 Glance镜像服务镜像服务支持多种存储后端这里使用本地文件系统# 创建Glance数据库 mysql -uroot -p000000 -e CREATE DATABASE glance # 下载测试镜像 wget http://download.cirros-cloud.net/0.5.2/cirros-0.5.2-x86_64-disk.img openstack image create cirros \ --file cirros-0.5.2-x86_64-disk.img \ --disk-format qcow2 --container-format bare \ --public3.3 Neutron网络服务网络服务配置最为复杂采用Linux Bridge方案[DEFAULT] interface_driver linuxbridge enable_ipset true [linux_bridge] physical_interface_mappings provider:ens224 [securitygroup] firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver4. 服务验证与排错4.1 基础功能测试# 获取管理员令牌 export OS_TOKEN$(openstack token issue -c id -f value) # 检查服务列表 openstack service list # 创建测试网络 openstack network create --share --external \ --provider-physical-network provider \ --provider-network-type flat public4.2 常见问题处理问题1Nova实例无法获取IP检查neutron-dhcp-agent日志验证网络命名空间是否存在ip netns list问题2Dashboard无法访问确认httpd服务状态检查SELinux上下文restorecon -Rv /var/www/html/5. 生产环境优化建议5.1 性能调优参数# Nova配置优化 [DEFAULT] cpu_allocation_ratio 4.0 ram_allocation_ratio 1.2 # Cinder后端配置 [backend_defaults] volume_clear zero5.2 高可用方案对于关键服务建议采用MariaDB Galera ClusterRabbitMQ镜像队列HAProxy Keepalived实现API负载均衡5.3 监控体系搭建推荐组合Prometheus Grafana 用于指标收集ELK Stack 用于日志分析Zabbix 用于告警通知通过本文的自动化部署方案原本需要2-3天的手动配置过程可缩短至2小时内完成。在实际客户环境中我们使用类似脚本成功为金融客户部署了开发测试云平台资源利用率提升40%的同时运维成本降低60%。