#!/bin/bash ############################################################ # $Name: install_cobbler.sh # $Version: v1.0 # $Functions: # ***** Please decompression this scripts in /tmp/ ***** # 1 Online_cobbler_repo # Provide Online repo of install cobbler # 2 install_local_yum # Provide local install cobbler service # 3 install_cobbler # Cobbler service provide Intranet server yum install rmps # 4 Import_CentOS_images # Import CentOS images USGE: Import_CentOS_images 7 or 6 # 5 creat_http_download # Cobbler service provide Intranet server download # 6 print_log # Print log in /tmp/install_cobbler.log USGE: print_log "$RETVAL" "description" # # $Author: Jeson Li # $organization: www.lzbbg.cn # $Create Date: 2017-03-10 # $Mail: libobin@tom.com # $Description: Install cobbler service script ############################################################ # do not run follow command: createrepo --update /var/www/cobbler/ks_mirror/CentOS-7-x86_64/ if [ -f /tmp/install_cobbler.lock ];then echo -e "${Red}[`date +%F_%T`] $0 is running now and exit${Rst}"|tee /tmp/install_cobbler.log exit 1 else touch /tmp/install_cobbler.lock fi PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin Tik="\e[5m";Red="\e[31m";Grn="\e[32m";Ylw="\e[33m";Blu="\e[34m";Pup="\e[35m";Rst="\e[0m" source /etc/rc.d/init.d/functions CentOS7_yum_path="/server/tools/CentOS7" loaders_path="/var/lib/cobbler" ### optimization_main ###################################################### source /tmp/scripts/system_optimization.lib [ $(ulimit -n) -lt 65535 -a -s /etc/issue ] && optimization_main ############################################################################ IP="`grep "$(hostname)" /etc/hosts|awk 'NR==1{print $1}'`" GW="${IP%.*}.2" ############################################################################ mkdir -p ${CentOS7_yum_path} $loaders_path $cobbler_provide_yum_path # Provide web download.lzbbg.cn download and yum install packets \mv /tmp/packets_tar ${CentOS7_yum_path} cd /tmp && tar czf installs.tar.gz scripts && mv installs.tar.gz scripts \cp -a /tmp/scripts ${CentOS7_yum_path} \mv /tmp/Templates ${CentOS7_yum_path} \mv /tmp/cobbler_install/install_yum_rpms ${CentOS7_yum_path} \mv /tmp/cobbler_install/install_cobbler_rpms ${CentOS7_yum_path} \mv /tmp/CentOS7_My_rpms ${CentOS7_yum_path} # Print log USGE: print_log "$RETVAL" "description" print_log(){ status_number=$1 description="$2" if [ ${status_number} -eq 0 ];then action "[$(date +%F_%T)] ${description}" /bin/true|tee -a /tmp/install_cobbler.log else action "[$(date +%F_%T)] ${description}" /bin/false|tee -a /tmp/install_cobbler.log rm -f /tmp/install_cobbler.lock exit 1 fi } install_local_yum(){ ls /server/tools/CentOS7/install_yum_rpms/*.rpm if [ $? -eq 0 ];then sum=0 while (( ${sum} < 1 )) do for n in $(ls ${CentOS7_yum_path}/install_yum_rpms/*.rpm) do rpm -i $n done sum=$(rpm -qa createrepo |wc -l) done createrepo -pdo $CentOS7_yum_path $CentOS7_yum_path #error# cd $CentOS7_yum_path && createrepo --update $CentOS7_yum_path RETVAL=$? cat > /etc/yum.repos.d/cobbler-config.repo <<-EOF [lzbbg] name=lzbbg baseurl=file://$CentOS7_yum_path enabled=1 gpgcheck=0 priority=1 EOF else echo -e "${Ylw}${CentOS7_yum_path}/install_yum_rpms not find createrepo rpms ...... ${Rst}" exit 3 fi } Online_cobbler_repo(){ grep "release 6" /etc/redhat-release if [ $? -eq 0 ];then rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm else rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm fi } Import_CentOS_images(){ while : do [ -d /var/www/cobbler/ks_mirror/CentOS-${1}* ] && break mount /dev/cdrom /mnt &>/dev/null ls /mnt/*CentOS-$1 if [ $? -eq 0 ];then cobbler import --path=/mnt/ --name=CentOS-$1-x86_64 --arch=x86_64 umount -lf /mnt/ &>/dev/null \mv /tmp/cobbler_install/CentOS-${1}-x86_64.cfg /var/lib/cobbler/kickstarts/ sed -ri".$(date +%F)" "/wget -O .*\.gz$/s#[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+#${IP}#g" /var/lib/cobbler/kickstarts/CentOS-${1}-x86_64.cfg cobbler profile edit --name=CentOS-${1}-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-${1}-x86_64.cfg [ ${1} -gt 6 ] && cobbler profile edit --name=CentOS-7-x86_64 --kopts='net.ifnames=0 biosdevname=0' break else echo -en "${Ylw}Please Load the CentOS-$1 image file ......${Rst}";read fi umount -lf /mnt/ &>/dev/null done RETVAL=$? print_log ${RETVAL} "Import_CentOS_images" } install_cobbler(){ if [ $RETVAL -eq 0 ] ;then yum install httpd cobbler cobbler-web pykickstart dhcp tftp xinetd -y \mv /etc/httpd/conf.d/{welcome.conf,welcome.conf.$(date +%F)} sed -i".$(date +%F)" 's#80$#81#g' /etc/httpd/conf/httpd.conf ss -lntup |grep ":81\b" &>/dev/null [ $? -eq 0 ] && { echo -e "${Ylw}port 81 already used ......${Rst}";exit 3 ; } systemctl enable rsyncd &>/dev/null # cobbler get-loaders # this is downloading https://cobbler.github.io/loaders \mv /tmp/cobbler_install/loaders $loaders_path rootpw=$(openssl passwd -1 -salt '123456' '123456') sed -i".$(date +%F)" '/disable/s/yes/no/' /etc/xinetd.d/tftp sed -i".$(date +%F)" " s@^server: .*@server: $IP@ s@^next_server: .*@next_server: $IP@ s@default_password_crypted: .*@default_password_crypted: \"$rootpw\"@ /manage_dhcp:/s@0@1@ s@^http_port: 80@http_port: 81@ " /etc/cobbler/settings sed -ri".$(date +%F)" " s@192\.168\.1\.@${GW%.*}\.@g s@(.*option routers[ ]*).*@\1$GW;@ s@(.*option domain-name-servers[ ]*).*@\1$GW;@ " /etc/cobbler/dhcp.template # Auto choose CentOS-7-x86_64 install system sed -i".$(date +%F)" 's#^DEFAULT .*#DEFAULT CentOS-7-x86_64#g' /etc/cobbler/pxe/pxedefault.template /sbin/httpd -k start /bin/systemctl start rsyncd.service /bin/systemctl start cobblerd.service #ctrl dhcpd and cobbler ctrl xinetd sleep 5 # Import_CentOS_images 6 Import_CentOS_images 7 cobbler sync # update cobbler modify all config sleep 10 ### Service boot from the startup ### chmod +x /etc/rc.d/rc.local echo -e "### Httpd boot from the startup date: $(date +%F) user: $(whoami)###\n/sbin/httpd -k start\n" >>/etc/rc.d/rc.local /bin/systemctl enable xinetd.service /bin/systemctl enable rsyncd.service /bin/systemctl enable cobblerd.service /bin/systemctl enable dhcpd.service cat >> /etc/yum.repos.d/cobbler-config.repo <<-EOF [core-0] name=core-0 baseurl=http://${IP}:81/cobbler/ks_mirror/CentOS-7-x86_64 enabled=1 gpgcheck=0 priority=1 EOF else echo -e "${Ylw}${CentOS7_yum_path}/install_cobbler_rpms not find cobbler rpms ...... ${Rst}" fi } creat_http_download(){ cat > /etc/httpd/conf.d/download.conf <<-EOF <Directory "/server/tools"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> <VirtualHost * > ServerAdmin 1270963692@qq.org DocumentRoot /server/tools ServerName download.lzbbg.cn ServerAlias $IP:81 ErrorLog "logs/download-error_log" </VirtualHost> EOF /sbin/httpd -k restart } cobbler_main(){ #Online_cobbler_repo #RETVAL=$? #print_log ${RETVAL} "Online_cobbler_repo" install_local_yum RETVAL=$? print_log ${RETVAL} "install_local_yum" install_cobbler RETVAL=$? print_log ${RETVAL} "install_cobbler" creat_http_download RETVAL=$? print_log ${RETVAL} "creat_http_download" rm -f /tmp/install_cobbler.lock print_log 0 "$0 Completed exit" } cobbler_main reboot
浙公网安备 33010602011771号