Openstack脚本部署

函数库路径:https://blog.csdn.net/anqixiang/article/details/89964048
配置文件路径:https://blog.csdn.net/anqixiang/article/details/91038496

#!/bin/bash
#AUTHOR:AN
#VERSION:1.1.0
#DATE:2019-06-05
#MODIFY:
#FUNCTION:快速部署openstack

#加载配置文件
source /cloud_nsd/conf/openstack.conf
#加载函数库
if [ -f "$Script_Path/myfunction.lib" ];then
 	source $Script_Path/myfunction.lib 
else
	echo -e "\033[31m函数库不存在\033[0m"
	exit $NOEXIST
fi

##############################################################
#配置DNS,主机名,时间同步
DNS_TIME(){
	[ ! -f /etc/resolv.conf.bak ] && cp /etc/resolv.conf /etc/resolv.conf.bak
	echo "nameserver $Dns_Server" > /etc/resolv.conf			#配置DNS
	hostnamectl set-hostname $1									#配置主机名
	#配置主机名解析
	cat >> /etc/hosts << EOF
$OpenStk_Host 	$OpenS_Name
$Nova01_Host	$Nova_Name01
$Nova02_Host	$Nova_Name02
EOF
	#配置时间同步
	sed -i "/^server/c server $Ntp_Server iburst" /etc/chrony.conf		
	systemctl restart chronyd
	systemctl	enable chronyd &> /dev/null
	chronyc sources -v |grep 'gateway' &> /dev/null
	[ $? -ne 0 ] && cecho 31 "NTP Is Error" && exit $ISERROR
}

#配置YUM仓库,确保仓库文件已通过ftp服务器共享
CONF_YUM(){
	Yum_conf=/etc/yum.repos.d/openstack.repo
	[ ! -f $Yum_conf ] && touch $Yum_conf || > $Yum_conf	
	cat >> $Yum_conf << EOF
[RHEL7-extras]
name=RHEL7-extras
baseurl="ftp://$Ftp_Server/extras"
enabled=1
gpgcheck=0

[RHEL7OSP-package]
name=RHEL7OSP-package
baseurl="ftp://$Ftp_Server/openstack/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0

[RHEL7OSP-devtools]
name=RHEL7OSP-devtools
baseurl="ftp://$Ftp_Server/openstack/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0
EOF
	yum clean all &> /dev/null
	yum repolist
}

#基础环境准备
INIT(){	
	DNS_TIME $1
	CONF_YUM
	grep vmx /proc/cpuinfo |grep ssse3 &>/dev/null		#是否支持虚拟化
	[ $? -ne 0 ] && cecho 31 "Don't Support Virtual" && exit $ISERROR	
	YUMMUL "${Soft_Packet[*]}"							#安装需要的包
}
		
#配置openstack
OPENSTACK(){
	yum -y install openstack-packstack
	packstack --gen-answer-file=$Answer_File							#生成应答文件
	#42行为swift对象存储,需ceph支持,45,49,53与计费有关
	sed -i -e '42s/y/n/' -e '45s/y/n/' -e '49s/y/n/' -e '53s/y/n/' $Answer_File
	sed -i "75c CONFIG_NTP_SERVERS=$Ntp_Server" $Answer_File			#NTP服务器地址
	sed -i "98c CONFIG_COMPUTE_HOSTS=$Nova01_Host" $Answer_File			#在哪台服务器上安装nova主键
	sed -i "102c CONFIG_NETWORK_HOSTS=$OpenStk_Host,$Nova01_Host" $Answer_File	 	#哪台机器支持vxlan网络
	sed -i "333c CONFIG_KEYSTONE_ADMIN_PW=$Admin_Pwd" $Answer_File					#管理员openstack的密码
	sed -i '840c CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan' $Answer_File	#openstack支持什么网络协议(flat扁平网络)
	sed -i '910c CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex' $Answer_File	#三层虚拟交换机
	sed -i '921c CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0' $Answer_File			#三层虚拟交换机的WAN口端口名
	sed -i '1179 s/y/n/' $Answer_File				#官方写的例子
#	packstack --answer-file=$Answer_File			#执行应答文件
}

#帮助信息
HELP(){
	cat << EOF
Openstack version 1.1.0
Usage: Openstack [-h] [-init 主机名][-openstack]
=======================================================================
optional arguments:
	-h				提供帮助信息
	-init 主机名		初始化配置
EXAMPLE:
	bash Openstack.sh -init nova01 	
EOF
}
#############################主程序#############################
[ $# -eq 0 ] && HELP
case $1 in 
-h)
	HELP;;
-init)
	if [ ! -z $2 ];then 
		INIT $2 
	else 
		HELP
	fi
	;;
-openstack)
	OPENSTACK;;
*) 
	cecho 31 "Invalid option:bash `basename $0` [-h]"
esac
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值