系统运维

在上面的实验中,我们没有进行任何的安装配置,全部都是Cobbler帮助我们完成的。可是在实际生产中,我们对每台主机的硬盘分区,安装的软件都有相应的要求,所以我们需要自己来定制KickStart文件,这样我们就能够定制地批量安装操作系统了。
我们就利用实验环境(CentOS 7)中的KickStart文件来定制我们自己的KickStart文件。

一、配置ks文件

Cobbler的ks文件存放位置

/var/lib/cobbler/kickstarts/

配置ks的方法

方法1、 每安装好一台Centos机器,Centos安装程序都会创建一个kickstart配置文件,记录你的真实安装配置。如果你希望实现和某系统类似的安装,可以基于该系统的kickstart配置文件来生成你自己的kickstart配置文件。(生成的文件名字叫anaconda-ks.cfg位于/root/anaconda-ks.cfg)
方法2、Centos提供了一个图形化的kickstart配置工具。在任何一个安装好的Linux系统上运行该工具,就可以很容易地创建你自己的kickstart配置文件。kickstart配置工具命令为redhat-config-kickstart(RHEL3)或system-config-kickstart(RHEL5/6/7)​
方法3、按照格式自定义一个.cfg文件(方法1不可用的情况下)

ks文件说明

kickstart文件是一个简单的文本文件,它包含了一个项目列表,每个项目由一个关键字来识别。

firewall(可选)

这个选项对应安装程序里的「防火墙配置」屏幕:
firewall –enabled|–disabled [–trust=] [–port=]

graphical(可选)

在图形模式下执行kickstart安装.kickstart安装默认在图形模式下安装.text文本安装。

network(可选)

为系统配置网络信息.如果 kickstart安装不要求联网(换句话说,不从NFS,HTTP或FTP安装),就不需要为系统配置网络.如果安装要求联网而kickstart文件 里没有提供网络信息,安装程序会假定从eth0通过动态IP地址(BOOTP/DHCP)来安装,并配置安装完的系统动态决定IP地址.network选 项为通过网络的kickstart安装以及所安装的系统配置联网信息.
    –ip=,要安装的机器的IP地址.
    –gateway=,IP地址格式的默认网关.
    –nameserver=,主名称服务器,IP地址格式.
    –nodns,不要配置任何 DNS 服务器.
    –netmask=,安装的系统的子网掩码.
    –hostname=,安装的系统的主机名.
    –ethtool=,指定传给ethtool程序的网络设备的其他底层设置.
    –essid=,无线网络的网络ID.
    –wepkey=,无线网络的加密密钥.
    –onboot=,是否在引导时启用该设备.
    –class=,DHCP类型.
    –mtu=,该设备的MTU.
    –noipv4=,禁用此设备的IPv4.
    –noipv6=,禁用此设备的IPv6

multipath(可选)

multipath –name= –device= –rule=part或partition(对于安装是必需的,升级可忽略). 在系统上创建分区. 如果不同分区里有多个红帽企业Linux系统,安装程序会提示用户升级哪个系统.
 注意:作为安装过程的一部分,所有被创建的分区都会被格式化,除非使用了–noformat和–onpart.,如果是分区的挂载点,它必须是下列形式中的一种:
/ ,例如,/,/usr,/home
swap,该分区被用作交换空间,要自动决定交换分区的大小,使用–recommended选项.
swap –recommended
自动生成的交换分区的最小值大于系统内存的数量,但小于系统内存的两倍.
raid. ,该分区用于 software RAID(参考 raid).
pv. ,该分区用于 LVM(参考 logvol).
    –size=,以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数字后面加MB.
    –grow,告诉分区使用所有可用空间(若有),或使用设置的最大值.
    –maxsize=,当分区被设置为可扩充时,以MB为单位的分区最大值.在这里指定一个整数值,不要在数字后加MB.
    –noformat,用–onpart命令来告诉安装程序不要格式化分区.
    –onpart=或–usepart=,把分区放在已存在的设备上.
