设为首页 收藏本站
查看: 811|回复: 3

[经验分享] ip搭建服务器

[复制链接]
累计签到:5 天
连续签到:1 天
发表于 2017-8-2 15:31:28 | 显示全部楼层 |阅读模式
#!/bin/bash
cat << EOF
# 作者:Mr.ning
# 作者邮箱:785319662@qq.com
# 脚本版本号:0.0.1
# 脚本作用:自动完成YUM源搭建、静态IP修改、kickstart批量部署环境搭建、root密码自动修改等功能!
# 脚本使用方法:下载本脚本后,先给予该脚本执行权限,然后使用“./ks.sh”即可开启(必须在脚本当前目录使用该命令)
# 脚本发布日期: 2017年2月18日
# 如有更好的介意请联系本脚本作者!
EOF

# 环境变量设置:
ETH=`ifconfig |grep eth|cut -d " " -f1`
IP=`ifconfig $ETH|grep Bcast|cut -d ":" -f2|cut -d " " -f1`
IP1=`ifconfig $ETH|grep Bcast|cut -d ":" -f2|cut -d " " -f1|cut -d "." -f1,2,3`
ipfile=/etc/sysconfig/network-scripts/ifcfg-$ETH
MOS=`cat $ipfile|grep BOOTPROTO|cut -d "=" -f2`


#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

# kickstart批量部署环境搭建

