kickstart_示例

kickstart 示例

 

001#platform=x86, AMD64, or Intel EM64T
002# System authorization information
003auth  --useshadow  --enablemd5
004# System bootloader configuration
005bootloader --location=mbr
006# Partition clearing information
007clearpart --all --initlabel
008# Use text mode install
009text
010# Firewall configuration
011firewall --enabled --http --ssh --port=123:udp
012# Run the Setup Agent on first boot
013firstboot --disable
014# System keyboard
015keyboard us
016# System language
017lang en_US.UTF-8 --addsupport=zh_CN.UTF-8
018# Use network installation
019url --url=http://192.168.211.50/cblr/links/centos7mini-x86_64
020# If any cobbler repo definitions were referenced in the kickstart profile, include them here.
021repo --name=source-1 --baseurl=http://192.168.211.50/cobbler/ks_mirror/centos7mini-x86_64
022 
023# Network information
024# # Using "new" style networking config, by matching networking information to the physical interface's
025# MAC-address
026# %include /tmp/pre_install_network_config
027 
028network  --bootproto=dhcp --device=eth0 --onboot=on --ipv6=auto
029# --device=eth0 由于网卡的名字可能是eth0、em1、eno16777736等,--device制定的与目标机器网卡不一致时,会报错无法启动,顾不指定--device
030# network --bootproto=static --ip=192.168.100.52 --netmask=255.255.255.0 --gateway=192.168.100.1 --nameserver=223.5.5.5,223.6.6.6 --onboot=on --ipv6=auto
031# network --bootproto=dhcp --onboot=on --noipv6
032# network --device team0 --activate --bootproto=static --ip=10.34.102.222 --netmask=255.255.255.0 --gateway=10.34.102.254 --nameserver=10.34.39.2 -teamslaves="p3p1'{\"prio\": -10, \"sticky\": true}',p3p2'{\"prio\": 100}'" --teamconfig="{\"runner\": {\"name\": \"activebackup\"}}"
033 
034# Reboot after installation
035reboot
036 
037#Root password
038rootpw --iscrypted $1$allgo$sjkKoGvJXV2AuBNFeHyxP.
039 
040# 加密密码生成
041# 格式 openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'
042# 其中 random-phrase-here 为干扰码
043 
044#add user
045# user --name=<username> [--groups=<list>] [--homedir=<homedir>] [--password=<password>] [--iscrypted] [--shell=<shell>] [--uid=<uid>]
046user --name="centos" --password="$1$allgo$sjkKoGvJXV2AuBNFeHyxP." --iscrypted --uid=1000
047 
048# SELinux configuration
049selinux --disabled
050# Do not configure the X Window System
051skipx
052# System timezone
053# timezone  Asia/Shanghai
054timezone --ntpservers=110.75.186.247,cn.ntp.org.cn Asia/Shanghai
055# --nontp Disable automatic starting of NTP service
056 
057# Install OS instead of upgrade
058install
059# Clear the Master Boot Record
060zerombr
061# Allow anaconda to partition the system as needed
062# autopart
063 
064# CentOS6 不支持xfs
065# part / --asprimary --fstype="ext4" --size=20480
066# part /boot --asprimary --fstype="ext4" --size=512
067# part swap --asprimary --fstype="swap" --size=2048
068# part /data --asprimary --fstype="ext4" --grow --size=1
069 
070 
071# CentOS7 支持xfs
072# part / --asprimary --fstype="xfs" --size=20480
073# part /boot --asprimary --fstype="xfs" --size=512
074# part swap --asprimary --fstype="swap" --size=2048
075# part /data --asprimary --fstype="xfs" --grow --size=1
076 
077# CentOS7 使用LVM分区
078part /boot --fstype="xfs" --size=1024
079part swap --fstype="swap" --size=2048
080part pv.01 --size=1 --grow
081volgroup centos pv.01
082logvol  / --fstype="xfs" --vgname=centos  --size=10240  --name=root
083logvol  /data  --fstype="xfs" --vgname=centos  --size=1  --grow  --name=data
084 
085 
086# %pre部分脚本(系统安装前执行)系统在解析 ks.cfg 文件之后立即运行,而且必须以 %pre 命令开头。注意,你在 %pre 部分可以访问网络;然而,名称服务(name service)在此时还没有被配置,因此只有 IP 地址才能奏效。
087%pre
088set -x -v
089exec 1>/tmp/ks-pre.log 2>&1
090 
091# Once root's homedir is there, copy over the log.
092while : ; do
093    sleep 10
094    if [ -d /mnt/sysimage/root ]; then
095        cp /tmp/ks-pre.log /mnt/sysimage/root/
096        logger "Copied %pre section log to system"
097        break
098    fi
099done &
100 
101 
103# Start pre_install_network_config generated code
104# generic functions to be used later for discovering NICs
105mac_exists() {
106  [ -z "$1" ] && return 1
107 
108  if which ip 2>/dev/null >/dev/null; then
109    ip -o link | grep -i "$1" 2>/dev/null >/dev/null
110    return $?
111  elif which esxcfg-nics 2>/dev/null >/dev/null; then
112    esxcfg-nics -l | grep -i "$1" 2>/dev/null >/dev/null
113    return $?
114  else
115    ifconfig -a | grep -i "$1" 2>/dev/null >/dev/null
116    return $?
117  fi
118}
119get_ifname() {
120  if which ip 2>/dev/null >/dev/null; then
121    IFNAME=$(ip -o link | grep -i "$1" | sed -e 's/^[0-9]*: //' -e 's/:.*//')
122  elif which esxcfg-nics 2>/dev/null >/dev/null; then
123    IFNAME=$(esxcfg-nics -l | grep -i "$1" | cut -d " " -f 1)
124  else
125    IFNAME=$(ifconfig -a | grep -i "$1" | cut -d " " -f 1)
126    if [ -z $IFNAME ]; then
127      IFNAME=$(ifconfig -a | grep -i -B 2 "$1" | sed -n '/flags/s/:.*$//p')
128    fi
129  fi
130}
131 
132# Start of code to match cobbler system interfaces to physical interfaces by their mac addresses
133#  Start eno16777736
134# Configuring eno16777736 (00:0C:29:48:30:63)
135if mac_exists 00:0C:29:48:30:63
136then
137  get_ifname 00:0C:29:48:30:63
138  echo "network --device=$IFNAME --bootproto=static --ip=192.168.211.11 --netmask=255.255.255.0 --gateway=192.168.211.1 --hostname=test.mydomain.com" >> /tmp/pre_install_network_config
139fi
140# End pre_install_network_config generated code
141 
142# Enable installation monitoring
143 
144%end
145 
146# %packages 指令也支持下面的选项:
147# --nobase,不要安装@Base 组.如果想创建一个很小的系统,可以使用这个选项.
148# --resolvedeps,选项已经被取消了.目前依赖关系可以自动地被解析.
149# --ignoredeps,选项已经被取消了.目前依赖关系可以自动地被解析.
150# --ignoremissing,忽略缺少的软件包或软件包组,而不是暂停安装来向用户询问是中止还是继续安装.
151# 例如:%packages --ignoremissing
152%packages --ignoremissing --nobase
153@Core
154vim
155wget
156%end
157 
158# %post部分脚本系统安装后执行, DHCP配置网络没有配置dns服务器
159%post --nochroot
160set -x -v
161exec 1>/mnt/sysimage/root/ks-post-nochroot.log 2>&1
162 
163%end
164 
165%post
166set -x -v
167exec 1>/root/ks-post.log 2>&1
168 
169# Start yum configuration
170# curl "http://192.168.211.50/cblr/svc/op/yum/system/test" --output /etc/yum.repos.d/cobbler-config.repo
171 
172# End yum configuration
173 
174 
175 
176# Start post_install_network_config generated code
177 
178# create a working directory for interface scripts
179mkdir /etc/sysconfig/network-scripts/cobbler
180cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/cobbler/
181 
182# set the gateway in the network configuration file
183grep -v GATEWAY /etc/sysconfig/network > /etc/sysconfig/network.cobbler
184echo "GATEWAY=192.168.211.1" >> /etc/sysconfig/network.cobbler
185rm -f /etc/sysconfig/network
186mv /etc/sysconfig/network.cobbler /etc/sysconfig/network
187 
188# set the hostname in the network configuration file
189grep -v HOSTNAME /etc/sysconfig/network > /etc/sysconfig/network.cobbler
190echo "HOSTNAME=test.mydomain.com" >> /etc/sysconfig/network.cobbler
191rm -f /etc/sysconfig/network
192mv /etc/sysconfig/network.cobbler /etc/sysconfig/network
193 
194# Also set the hostname now, some applications require it
195# (e.g.: if we're connecting to Puppet before a reboot).
196/bin/hostname test.mydomain.com
197 
198# Start configuration for eno16777736
199echo "DEVICE=eno16777736" > /etc/sysconfig/network-scripts/cobbler/ifcfg-eno16777736
200echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/cobbler/ifcfg-eno16777736
201echo "HWADDR=00:0C:29:48:30:63" >> /etc/sysconfig/network-scripts/cobbler/ifcfg-eno16777736
202IFNAME=$(ip -o link | grep -i '00:0C:29:48:30:63' | sed -e 's/^[0-9]*: //' -e 's/:.*//')
203if [ -f "/etc/modprobe.conf" ] && [ $IFNAME ]; then
204    grep $IFNAME /etc/modprobe.conf | sed "s/$IFNAME/eno16777736/" >> /etc/modprobe.conf.cobbler
205    grep -v $IFNAME /etc/modprobe.conf >> /etc/modprobe.conf.new
206    rm -f /etc/modprobe.conf
207    mv /etc/modprobe.conf.new /etc/modprobe.conf
208fi
209echo "TYPE=Ethernet" >> /etc/sysconfig/network-scripts/cobbler/ifcfg-eno16777736
210echo "BOOTPROTO=none" >> /etc/sysconfig/network-scripts/cobbler/ifcfg-eno16777736
211echo "IPADDR=192.168.211.11" >> /etc/sysconfig/network-scripts/cobbler/ifcfg-eno16777736
212echo "NETMASK=255.255.255.0" >> /etc/sysconfig/network-scripts/cobbler/ifcfg-eno16777736
213# End configuration for eno16777736
214 
215sed -i 's/ONBOOT=yes/ONBOOT=no/g' /etc/sysconfig/network-scripts/ifcfg-eth*
216 
217rm -f /etc/sysconfig/network-scripts/ifcfg-eno16777736
218mv /etc/sysconfig/network-scripts/cobbler/* /etc/sysconfig/network-scripts/
219rm -r /etc/sysconfig/network-scripts/cobbler
220if [ -f "/etc/modprobe.conf" ]; then
221cat /etc/modprobe.conf.cobbler >> /etc/modprobe.conf
222rm -f /etc/modprobe.conf.cobbler
223fi
224# End post_install_network_config generated code
225 
226 
227 
228 
229# Start download cobbler managed config files (if applicable)
230# End download cobbler managed config files (if applicable)
231 
232# Start koan environment setup
233echo "export COBBLER_SERVER=192.168.211.50" > /etc/profile.d/cobbler.sh
234echo "setenv COBBLER_SERVER 192.168.211.50" > /etc/profile.d/cobbler.csh
235# End koan environment setup
236 
237# begin Red Hat management server registration
238# not configured to register to any Red Hat management server (ok)
239# end Red Hat management server registration
240 
241# Begin cobbler registration
242# skipping for system-based installation
243# End cobbler registration
244 
245# Enable post-install boot notification
246 
247# Start final steps
248 
251# End final steps
252%end

 

 

 

发表回复