基于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
原文地址:https://blog.51cto.com/8460152/2446450
时间: 2024-11-08 20:29:14