shell一键部署各种服务

不多bb,直接上代码,可以部署raid,磁盘分区,lvm,dns,dhcp等各种服务

#!/bin/bash
#====================================================================================================
#一键部署安装各种服务
#====================================================================================================
cat <<EOF
1:部署DHCP服务
2:部署DNS服务
3:磁盘分区
4:配置LVM
5:配置Raid
6:配置pxe
EOF
read -p "which one do you want?" i
dhcp(){
echo "配置前请将网卡模式更改为仅主机"
read -p "如果已更改(任意键下一步)"
rpm -q dhcp    #检测dhcp是否已经安装
if [ $? -eq 0 ]
then
	echo "已安装dhcp开始下一步操作"
else
	echo "未安装dhcp,开始自动安装"
	yum -y install dhcp &> /dev/null
	echo "安装完成"
fi
####################更改网卡#############################
read -p "请给予一个net1网段的IP:" now_ip
read -p "请给予一个net1网段的网关:" now_way
ip=`cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep "IPADDR" | awk -F"=" '{print $2}'`
way=`cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep "GATEWAY" | awk -F"=" '{print $2}'`
sed -i "/IPADDR/s/$ip/$now_ip/" /etc/sysconfig/network-scripts/ifcfg-ens33
sed -i "/GATEWAY/s/$way/$now_way/" /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
###################更改配置文件############################
read -p "请输入net1网段:" net
cp -r /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
sed -i "/subnet/s/10.254.239.32/$net/" /etc/dhcp/dhcpd.conf
sed -i "/subnet/s/255.255.255.224/255.255.255.0/" /etc/dhcp/dhcpd.conf
read -p "请给予地址池范围:" range
sed -i "/range/s/10.254.239.40 10.254.239.60/$range/" /etc/dhcp/dhcpd.conf
sed -i "/option broadcast-address/s/10.254.239.31/$now_way/" /etc/dhcp/dhcpd.conf
sed -i "/option routers/d" /etc/dhcp/dhcpd.conf
####################重启dhcp####################################
systemctl restart dhcpd
}
dns(){
###############检查dns是否已经安装#############################
rpm -q bind
if [ $? -eq 0 ]
then
	echo "dns已经安装"
else
	echo "准备安装dns"
	yum -y install bind &> /dev/null
	echo "安装完成"
fi	
#################修改DNS配置文件########################
read -p "请输入本地IP:" ip
sed -i "/listen-on/s/127.0.0.1/$ip/" /etc/named.conf
sed -i "/allow-query/s/localhost/any/" /etc/named.conf
#################修改区域配置文件#####################
read -p "请输入域名:" url
sed -i "/zone/s/localhost.localdomain/$url/" /etc/named.rfc1912.zones
sed -i "/file/s/named.localhost/$url\.zone/" /etc/named.rfc1912.zones
################写区域配置文件内容######################
cp  -p /var/named/named.localhost  /var/named/$url\.zone
sed -i "/IN SOA/s/@/$url/2" /var/named/$url\.zone
sed -i "/IN SOA/s/rname.invalid/$url/" /var/named/$url\.zone
sed -i "/NS/s/@/$url\./" /var/named/$url\.zone
sed -i "/A/s/127.0.0.1/$ip/" /var/named/$url\.zone
###############重启dns服务##############################
systemctl start named
}
disk(){
##############刷新磁盘分区##########################
echo "- - -" > /sys/class/scsi_host/host0/scan

echo "- - -" > /sys/class/scsi_host/host1/scan

echo "- - -" > /sys/class/scsi_host/host2/scan
#############查看有哪些盘#########################
ls /dev/sd*
read -p "选择分哪块磁盘(sd?):" dev
############查看目前磁盘分区情况###################
fdisk -l  /dev/$dev
############开始分区##############################
read -p "请写出分第几个区域:" num 
read -p "请写出分多大空间(M):" num1
fdisk /dev/$dev &> /dev/null  <<EOF
n
p
$num

+${num1}M
w 
EOF
partprobe &> /dev/null
############格式化################################
read -p "是否需要自动格式化和挂载(y/n):" j
if [ $j == y ]
then
mkfs.xfs /dev/${dev}$num &> /dev/null
mkdir /mnt/${dev}$num
mount /dev/${dev}$num /mnt/${dev}$num
############自动挂载#############################
echo "/dev/${dev}$num /mnt/${dev}$num xfs defaults 0 0"  >> /etc/fstab 
mount -a
fi
read -p "是否继续进行分区(y/n):" i
if [ $i == y ]
then
	disk
else
	echo "完成"
fi
}
lvm(){
read -p "是否需要进行分区(y/n):" num
if [ $num == y ]
then 
echo "配置lvm建议不要格式化和挂载!!"
disk
fi
read -p "需要添加的盘(填写绝对路径):" dev
pvcreate $dev
read -p "请给予卷组名:" name
vgcreate $name $dev
read -p "请给予卷组的大小(M):" big
read -p "请给予逻辑卷的名字:" name1
lvcreate -L ${big}M -n $name1 $name
mkfs.xfs /dev/$name/$name1 &> /dev/null 
mkdir   /mnt/$name1
mount /dev/$name/$name1 /mnt/$name1 
echo "/dev/$name/$name1 /mnt/$name/$name1 xfs defaults 0 0"  >> /etc/fstab
lsblk
}
raid(){
#############安装软件############
echo "正在安装mdadm软件"
yum -y install mdadm &> /dev/null
echo "安装完成"
#############是否需要分区###############
echo "配置raid建议不要格式化和挂载!!"
read -p "是否需要进行分区(y/n):" num
if [ $num == y ]
then 
echo "配置lvm建议不要挂载!!"
disk
fi
###########开始创建raid################
read -p "创建raid[0|1|5]:" num
read -p "创建几块盘:" num1
read -p "需要添加的盘(填写绝对路径):" dev
mdadm -Cv /dev/md$num -l $num -n $num1 $dev 
mkfs.xfs /dev/md$num
mkdir /mnt/md$num
mount /dev/md$num /mnt/md$num
echo "/dev/md$num /mnt/md$num xfs defaults 0 0"  >> /etc/fstab
mdadm -D /dev/md$num
}
pxe(){
####################PXE一键部署#####################
#关闭防火墙及核心防护
systemctl stop firewalld
setenforce 0
#复制网卡信息
yuanip=`cat /etc/sysconfig/network-scripts/ifcfg-ens33 |grep 'IPADDR' |awk -F"=" '{print $2}'`
read -p "请输入要修改得网卡ip: " ip
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens37
#修改网卡配置文件
sed -i "s/ens33/ens37/" /etc/sysconfig/network-scripts/ifcfg-ens37
sed -i "/IPADDR/s/$yuanip/$ip/" /etc/sysconfig/network-scripts/ifcfg-ens37
sed -i "/GATEWAY/s/^/#/" /etc/sysconfig/network-scripts/ifcfg-ens37
#重启网卡
systemctl restart network
#安装部署PXE所需得软件包
ping -c 2 -i 0.5 www.baidu.com &> /dev/null
if [ $? -eq 0 ];then
yum -y install dhcp tftp-server xinetd syslinux vsftpd
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf <<EOF
y
EOF
#配置DHCP服务
read -p "请输入配置的网段: " wd
read -p "请输入地址池的左区间: " zqj
read -p "请输入地址池的右区间: " yqj
echo "
ddns-update-style none;
subnet $wd netmask 255.255.255.0{
range $zqj $yqj;
option routers $ip;
option domain-name-servers 114.114.114.114;
next-server $ip;
filename \"pxelinux.0\";
}" >> /etc/dhcp/dhcpd.conf
#修改TFTP服务配置文件
sed -i '/diszble/s/yes/no/' /etc/xinetd.d/tftp
#挂载镜像,将初始化镜像文件和内核文件复制到TFTP目录下
mount /dev/cdrom/ /mnt
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
#准备PXE引导镜像文件pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
#配置启动菜单文件
mkdir /var/lib/tftpboot/pxelinux.cfg
touch /var/lib/tftpboot/pxelinux.cfg/default
#手工配置defaule菜单
echo "
default auto
prompt 0
label auto
	kernel vmlinuz
	append initrd=initrd.img method=ftp://$ip/centos7 ks=ftp://$ip/ks.cfg

label linux text
	kernel vmlinuz
	append text initrd=initrd.img method=ftp://$ip/centos7 ks=ftp://$ip/ks.cfg

label linux rescue
	kernel vmlinuz
	append rescue initrd=initrd.img method=ftp://$ip/centos7 ks=ftp://$ip/ks.cfg" >> /var/lib/tftpboot/pxelinux.cfg/default
#安装FTP服务
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7
#安装Kickstart无人值守
yum -y install system-config-kickstart
#启动服务
systemctl start dhcpd tftp xinetd vsftpd
else
echo "网络出现问题,无法下一步"
fi
}
case $i in
1)
	dhcp
;;
2)
	dns
;;
3)
	disk
;;
4)
	lvm
;;
5)
	raid
;;
6)
	pxe
;;
esac

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值