例如:partition /home –onpart=hda1,把/home置于必须已经存在的/dev/hda1上.
    –ondisk=或–ondrive=,强迫分区在指定磁盘上创建.
例如:–ondisk=sdb把分区置于系统的第二个SCSI磁盘上.
    –asprimary,强迫把分区分配为主分区,否则提示分区失败.
    –type=(用fstype代替),这个选项不再可用了.应该使用fstype.
    –fstype=,为分区设置文件系统类型.有效的类型为ext2,ext3,swap和vfat.
    –start=,指定分区的起始柱面,它要求用–ondisk=或ondrive=指定驱动器.它也要求用–end=指定结束柱面或用 –size=指定分区大小.
    –end=,指定分区的结束柱面.它要求用–start=指定起始柱面.
    –bytes-per-inode=,指定此分区上创建的文件系统的节点大小.不是所有的文件系统都支持这个选项,所以在其他情况下它都被忽略.
    –recommended,自动决定分区的大小.
    –onbiosdisk,强迫在 BIOS 找到的特定磁盘上创建分区.
注:如果因为某种原因分区失败了,虚拟终端3上会显示诊断信息

定义安装的包:

%packages
(xxx)
%end

定义安装后执行的命令或脚本:

%post
(xxx)
%end

ks文件示例

centos7

cat /var/lib/cobbler/kickstarts/centos7.cfg

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=us --xlayouts=\'us\'
# Root password
rootpw --iscrypted $1$1qaz!QAZ$L4d6kVwN3toE.0oAS.dQ31
# Use network installation
url --url=http://192.168.42.128/cobbler/ks_mirror/CentOS-7-x86_64_new-x86_64/
# System language
lang en_US.UTF-8
# Firewall configuration
firewall --disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
#graphical
reboot
text
# Run the Setup Agent on first boot
firstboot --enable
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# System services
services --disabled=chronyd
ignoRedisk --only-use=sda
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --asprimary --fstype=xfs --size=1024
part swap --fstype=swap --size=2048
part / --fstype=xfs --grow --size=1
%packages
@^minimal
@core
%end

%post

cat >/etc/profile<<EOF
HISTTIMEFORMAT=%Y-%m-%d %H:%M:%S  `whoami` 
ulimit -n 65536
EOF
cat >/etc/security/limits.conf<<EOF
* soft nofile = 65536
* hard nofile = 65536
root soft nofile 65536
root hard nofile 65536
EOF
hwclock -w

%end

centos6.8

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url=http://192.168.137.38/cobbler/ks_mirror/CentOS-6.8-x86_64/
#repo --name=CentOS --baseurl=cdrom:sr0 --cost=100
# Root password
rootpw --iscrypted $1$ljohn$yBMDpKkntQ9jfV1ZAWKpU1
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
# System keyboard
keyboard us
# System language
lang en_US.UTF-8
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Installation logging level
#logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Asia/Shanghai
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
#network  --bootproto=dhcp --device=eth2 --onboot=on
# System bootloader configuration
bootloader --append=crashkernel=auto rhgb quiet --location=mbr --driveorder=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --asprimary --fstype=ext4 --size=500
part swap --fstype=swap --size=2048
part / --fstype=ext4 --grow --size=1
%packages --nobase
@core
%end

二、 将KickStart文件和yum源做关联

在Cobbler 自动创建了yum源之后,会自动有一个ks文件与该源相对应。现在我们需要将自己制作的KS文件与原有的yum源进行关联。

# --name 我们需要添加的启动菜单的名字
# --distro  我们自定制的ks文件关联的yum库
# --kickstart 我们自定制的ks文件的路径
[root@localhost kickstarts]#cobbler profile add --name=centos7-x86_64-new --distro=centos7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.cfg

查看Cobbler中现在还有多少个启动项

[root@localhost kickstarts]#cobbler profile list
   centos6.9-x86_64
   centos7-x86_64
   centos7-x86_64-new

三、同步

每次对cobbler更改都要执行同步

#cobbler sync 

四、测试

cobbler使用自定义kickstart文件安装系统-冯金伟博客园