基于 centos7.6 的脚本, centos7 应该都是适用的, 执行脚本前提保持能正常访问公网, 能正常使用 yum 安装软件
示例 ks 配置文件 centos7.6ks.cfg 默认清空磁盘 sda 的 mbr 以及所有分区, 需要注意
可以根据 ks 配置模板, 自定义添加删除软件包, 调整分区大小, 添加自定义命令等
- #!/bin/bash
- #====================================================
- # Author: Mr.Song
- # Create Date: 2019-10-11
- # Description: auto install config cobbler
- #====================================================
- ##########################################
- #wanning!!!! ks config file default clear sda mbr and all partition!!!!!
- #wanning!!!! ks config file default clear sda mbr and all partition!!!!!
- #wanning!!!! ks config file default clear sda mbr and all partition!!!!!
- ##########################################
- #cobbler web url:https://SERVER_IP/cobbler_web
- #cobbler Web user/pass:cobbler/cobbler
- set -x
- systemctl stop firewalld&& systemctl disable firewalld
- setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
- yum install -y epel-release ||'echo"install epel yum error,please check network or yum config"&&exit 1'
- yum -y install cobbler dhcp httpd xinetd tftp-server syslinux pykickstart rsync cobbler-Web debmirror pykickstart fence-agents || 'echo"install cobbler error,please check network or yum config"&&exit 1'
- systemctl restart httpd xinetd rsyncd && systemctl enable httpd xinetd rsyncd dhcpd
- SERVER_IP=`ifconfig | grep broadcast | grep -v 172 | awk -F""'{print $2}'`
- SERVER_NET_ADDR=`echo $SERVER_IP | awk -F"." '{print $1,$2,$3}'|sed 's/[[:space:]]/./g'`
- sed -ri "s/^(manage_dhcp: ).*/\11/" /etc/cobbler/settings
- sed -ri "s/^(next_server: ).*/\1$SERVER_IP/" /etc/cobbler/settings
- sed -ri "s/^(server: ).*/\1$SERVER_IP/" /etc/cobbler/settings
- sed -ri "/disable/s/yes/no/" /etc/xinetd.d/tftp
- sed -ri "s#192.168.1#$SERVER_NET_ADDR#g;/option routers/s#192.168.10.5#$SERVER_IP#;/option domain-name-servers/s#192.168.10.1#$SERVER_IP#;/next-server/s#\$next_server#$SERVER_IP#" /etc/cobbler/dhcp.template
- #COBBLER_PASS=`openssl passwd -1 -salt 'test' '111111'`
- #sed -ri "s/^(default_password_crypted: ).*/\1"$COBBLER_PASS"/" /etc/cobbler/settings
- systemctl enable cobblerd && systemctl restart cobblerd
- if [ $? -ne 0 ];then
- echo "cobbler service error,please check log error"
- exit 1
- fi
- sleep 3
- cobbler get-loaders ||'echo"get sample file fail,please check config"&&exit 1'
- sed -i '/@dists="sid";/s/^/#/;/@arches="i386";/s/^/#/' /etc/debmirror.conf
- cobbler sync
- systemctl restart cobblerd
- cat> /var/lib/cobbler/kickstarts/centos7.6ks.cfg <<- 'EOF'
- #version=DEVEL
- # System authorization information
- auth --enableshadow --passalgo=sha512
- # Use CDROM installation media
- #url --url=http://192.168.10.11/cblr/links/CentOS-7.6-x86_64
- url --url=$tree
- # Use text install
- text
- firewall --disabled
- selinux --disabled
- # Run the Setup Agent on first boot
- firstboot --enable
- ignoredisk --only-use=sda
- # Keyboard layouts
- keyboard --vckeymap=us --xlayouts='us'
- # System language
- lang en_US.UTF-8
- # Network information
- #network --bootproto=dhcp --device=ens33 --onboot=yes --ipv6=auto --no-activate
- network --bootproto=dhcp --device=ens33 --onboot=yes
- network --hostname=localhost.localdomain
- # Root password
- #rootpw --iscrypted $6$zXlxIRJdARN9vxNF$2y3Y7g3MkPjIXCEEtP1f9ybId5bTMzhjXAEewgEqdfjv2pagfChjkyzkzXdFWtYwSw6gAgb6VrD3ZF/bQJVRL.
- rootpw 111111
- # System services
- services --disabled="chronyd"
- # System timezone
- timezone Asia/Shanghai --isUtc --nontp
- # System bootloader configuration
- bootloader --append="crashkernel=auto" --location=mbr --boot-drive=sda
- #autopart --type=lvm
- zerombr
- part /boot/efi --fstype="efi" --ondisk=sda --size=512 --fsoptions="defaults,uid=0,gid=0,umask=0077,shortname=winnt"
- #part /App --fstype="xfs" --size=1024
- part swap --fstype="swap" --size=4096 --ondisk=sda
- part / --fstype="xfs" --size=1 --grow --ondisk=sda
- #part /boot --fstype="ext4" --size=500
- # Partition clearing information
- clearpart --all --initlabel
- #clearpart --none --initlabel
- #reboot after install system
- reboot
- %packages
- @^minimal
- @core
- wget
- rsync
- screen
- dos2unix
- telnet
- lrzsz
- sysstat
- VIM
- nano
- gcc
- chrony
- bash-completion
- net-tools
- psmisc
- tree
- dmidecode
- kexec-tools
- %end
- %post
- #rm -f /etc/yum.repos.d/*.repo
- #wget $tree
- #mkdir -p /mnt/iso/centos7.6
- #rsync $tree/*/mnt/iso/centos7.6
- %end
- EOF
- ##########################################
- #step1 : mount iso
- #mkdir -p /mnt/iso/CentOS/7.6 &&mount /dev/cdrom /mnt/iso/CentOS/7.6
- #step2: import iso (cobblerd service must be normal running)
- #cobbler import --path=/mnt/iso/CentOS/7.6 --name=CentOS7.6-x86_64 --arch=x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.6ks.cfg
- #step3:sync data and start dhcpd
- #cobbler sync && systemctl restart dhcpd xinetd httpd cobblerd
- #step4:start VM or physical machine and start pxe install system
- #cobbler help
- #list system iso command:cobbler list
- #change iso ks config:cobbler profile edit --name=CentOS7.6-x86_64 --kickstart=/var/lib/cobbler/sample_end.ks
来源: http://www.bubuko.com/infodetail-3265666.html