当前位置: 代码迷 >> 综合 >> 解读先电2.4版 iaas-pre-host.sh 脚本
  详细解决方案

解读先电2.4版 iaas-pre-host.sh 脚本

热度:37   发布时间:2023-11-25 11:02:19.0
#!/bin/bash							#声明解释器路径
source /etc/xiandian/openrc.sh		#生效环境变量
#selinuxsed -i 's/SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config	#编写配置文件,永久关闭selinux
setenforce 0													#临时关闭selinux		
#firewalldsystemctl stop firewalld						#关闭防火墙
systemctl disable firewalld  >> /dev/null 2>&1	#关闭开机自启防火墙,并把这句命令的正确输出和错误输出以追加的方式都保存到/dev/null,相当于丢进回收站
#NetworkManager		systemctl stop NetworkManager >> /dev/null 2>&1			#关闭网络管理器,并把这句命令的正确输出和错误输出都保存到/dev/null,相当于丢进回收站
systemctl disable NetworkManager >> /dev/null 2>&1		#关闭开机自启网络管理器,并把这句命令的正确输出和错误输出都保存到/dev/null,相当于丢进回收站
yum remove -y NetworkManager firewalld			#卸载网络管理器的防火墙
systemctl restart network						#重新启动网络服务
#iptablesyum install  iptables-services  -y 	
if [ 0  -ne  $? ]; thenecho -e "\033[31mThe installation source configuration errors\033[0m"	exit 1
fi#安装iptables服务
shell语法不做解释,这一部分的功能是看iptables服务是否安装成功,错误则报错并终止执行脚本,然后打印出(The installation source configuration errors)
systemctl restart iptables		#重启iptables服务
iptables -F						#清除所有规则
iptables -X						#删除用户自定义的链
iptables -Z 					#链的计数器清零
/usr/sbin/iptables-save			#保存修改
systemctl stop iptables			#关闭iptables服务
systemctl disable iptables		#禁用iptables服务iptables介绍
原文链接:https://blog.csdn.net/bjgaocp/article/details/88722806
#install package sed -i -e 's/#UseDNS yes/UseDNS no/g' -e 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/g' /etc/ssh/sshd_config		#编辑/etc/ssh/sshd_config文件,关闭dns域名解析,关闭gssapi 认证, 提高SSH的连接速度
yum upgrade -y										#升级所有包和系统版本,不改变内核,软件和系统设置
yum install python-openstackclient openstack-selinux openstack-utils crudini expect -y		#安装Openstack软件包、crudini命令解释器和expect命令解释器
#hostsif [[ `ip a |grep -w $HOST_IP ` != '' ]];then hostnamectl set-hostname $HOST_NAME
elif [[ `ip a |grep -w $HOST_IP_NODE ` != '' ]];then hostnamectl set-hostname $HOST_NAME_NODE
elsehostnamectl set-hostname $HOST_NAME
fi
sed -i -e "/$HOST_NAME/d" -e "/$HOST_NAME_NODE/d" /etc/hosts
echo "$HOST_IP $HOST_NAME" >> /etc/hosts
echo "$HOST_IP_NODE $HOST_NAME_NODE" >> /etc/hosts#shell语法不做解释,这一部分的功能是设置主机名和主机解析
#sshif [[ ! -s ~/.ssh/id_rsa.pub ]];thenssh-keygen  -t rsa -N '' -f ~/.ssh/id_rsa -q -b 2048
fi
name=`hostname
if [[ $name == $HOST_NAME ]];then
expect -c "set timeout -1;spawn ssh-copy-id  -i /root/.ssh/id_rsa $HOST_NAME_NODE;expect {
    *password:* {
    send -- $HOST_PASS_NODE\r;expect {
    *denied* {
    exit 2;}eof}}*(yes/no)* {
    send -- yes\r;exp_continue;}eof         {
    exit 1;}}"
else
expect -c "set timeout -1;spawn ssh-copy-id  -i /root/.ssh/id_rsa $HOST_NAME;expect {
    *password:* {
    send -- $HOST_PASS\r;expect {
    *denied* {
    exit 2;}eof}}*(yes/no)* {
    send -- yes\r;exp_continue;}eof         {
    exit 1;}}"
fi#shell语法和expect的语法不做解释,这部分的功能是生成密钥在传给另一个结点的ssh,实现免密登录expect的语法:https://blog.csdn.net/Cantevenl/article/details/115271301密钥简介:https://blog.csdn.net/hanguofei/article/details/103135178ssh-keygen 命令简介:https://blog.csdn.net/qq_40932679/article/details/117487540
#chronyyum install -y chrony
if [[ $name == $HOST_NAME ]];thensed -i '3,6s/^/#/g' /etc/chrony.confsed -i '7s/^/server controller iburst/g' /etc/chrony.conf	#表示与controller同步时间echo "allow $network_segment_IP" >> /etc/chrony.conf		#允许network_segment_IP到这台时间服务器来同步时间。必须配置echo "local stratum 10" >> /etc/chrony.conf
elsesed -i '3,6s/^/#/g' /etc/chrony.confsed -i '7s/^/server controller iburst/g' /etc/chrony.conf
fisystemctl restart chronyd
systemctl enable chronyd#安装chrony软件来实现ntp服务
shell语法不做解释,这部分的功能是安装ntp服务、编辑ntp服务的配置文件/etc/chrony.conf和启用ntp服务,ntp是时间服务器,chrony能保持系统时钟与时间服务器(ntp)同步,让时间保持精确。
#DNSif [[ $name == $HOST_NAME ]];then
yum install bind -y
sed -i -e '13,14s/^/\/\//g' \
-e '19s/^/\/\//g' \
-e '37,42s/^/\/\//g' \
-e 's/recursion yes/recursion no/g' \										#迭代查询:就是DNS服务器向DNS服务器询问;
-e 's/dnssec-enable yes/dnssec-enable no/g' \							#dns安全扩展,可以改为no关闭
-e 's/dnssec-validation yes/dnssec-validation no/g' /etc/named.conf 		#dns验证,可以改为no关闭
systemctl start named.service
systemctl enable named.service
fi#安装bind软件来实现DNS服务
shell语法不做解释,这部分的功能是安装DNS服务、编辑DNS服务的配置文件/etc/named.conf和启用DNS服务,DNS服务为域名系统服务,简单来说就是把域名翻译为IP
  相关解决方案