kickstart () {

# 判断目录是否存在,不存在则创建!
yumdir=/yum
if [ -e $yumdir ];then
        if [ ! -d $yumdir ];then
                rm -rf $yumdir
                mkdir $yumdir -p
        fi
else
        mkdir $yumdir -p
fi

# 挂载镜像文件!
MOUNT () {
umount $yumdir &>/dev/null
read -p "请输入IOS镜像文件路径:" iso
mount $iso $yumdir -o loop &>/dev/null
if [ $? != 0 ];then
        echo "路径错误,请重新尝试!"
        MOUNT
fi
}
MOUNT

# 创建NFS共享目录!
nfsdir=/etc/exports
echo "/yum *(ro)" >$nfsdir

# 刷新nfs服务,使共享目录生效!
exportfs -arv

# 配置tftp服务器
rpm -aq |grep tftp &>/dev/null
if [ $? != 0 ];then
        echo "tftp服务安装中!"
         yum install -y tftp-server &>/dev/null
        sleep 2
        echo "tftp安装完成!"
fi

#**********************************************************************
TFTP () {
cat << EOF
service tftp
        {
                socket_type             = dgram
                protocol                = udp
                wait                    = yes
                user                    = root
                server                  = /usr/sbin/in.tftpd
                server_args             = -t -s -v /var/lib/tftpboot
                disable                 = no  
                per_source              = 11
                cps                     = 100 2
                flags                   = IPv4
        }       
EOF
}
TFTP >/etc/xinetd.d/tftp
#*********************************************************************

/etc/init.d/xinetd restart

netstat -ntlup |grep :69 &>/dev/null
if [ $? == 0 ];then
        echo "tftp服务已正常启动!"
        sleep 2
else
        echo "tftp服务启动失败,请检查配置文件!!!"
fi

# 配置pxe启动文件
rpm -qa |grep syslinux &>/dev/null
if [ $? != 0 ];then
        echo “syslinux服务安装中!”
        yum install -y syslinux &>/dev/null
        echo "syslinux安装完成!"
fi

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /yum/isolinux/* /var/lib/tftpboot/
CFG=/var/lib/tftpboot/pxelinux.cfg
if [ ! -e $CFG ];then
        if [ ! -d $CFG ];then
                rm -rf $CFG
                mkdir -p $CFG
        fi
else
        mkdir -p $CFG
fi
cp /yum/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

#******************************************************************
default () {
cat << EOF
default CentOS
prompt 1
timeout 3

display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.5!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label CentOS
          menu label ^CentOS release 6.5 (Final)
          kernel vmlinuz
          append initrd=initrd.img ks=nfs:${IP}:/ks/ks.cfg
EOF
}
default >/var/lib/tftpboot/pxelinux.cfg/default

#******************************************************************

# 使用nfs共享ks.cfg
read -p  "请输入swap分区大小(单位MB):" SWAP
ksdir=/ks
if [ -e $ksdir ];then
        if [ ! -d $ksdir ];then
                rm -rf $ksdir
                mkdir $ksdir -p
        fi
else
        mkdir $ksdir -p
fi
KS () {
cat << EOF
#platform=x86, AMD64, 鎴Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use NFS installation media
nfs --server=${IP} --dir=/yum
# Root password
rootpw --iscrypted $1$cjx1RvlK$/qYWNdhfUQIo8oX2aHJBW0
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# System keyboard
keyboard us
# System language
lang zh_CN
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone --isUtc Asia/Shanghai
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=yes
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --asprimary --fstype="ext4" --size=200
part swap --asprimary --fstype="swap" --size=$SWAP
part / --asprimary --fstype="ext4" --grow --size=1

%packages
@additional-devel
@basic-desktop
@chinese-support
@debugging
@desktop-debugging
@desktop-platform
@desktop-platform-devel
@development
@dial-up
@directory-server
@eclipse
@emacs
@fonts
@general-desktop
@graphical-admin-tools
@graphics
@hardware-monitoring
@input-methods
@internet-applications
@internet-browser
@legacy-unix
@legacy-x
@mail-server
@network-file-system-client
@network-server
@network-tools
@office-suite
@performance
@remote-desktop-clients
@server-platform
@server-platform-devel
@storage-server
@system-admin-tools
@technical-writing
@tex
@virtualization
@virtualization-client
@virtualization-platform
@virtualization-tools
@x11

%end
EOF
}
KS >/$ksdir/ks.cfg

echo "/ks *(ro)" >>/etc/exports
exportfs -arv

# 搭建DHCP服务器
rpm -qa |grep dhcp &>/dev/null
if [ $? != 0 ];then
        echo "dhcp服务安装中!"
        yum install -y dhcp* &>/dev/null
        echo "dhcp服务安装完成!"
fi

cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

#******************************************************
DHCP () {
cat << EOF
log-facility local7;

        #以下配置是支持pxe启动的配置
        next-server ${IP};               
        filename "/var/lib/tftpboot/pxelinux.0";
        allow bootp;                       
        allow booting;

        subnet ${IP1}.0 netmask 255.255.255.0 {       
          range ${IP1}.50 ${IP1}.100;
          option domain-name-servers ${IP};
          option routers ${IP1}.1;
          option broadcast-address ${IP1}.255;
          default-lease-time 600;
          max-lease-time 7200;
        }
EOF
}
DHCP >/etc/dhcp/dhcpd.conf
#*****************************************************

/etc/init.d/dhcpd restart &>/dev/null
if [ $? != 0 ];then
        echo "dhcp服务错误!请检查配置文件!"
        exit 2
fi
service xinetd restart &>/dev/null
if [ $? != 0 ];then
        echo "lftp服务错误!请检查配置文件!"
        exit 2
fi
service nfs restart &>/dev/null
if [ $? != 0 ];then
        echo "nfs服务错误!请检查配置文件!"
        exit 2
else
        echo "环境搭建完成,请测试!"
fi

}

#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

# yum源配置部分

YUM () {
dir=/etc/yum.repos.d/
file=/etc/yum.repos.d/local.repo
yumdir=/yum

if [ -e $yumdir ];then
        if [ ! -d $yumdir ];then
                rm -rf $yumdir
                mkdir $yumdir -p
        else
                umount $yumdir
        fi
else
        mkdir $yumdir -p
fi

read -p "请输入iso镜像文件路径:" iso
mount $iso $yumdir  -o loop &>/dev/null
if [ $? != 0 ];then
        echo "iso文件错误,请确认路径是否错误或文件是否存在!"
        sh $0
fi

rm -rf ${dir}*

FILE () {
cat << EOF
[local.yum]
name=local-yum
baseurl=file:///yum
enabled=1
gpgcheck=0
EOF
}

FILE >$file

yum clean all &>/dev/null
yum list &>/dev/null

if [ $? != 0 ];then
        echo "yum源配置失败,请检查配置文件!"
else
        echo "yum源配置完成!"
fi

        }



#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%




# 配置静态IP部分
IP () {
dhcp () {
cat << EOF
DEVICE=$ETH
BOOTPROTO=dhcp
ONBOOT=yes
EOF
}

dhcp >$ipfile

abcd () {
clear
echo "IP获取中,请稍后."
sleep 0.5
clear
echo "IP获取中,请稍后.."
sleep 0.5
clear
echo "IP获取中,请稍后..."
sleep 0.5
clear
}
for i in `seq 3`
do
        abcd
done

service network restart >/dev/null

IP=`ifconfig $ETH|grep Bcast|cut -d ":" -f2|cut -d " " -f1`

BBB () {
MOS=`cat $ipfile|grep BOOTPROTO|cut -d "=" -f2`
echo "你目前的IP获取方式为${MOS}!"
echo "IP地址为${IP}"
read -p "是否要将其设置为静态IP模式?(yes/no)" i
case $i in
        yes)
BOOT () {
        cat << EOF
DEVICE=$ETH
BOOTPROTO=none
IPV6INIT=no
NM_CONTROLLED=no
ONBOOT=yes
IPADDR=$IP
NETMASK=255.255.255.0
GATEWAY=${IP1}.1
DNS1=${IP1}.1
DNS2=8.8.8.8
EOF
}

BOOT >$ipfile
bcd () {
clear
echo "模式替换中,请稍后."
sleep 0.5
clear
echo "模式替换中,请稍后.."
sleep 0.5
clear
echo "模式替换中,请稍后..."
sleep 0.5
clear
}
for i in `seq 3`
do
        bcd
done

service network restart >/dev/null
echo "静态IP模式修改完成!"
echo "你的静态IP地址为:$IP"
read -p "是否留在该脚本?(y/n)" a
ABC () {
case $a in
        y) clear  
        sh $0
        ;;
        n)  echo "感谢您的使用,再见!"
            exit
        ;;
        *) echo "输入有误,请重新输入!"
                ABC
        ;;
esac
}
ABC
        ;;
        no) echo "当前IP获取方式为dhcp!"
                echo "感谢您的使用,再见!"
                exit
        ;;
        *)  echo "输入有误,请重新输入!"
                BBB
        ;;
esac
}

BBB
}

cat << EOF
1.kickstart
2.yum
3.ip
EOF

read -p "请输入编号:" num
case $num in
        1) kickstart
        ;;
        2) YUM
        ;;
        3) IP
        ;;
        *) echo "输入有误,请重新输入!"
           sh $0
        ;;
esac



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-402666-1-1.html 上篇帖子: bond做法 下篇帖子: system-config-kickstart字体显示方框,求助,急!!
累计签到:16 天
连续签到:1 天
发表于 2017-8-2 17:37:41 | 显示全部楼层
非常的好,好到非常啊

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

累计签到:30 天
连续签到:1 天
发表于 2017-8-3 16:45:04 | 显示全部楼层
到FTP哪里,如果楼主可以排版更好看点就好了

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表