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 [email protected]
echo "Public SSH key copied to [email protected]"

# 禁用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"
相关推荐
web守墓人30 分钟前
【gpt生成-总览】怎样才算开发了一门编程语言,需要通过什么测试
运维·服务器·gpt
Yawesh_best42 分钟前
Immich图库本地部署与远程管理:打造你的专属照片云服务
运维
vx_33076231721 小时前
vos3000外呼系统怎么给普通用户开通播放下载录音权限?
运维·服务器·人工智能·ai·媒体
小小坦克手1 小时前
实验不能停:docker 部署支持用户名的redis容器
运维·数据库·redis
想学好C++的oMen1 小时前
Linux环境变量
linux·运维
await 4042 小时前
Dell戴尔服务器 PowerEdge R750xs + window server2012r2 || 2016
运维·服务器
阿7_QuQ2 小时前
Mac屏幕共享怎么使用?
运维·服务器·macos
Linux运维老纪2 小时前
Linux之 grep、find、ls、wc 命令
linux·运维·服务器·数据库·云计算·运维开发
梁萌3 小时前
06-DevOps-自动构建Docker镜像
运维·docker·devops
Codeking__3 小时前
Linux——信号(1)信号的产生
linux·运维·服务器