0
点赞
收藏
分享

微信扫一扫

OpenStack Train版自动化部署计算节点

mm_tang 2022-01-27 阅读 52
[root@openstack-compute1 ~]#cat openstack-add-compute-node.sh 
#!/bin/bash
#Author:QsyjSmy
#Date:2022-01-19
#QQ:582673967

#定义变量
HOST_IP=`ifconfig | grep 172 | awk '{print $2}'`
[ ${HOST_IP} = "172.31.7.107" ] && HOST_NAME="openstack-compute1"
[ ${HOST_IP} = "172.31.7.108" ] && HOST_NAME="openstack-compute2"
SELINUX_STATUS=`getenforce`

#修改主机名
function setup-hostname {
hostnamectl set-hostname ${HOST_NAME}.qsyjsmy.com && echo "主机名修改成功"
}

#修改hosts文件
function setup-hosts {
for i in 1 7 8;
do
if [ ${i} -eq 1 ];
then
n=${i};
echo "172.31.7.10${i} openstack-controller${n}.qsyjsmy.com openstack-controller${n}" >> /etc/hosts;
elif [ ${i} -eq 7 ];
then
n=1;
echo "172.31.7.10${i} openstack-compute${n}.qsyjsmy.com openstack-compute${n}" >> /etc/hosts;
elif [ ${i} -eq 8 ];
then
n=2;
echo "172.31.7.10${i} openstack-compute${n}.qsyjsmy.com openstack-compute${n}" >> /etc/hosts;
fi;
done
echo "hosts文件修改成功"
}

#禁用防火墙
function disable-firewalld {
systemctl status firewalld.service && systemctl disable --now firewalld.service && echo "防火墙禁用成功"
}

#禁用selinux
function disable-seliunx {
if [ ${SELINUX_STATUS} != Disabled ]
then
sed -i.bak 's/^\(SELINUX=\).*/\1disabled/g' /etc/selinux/config && setenforce 0 && echo "selinux禁用成功"
fi
}

#禁用NetworkManager服务
function disable-NetworkManager {
systemctl status NetworkManager.service && systemctl disable --now NetworkManager.service && echo "NetworkManager服务禁用成功"
}

#添加内核参数
function add-kernel-options {
echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf && \
echo "net.bridge.bridge-nf-call-ip6tables = 1" >> /etc/sysctl.conf && \
echo "添加内核参数成功"
}

#配置时钟同步
function config-timedate {
crontab -l | grep "ntp.aliyun.com" || echo "*/10 * * * * /usr/sbin/ntpdate ntp.aliyun.com && /usr/sbin/hwclock -w" | crontab && \
echo "时钟同步配置成功"
echo "当前服务器时间是: `date +'%Y年%m月%d日 %H时%M分%S秒'`"
}

#配置阿里云yum源
function config-aliyun-yum {
yum repolist | grep aliyun &> /dev/null || mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/back/ && \
curl -so /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && \
echo "阿里云yum源配置成功"
}

#安装常用基础命令
function install-software {
yum install -y sshpass vim wget tree lrzsz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl \
openssl-devel iproute net-tools iotop lsof ntpdate telnet bridge-utils && \
echo "常用基础命令安装成功"
}

#安装Train版本的yum源
function install-openstack-yum {
yum repolist | grep "OpenStack train" &> /dev/null || yum install -y centos-release-openstack-train.noarch && \
yum install -y https://rdoproject.org/repos/rdo-release.rpm && \
yum repolist | grep "OpenStack train" &> /dev/null && \
echo "Train版本的yum源安装成功"
}

#安装OpenStack selinux管理包
function install-selinux {
yum install -y openstack-selinux.noarch && echo "OpenStack selinux管理包安装成功"
}

#安装配置nova计算服务
function config-nova {
#安装并配置nova计算服务
yum install openstack-nova-compute -y || { echo "nova计算服务安装失败,正在退出...";sleep 3;exit 1; } && echo "安装计算服务nova成功"
cp -a /etc/nova/nova.conf{,.bak} && wget -O /opt/nova.conf http://www.qsyjsmy.com/testdir/compute/nova.conf && \
cat /opt/nova.conf > /etc/nova/nova.conf && sed -i "s/^\(server_proxyclient_address\).*/\1 = ${HOST_IP}/g" /etc/nova/nova.conf
#启动nova计算服务
systemctl enable --now openstack-nova-compute.service libvirtd.service;sleep 3
systemctl restart openstack-nova-compute.service libvirtd.service;sleep 3
systemctl status openstack-nova-compute.service libvirtd.service &> /dev/null || \
{ echo "nova计算服务启动失败,正在退出...";sleep 3;exit 1; } && echo "nova服务配置启动成功"
}

#安装配置neutron网络服务
function config-neutron {
#安装neutron网络服务
yum install openstack-neutron-linuxbridge ebtables ipset -y || { echo "服务安装失败,正在退出...";sleep 3;exit 1; } && \
echo "安装计算服务nova成功"
#配置neutron网络服务
cp -a /etc/neutron/neutron.conf{,.bak} && wget -O /opt/neutron.conf http://www.qsyjsmy.com/testdir/compute/neutron.conf && \
cat /opt/neutron.conf > /etc/neutron/neutron.conf
#配置Linuxbridge代理
cp -a /etc/neutron/plugins/ml2/linuxbridge_agent.ini{,.bak} && \
wget -O /opt/linuxbridge_agent.ini http://www.qsyjsmy.com/testdir/compute/linuxbridge_agent.ini && \
cat /opt/linuxbridge_agent.ini > /etc/neutron/plugins/ml2/linuxbridge_agent.ini
#启动neutron网络服务
systemctl enable --now neutron-linuxbridge-agent.service
systemctl restart neutron-linuxbridge-agent.service;sleep 5
systemctl status neutron-linuxbridge-agent.service &> /dev/null || { echo "nova计算服务启动失败,正在退出...";sleep 3;exit 1; } && \
echo "neutron服务配置启动成功"
}

setup-hostname
setup-hosts
disable-firewalld
disable-seliunx
disable-NetworkManager
add-kernel-options
config-timedate
config-aliyun-yum
install-software
install-openstack-yum
install-selinux
config-nova
config-neutron
echo "当前主机安装配置计算节点完成,请重启当前服务器"
举报

相关推荐

0 条评论