)
文章目录CentOS 7.7 下 OpenStack 两种主流部署方式步骤总结修正版一、通用前置环境配置两种部署方式均需执行1. 硬件基础要求修正补充2. 系统基础配置修正核心错误二、Kolla-ansible 部署 OpenStackTrain版本1. 镜像源与基础依赖配置修正关键错误2. 安装Ansible与Kolla-ansible修正版本兼容问题3. OpenStack 配置文件修改修正IP和核心参数4. 部署并启动OpenStack修正部署命令5. 后续操作补充访问地址三、PackStack 部署 OpenStackStein版本1. 专属镜像源配置修正源地址失效问题2. 安装并部署OpenStack修正部署命令和IP3. 后续操作修正访问地址和凭证四、两种部署方式核心差异补充适配性说明五、部署核心注意事项新增关键避坑点总结CentOS 7.7 下 OpenStack 两种主流部署方式步骤总结修正版基于Kolla-ansibleTrain版本和PackStackStein版本适配IP段192.168.90.215/216全面修正原文档中的配置错误、逻辑漏洞和实操隐患步骤可直接落地执行。一、通用前置环境配置两种部署方式均需执行1. 硬件基础要求修正补充内存≥8GB低于8GB会导致PackStack部署Keystone失败Kolla-ansible部署Nova卡死CPU≥双核并开启Intel VT-x/AMD-V虚拟化支持虚拟机部署必开物理机默认开启磁盘≥40GBKolla-ansible需存储Docker镜像建议≥60GB网卡Kolla-ansible需2块网卡管理网外网PackStack单/双网卡均可2. 系统基础配置修正核心错误设置主机名并写入hosts文件修正IP为用户指定段# 建议主机名统一为openstack-node避免特殊字符hostnamectl set-hostname openstack-node# 清空原有hosts冗余配置写入正确映射核心修正IP改为192.168.90.215cat/etc/hostsEOF 127.0.0.1 localhost localhost.localdomain 192.168.90.215 openstack-node ::1 localhost6 localhost6.localdomain6 EOF关闭防火墙、SELinux并禁用NetworkManager原文档漏禁用NetworkManager导致网卡配置失效systemctl stop firewalldsystemctl disable firewalld systemctl stop NetworkManagersystemctl disable NetworkManager# 永久关闭SELinux原文档仅修改配置未临时关闭需补充setenforce0sed-is/^SELINUX.*/SELINUXdisabled//etc/selinux/config# 重启网络生效systemctl restart network init6# 重启系统确保配置生效配置SSH免密登录修正本地免密命令ssh-keygen-trsa-N-f~/.ssh/id_rsa# 全程无交互原文档需手动回车ssh-copy-id-i~/.ssh/id_rsa.pub rootopenstack-node# 明确指定root用户避免权限问题# 验证免密登录sshrootopenstack-nodeecho 免密登录成功同步系统时间修正时区和服务原文档仅临时同步# 安装chrony时间同步服务替代ntpdate更稳定yuminstall-ychronysed-is/^server.*/server ntp.aliyun.com iburst//etc/chrony.conf systemctl start chronydsystemctlenablechronyd# 验证时间同步chronyc sources-v禁用swap分区OpenStack强制要求原文档遗漏swapoff-ased-i/swap/s/^/#//etc/fstab# 注释swap挂载永久禁用二、Kolla-ansible 部署 OpenStackTrain版本1. 镜像源与基础依赖配置修正关键错误配置国内镜像源修正源地址失效问题# 备份原有源mkdir-p/etc/yum.repos.d/bakmv/etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/# 配置阿里云CentOS7基础源cat/etc/yum.repos.d/CentOS-Base.repoEOF [base] nameCentOS-\$releasever- Base - mirrors.aliyun.com baseurlhttp://mirrors.aliyun.com/centos/7.7.1908/os/\$basearch/ gpgcheck1 gpgkeyhttp://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 [updates] nameCentOS-\$releasever- Updates - mirrors.aliyun.com baseurlhttp://mirrors.aliyun.com/centos/7.7.1908/updates/\$basearch/ gpgcheck1 gpgkeyhttp://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 [extras] nameCentOS-\$releasever- Extras - mirrors.aliyun.com baseurlhttp://mirrors.aliyun.com/centos/7.7.1908/extras/\$basearch/ gpgcheck1 gpgkeyhttp://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 EOF# 配置epel源cat/etc/yum.repos.d/epel.repoEOF [epel] nameExtra Packages for Enterprise Linux 7 - \$basearchbaseurlhttp://mirrors.aliyun.com/epel/7/\$basearchgpgcheck0 enabled1 EOF# 配置Docker-CE源Kolla-ansible依赖Dockercat/etc/yum.repos.d/docker-ce.repoEOF [docker-ce-stable] nameDocker CE Stable - \$basearchbaseurlhttps://mirrors.aliyun.com/docker-ce/linux/centos/7/\$basearch/stable gpgcheck1 gpgkeyhttps://mirrors.aliyun.com/docker-ce/linux/centos/gpg enabled1 EOF# 刷新缓存yum clean allyum makecache fast安装系统基础依赖组件修正依赖缺失问题yum-yinstallpython-devel libffi-devel gcc openssl-develgitwgetvimntp net-tools tree openssh libselinux-python# 补充安装Docker原文档遗漏Kolla-ansible基于Docker运行yuminstall-ydocker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io systemctl startdockersystemctlenabledocker# 配置Docker镜像加速核心修正避免拉取镜像超时cat/etc/docker/daemon.jsonEOF { registry-mirrors: [https://hub-mirror.c.163.com, https://mirror.aliyuncs.com] } EOFsystemctl restartdocker配置双网卡修正IP段和网卡命名适配用户IP管理网卡ens32配置192.168.90.215/24用户指定IPcat/etc/sysconfig/network-scripts/ifcfg-ens32EOF TYPEEthernet BOOTPROTOstatic IPADDR192.168.90.215 NETMASK255.255.255.0 GATEWAY192.168.90.1 # 根据实际网关修改 DNS1223.5.5.5 DNS2223.6.6.6 NAMEens32 DEVICEens32 ONBOOTyes NM_CONTROLLEDno # 禁用NetworkManager管理 EOF外网网卡ens34仅启用不配置IP核心修正原文档网卡名混乱cat/etc/sysconfig/network-scripts/ifcfg-ens34EOF TYPEEthernet BOOTPROTOnone NAMEens34 DEVICEens34 ONBOOTyes NM_CONTROLLEDno EOF# 重启网络生效systemctl restart network# 验证网卡配置ipaddr show ens32ipaddr show ens342. 安装Ansible与Kolla-ansible修正版本兼容问题安装并升级pip修正版本冲突yuminstallpython-pip-ypipinstall--upgradepip20.3.4# 固定版本避免新版pip报错安装Ansible修正配置文件路径pipinstallansible2.9.27# 适配Kolla-ansible Train版本# 配置Ansible修正配置项原文档配置不完整cat/etc/ansible/ansible.cfgEOF [defaults] inventory /etc/ansible/hosts forks 10 host_key_checking False pipelining True timeout 30 [privilege_escalation] become True become_method sudo become_user root become_ask_pass False EOF安装Kolla-ansible修正依赖报错# 先解决依赖冲突pipinstallpbr2.0.0 python-ldap3.0.0b1dnspython1.15.0 pyudev0.16.1# 安装指定版本Kolla-ansibleTrain对应9.3.2pipinstallkolla-ansible9.3.2 --ignore-installed PyYAML# 验证安装kolla-ansible--version复制Kolla-ansible配置文件修正路径错误mkdir-p/etc/kollacp-r/usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/cp/usr/share/kolla-ansible/ansible/inventory/* /etc/kolla/3. OpenStack 配置文件修改修正IP和核心参数修改Nova虚拟机类型虚拟机部署必做修正配置格式mkdir-p/etc/kolla/config/novacat/etc/kolla/config/nova/nova-compute.confEOF [libvirt] virt_type qemu cpu_mode none vif_driver nova.virt.libvirt.vif.LibvirtGenericVIFDriver EOF生成并修改OpenStack服务密码修正密码文件路径cd/etc/kolla kolla-genpwd# 生成密码文件# 修改管理员密码核心修正便于记忆sed-is/^keystone_admin_password:.*/keystone_admin_password: Admin123456//etc/kolla/passwords.yml修改全局配置文件globals.yml核心修正IP和网卡cat/etc/kolla/globals.ymlEOF # 基础配置 kolla_base_distro: centos kolla_install_type: source openstack_release: train node_custom_config: /etc/kolla/config # 网络配置核心修正IP改为192.168.90.215网卡适配 kolla_internal_vip_address: 192.168.90.215 network_interface: ens32 neutron_external_interface: ens34 # 单节点配置 enable_haproxy: no enable_cinder: no enable_ceph: no # 接口配置 kolla_external_vip_interface: {{ network_interface }} api_interface: {{ network_interface }} storage_interface: {{ network_interface }} cluster_interface: {{ network_interface }} tunnel_interface: {{ network_interface }} # 镜像配置 docker_registry: hub.docker.com kolla_docker_namespace: kolla # 其他配置 enable_swift: no enable_heat: no EOF修改单节点清单文件all-in-one修正主机名和连接方式sed-is/localhost/openstack-node/g/etc/kolla/all-in-onesed-is/ansible_connectionlocal//g/etc/kolla/all-in-one# 验证清单文件cat/etc/kolla/all-in-one|grepopenstack-node4. 部署并启动OpenStack修正部署命令环境初始化与预检查kolla-ansible-i/etc/kolla/all-in-one bootstrap-servers# 预检查必须无报错ok66以上kolla-ansible-i/etc/kolla/all-in-one prechecks拉取/导入OpenStack镜像修正镜像源# 在线拉取国内建议使用阿里云镜像kolla-ansible-i/etc/kolla/all-in-one pull# 验证镜像dockerimages|grepkolla实际部署OpenStackkolla-ansible-i/etc/kolla/all-in-one deploy-vv# 开启详细日志便于排错验证部署并生成管理员凭证kolla-ansible-i/etc/kolla/all-in-one post-deploy# 加载环境变量核心修正路径source/etc/kolla/admin-openrc.sh# 验证服务openstackservicelist5. 后续操作补充访问地址安装OpenStack CLI客户端pipinstallpython-openstackclient4.0.0访问Web界面http://192.168.90.215账号admin密码Admin123456三、PackStack 部署 OpenStackStein版本1. 专属镜像源配置修正源地址失效问题配置阿里云镜像源适配CentOS 7.7cd/etc/yum.repos.d/mkdir-pbakmv*.repo bak/# 基础源wget-OCentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.reposed-is/^mirrorlist/#mirrorlist/gCentOS-Base.reposed-is/^#baseurl/baseurl/gCentOS-Base.reposed-is/mirrors.cloud.aliyuncs.com/mirrors.aliyun.com/gCentOS-Base.repo# OpenStack Stein源cat/etc/yum.repos.d/openstack-stein.repoEOF [openstack-stein] nameOpenStack Stein Repository baseurlhttps://mirrors.aliyun.com/centos/7.7.1908/cloud/x86_64/openstack-stein/ gpgcheck0 enabled1 [centos-virt] nameCentOS Virt Repository baseurlhttps://mirrors.aliyun.com/centos/7.7.1908/virt/x86_64/kvm-common/ gpgcheck0 enabled1 EOF# 刷新缓存yum clean allyum makecache fast2. 安装并部署OpenStack修正部署命令和IP安装PackStack及依赖修正依赖缺失yuminstall-yopenstack-packstack libibverbs一键部署单节点OpenStack修正IP和参数# 生成部署配置文件指定IPpackstack --gen-answer-filepackstack-answers.txt# 修改配置文件中的IP为192.168.90.215sed-is/^CONFIG_CONTROLLER_HOST.*/CONFIG_CONTROLLER_HOST192.168.90.215/packstack-answers.txtsed-is/^CONFIG_COMPUTE_HOST.*/CONFIG_COMPUTE_HOST192.168.90.215/packstack-answers.txtsed-is/^CONFIG_NETWORK_HOST.*/CONFIG_NETWORK_HOST192.168.90.215/packstack-answers.txt# 禁用Demo环境减少资源占用sed-is/^CONFIG_PROVISION_DEMO.*/CONFIG_PROVISION_DEMOn/packstack-answers.txt# 执行部署packstack --answer-filepackstack-answers.txt3. 后续操作修正访问地址和凭证查看生成的密码文件cat~/keystonerc_admin加载管理员凭证source~/keystonerc_admin访问Web界面http://192.168.90.215/dashboard账号admin密码在~/keystonerc_admin中查看四、两种部署方式核心差异补充适配性说明特性Kolla-ansibleTrainPackStackStein部署基础DockerAnsible服务运行在容器中Puppet服务直接运行在系统中网卡要求2块管理网192.168.90.215/外网ens341块192.168.90.215即可灵活性高支持多节点/高可用便于维护升级低适合快速搭建测试环境部署速度较慢需拉取/导入大量镜像快一键式部署适用场景生产环境/企业级部署测试环境/入门学习访问地址http://192.168.90.215http://192.168.90.215/dashboard五、部署核心注意事项新增关键避坑点所有操作必须使用root用户执行普通用户sudo会导致权限继承问题Kolla-ansible的外网网卡ens34严禁配置IP否则Neutron的br-ex网桥无法创建虚拟机部署时Nova的virt_type必须设为qemu物理机可设为kvm验证虚拟化开启egrep -c vmx|svm /proc/cpuinfo结果≥1即开启0则需在虚拟机设置中开启若Kolla-ansible部署失败先执行kolla-ansible -i /etc/kolla/all-in-one destroy清理环境再重新部署PackStack部署若报“Firewall is running”需再次确认firewalld和NetworkManager已禁用访问Web界面失败时检查httpd/nginx服务状态Kolla-ansibledocker ps | grep horizonPackStacksystemctl status httpd总结核心修正点所有IP段统一为用户指定的192.168.90.215修复了原文档中网卡配置、源地址、版本兼容等关键错误实操优化补充了Docker安装、swap禁用、时间同步等遗漏步骤确保部署流程闭环避坑指南新增虚拟化验证、权限检查、服务排错等关键注意事项降低部署失败率访问适配明确两种部署方式的Web访问地址适配用户IP段。