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"
相关推荐
代码改变世界ctw35 分钟前
Linux内核设计与实现 - 第14章 块I/O层
linux·运维·服务器
Dreams_l1 小时前
网络编程2(应用层协议,传输层协议)
运维·服务器·网络
勇哥的编程江湖1 小时前
starrocks官网docker部署mysql无法连接
运维·docker·容器
EulerBlind2 小时前
【运维】SGLang 安装指南
运维·人工智能·语言模型
风吹落叶花飘荡3 小时前
Ubuntu系统 系统盘和数据盘扩容具体操作
linux·运维·ubuntu
Z7676_4 小时前
OSPF开放式最短路径优先
运维·网络
RPA+AI十二工作室4 小时前
影刀RPA_抖音评价获取_源码解读
运维·机器人·自动化·源码·rpa·影刀
RPA+AI十二工作室7 小时前
影刀RPA_Temu关键词取数_源码解读
大数据·自动化·源码·rpa·影刀
呉師傅7 小时前
佳能iR-ADV C5560复印机如何扫描文件到电脑
运维·网络·windows·计算机外设·电脑
半梦半醒*8 小时前
Linux网络管理
linux·运维·网络·centos·运维开发