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"
相关推荐
AIbase202419 分钟前
国内MCP服务平台推荐!aibase.cn上线MCP服务器集合平台
运维·服务器·人工智能
艾立泰智能包装29 分钟前
电商分拣的“效率密码”:艾立泰轻量化托盘引领自动化流水线革新
运维·自动化
cpsvps_net32 分钟前
Windows内存泄漏自动化
运维·自动化
你不知道我是谁?1 小时前
负载均衡--常见负载均衡算法
运维·负载均衡
会又不会1 小时前
Jenkins-Publish HTML reports插件
运维·jenkins
烟雨书信2 小时前
Docker文件操作、数据卷、挂载
运维·docker·容器
IT成长日记2 小时前
【Docker基础】Docker数据卷管理:docker volume prune及其参数详解
运维·docker·容器·volume·prune
这儿有一堆花2 小时前
Docker编译环境搭建与开发实战指南
运维·docker·容器
LuckyLay2 小时前
Compose 高级用法详解——AI教你学Docker
运维·docker·容器
Uluoyu2 小时前
redisSearch docker安装
运维·redis·docker·容器