OpenStack-Train版-Allinone自动化部署脚本

一、环境准备

  • 操作系统:CentOS 7 或以上版本

  • 建议配置:

    • CPU:8 核或以上

    • 内存:16 GB 或以上

    • 磁盘:500 GB 或以上

  • 网络配置:

    • 确保虚拟机已配置静态 IP 地址

    • 确保虚拟机可以正常访问外部网络

二、自动化部署脚本

bash 复制代码
#!/bin/bash

# 设置主机名
hostnamectl set-hostname openstack.alione.local
echo "Hostname set to openstack.alione.local"

# 修改/etc/hosts文件
echo "172.16.12.48 openstack openstack.alione.local" >> /etc/hosts
echo "/etc/hosts updated with the new hostname and IP address"

# 生成SSH密钥对
ssh-keygen -t rsa -b 2048 -f /root/.ssh/id_rsa -q -N ""
echo "SSH key pair generated"

# 将公钥复制到本机
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.13.44
echo "Public SSH key copied to root@172.16.13.44"

# 禁用SELinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0
echo "SELinux disabled"

# 停用并禁用firewalld
systemctl stop firewalld
systemctl disable firewalld
echo "Firewalld stopped and disabled"

# 停用并禁用NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager
echo "NetworkManager stopped and disabled"

echo "nameserver 8.8.8.8" >> /etc/resolv.conf

# 更换为阿里云的CentOS镜像源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
echo "YUM repository switched to Aliyun"

# 清理并重建缓存
yum clean all
yum makecache
echo "YUM cache cleaned and rebuilt"

# 安装基本软件包
yum install -y bash-completion vim telnet bridge-utils yum-utils
echo "Basic packages installed"

# 更新系统
yum -y update
echo "System updated"

# 添加OpenStack Train仓库
yum install -y centos-release-openstack-train
echo "OpenStack Train repository added"

# 修改OpenStack仓库配置
sed -i 's|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever/cloud/\$basearch/openstack-train/|baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/cloud/x86_64/openstack-train/|' /etc/yum.repos.d/CentOS-OpenStack-train.repo
sed -i 's|^mirrorlist=http://mirrorlist.centos.org/?release=\$releasever&arch=\$basearch&repo=cloud-openstack-train|#mirrorlist=http://mirrorlist.centos.org/?release=\$releasever&arch=\$basearch&repo=cloud-openstack-train|' /etc/yum.repos.d/CentOS-OpenStack-train.repo
echo "CentOS-OpenStack-train.repo configured for Aliyun mirrors"

# 修改Ceph Nautilus仓库配置
sed -i 's|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever/storage/\$basearch/ceph-nautilus/|baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/storage/x86_64/ceph-nautilus/|' /etc/yum.repos.d/CentOS-Ceph-Nautilus.repo
sed -i 's|^mirrorlist=http://mirrorlist.centos.org/?release=\$releasever&arch=\$basearch&repo=storage-ceph-nautilus|#mirrorlist=http://mirrorlist.centos.org/?release=\$releasever&arch=\$basearch&repo=storage-ceph-nautilus|' /etc/yum.repos.d/CentOS-Ceph-Nautilus.repo
echo "CentOS-Ceph-Nautilus.repo configured for Aliyun mirrors"

# 修改NFS Ganesha 28仓库配置
sed -i 's|^#baseurl=https://mirror.centos.org/\$contentdir/\$releasever/storage/\$basearch/nfs-ganesha-28/|baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/storage/x86_64/nfs-ganesha-28/|' /etc/yum.repos.d/CentOS-NFS-Ganesha-28.repo
sed -i 's|^mirrorlist=http://mirrorlist.centos.org?arch=\$basearch&release=\$releasever&repo=storage-nfs-ganesha-28|#mirrorlist=http://mirrorlist.centos.org?arch=\$basearch&release=\$releasever&repo=storage-nfs-ganesha-28|' /etc/yum.repos.d/CentOS-NFS-Ganesha-28.repo
echo "CentOS-NFS-Ganesha-28.repo configured for Aliyun mirrors"

# 修改QEMU EV仓库配置
sed -i 's|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever/virt/\$basearch/kvm-common/|baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/virt/x86_64/kvm-common/|' /etc/yum.repos.d/CentOS-QEMU-EV.repo
sed -i 's|^mirrorlist=http://mirrorlist.centos.org/?release=\$releasever&arch=\$basearch&repo=virt-kvm-common|#mirrorlist=http://mirrorlist.centos.org/?release=\$releasever&arch=\$basearch&repo=virt-kvm-common|' /etc/yum.repos.d/CentOS-QEMU-EV.repo
echo "CentOS-QEMU-EV.repo configured for Aliyun mirrors"


# 再次清理并重建缓存
yum clean all
yum makecache
echo "YUM cache cleaned and rebuilt after repository configuration"

# 安装Packstack
yum install -y openstack-packstack
echo "Packstack installed"

# 执行Packstack全栈安装
packstack --allinone
echo "Packstack all-in-one installation initiated"
相关推荐
智商网输送线配件7 分钟前
2026 自动化流水线配件采购难题破解:小批量混批与非标定制的供应链实测
大数据·人工智能·自动化·智商网·流水线设备配件
其实防守也摸鱼1 小时前
常见安全架构中 Shiro 的认证确认机制解析
运维·服务器·数据库·windows·github
iPad协议个微协议2 小时前
微信自动回复从关键词到 AI:WechatApi 如何连接消息、模型和人工
微信·自动化·微信开发·wechatapi·个人微信号二次开发
^Rocky2 小时前
IT 疑难杂症诊疗室:复杂技术问题解决实录
运维·bug
liulilittle2 小时前
mock 规范总纲
ai·自动化·llm·mock·测试·tools
挖掘狂人2 小时前
当生产环境"变慢",我用这套 perf + strace 30 分钟定位瓶颈
linux·运维·性能优化
liulilittle4 小时前
麻将结算全链路语义(SETTLE_SEMANTICS)
ai·自动化·llm·mock·lua·测试
jingli94 小时前
恶意退款怎么办、仅退款怎么申诉:六类恶意退款识别特征+取证证据链+反制全流程(商家实操版)
人工智能·自动化·用户运营
阿明65 小时前
Linux进程【Linux】
linux·运维·服务器
Android系统攻城狮5 小时前
Linux Gstreamer深度解析之gst_audio_resampler_update调用流程与实战(三十)
linux·运维·服务器·gstreamer音视频·音视频进阶