博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PXE-cobbler 无人值守装机------续
阅读量:5888 次
发布时间:2019-06-19

本文共 14493 字,大约阅读时间需要 48 分钟。

上篇学习了cobbler pxe 安装的大致流程以及采用默认分区方式安装centos7系统。

这里深入学习ks文件的具体参数 。

ks.cfg文件又叫kickstart.cfg文件,主要被用于linux系统安装过程中

如CentOS系统中/root/anaconda-ks.cfg 就是kickstart.cfg文件,指明了当前系统预安装时环境的设置。

linux系统安装大致可分为两大步骤:

第一阶段、预安装环境

此阶段为linux安装过程中的预安装环境,提供安装选项的接口,可以将它看做windows安装ghost 系统时的pe 环境。

第二阶段、自动安装过程

此阶段会按照第一阶段设置的参数自动安装。

Linux安装过程中的第一阶段可分为交互式和非交互式两种类型

交互式就是跟普通安装一样,按照提示一步一步操作

非交互式则通过读取kickstart.cfg 文件的配置,进行自动安装。

获取ks文件的方式有很多如:直接在cdrom中获取,常见的方式还有http ftp nfs 等方式。在读取ks文件之前,可通过cdrom 、USB、pxe等方式来引导。

ks.cfg文件可分为三段:命令段、软件包段、脚本段。

1、命令段包括时区选择、安装方式、语言选择等系统配置。分为可选项和必选项,若是缺少某些必选项,安装会中断让用户选择此项的选项。

2、软件包段:

%packages

@group_name ##指定安装的软件包组

package_name ##指定安装的软件包

-package_name ##指定不按照的软件包

%end   ##到这里结束

3、脚本段:

%pre ##预安装脚本,由于只依赖于启动镜像,支持的命令较少。

%post ##后安装脚本,几乎支持所有命令

这里以默认ks.cfg文件为例:

#platform=x86, AMD64, or Intel EM64T# System authorization informationauth  --useshadow  --enablemd5                                #(必需)系统认证方式,默认加密但不隐藏(shadow)。--useshadow(使用隐藏密码)  --enablemd5(使用MD5加密方式)# System bootloader configurationbootloader --location=mbr                                     #(必需),设定boot loader参数。--location设定引导记录位置mbr(默认值)# Partition clearing informationclearpart --all --initlabel                                   #(可选)在建立新分区前清空系统上的原有分区表,默认不删除分区。--all(擦除系统所有原有分区)--initlabel(初始化磁盘卷标为系统架构的默认卷标)# Use text mode installtext                                                          #(可选)以文本方式进行kickstart安装,默认为图形界面   # Firewall configurationfirewall --enabled                                            #(可选)配置系统防火墙选项。--enabled(拒绝外部发起的任何主动链接)# Run the Setup Agent on first bootfirstboot --disable                                           #(可选)决定系统在第一次引导是是否启用“设置代理”,若启用“设置代理”,firstboot软件包必需被安装。--disable(不启用设置代理),如果不指定这个选项缺省为禁用。# System keyboardkeyboard us                                                   #(必需)设置键盘类型,一般为us。# System languagelang en_US                                                    #(必需)设置安装过程中的语言及系统的缺省语言,默认英文en_US,安装中文时需要后期%packages部分安装中文支持组件# Use network installationurl --url=$tree                                               #(可选)通过FTP或HTTP从网络获取安装树。--url(指定资源位置)$yum_repo_stanza                                              #PXE安装系统时(可选)该参数会引用用户添加的cobbler repo 配置# Network information$SNIPPET('network_config')                                    #(可选)网络配置信息# Reboot after installationreboot                                                        #(可选)在系统安装完成后默认重启系统#Root passwordrootpw --iscrypted $1$pxepxe$283B/mrqHX6irt0NeAFtf.           #(必需)设置系统root密码。--iscrypted(设置的密码为加密过的串)# SELinux configurationselinux --disabled                                            #(可选)设置系统selinux状态,默认为enforcing# Do not configure the X Window Systemskipx                                                         #(可选)不对系统的X进行设置# System timezonetimezone  America/New_York                                    #(可选)设置系统时区                              # Install OS instead of upgradeinstall                                                       #(可选)明确指定系统本次安装全新系统,为默认选项# Clear the Master Boot Recordzerombr                                                       #(可选)清除mbr信息,同时会清空系统原有分区表。若指定了zerombr,且yes是他唯一的参数。任何磁盘上无效的分区表都将被初始化。格式为zerombr yes。其余格式均无效。                                                   # Allow anaconda to partition the system as neededautopart                                                      #(install模式必需)使用默认分区方式安装%pre                                                          #预安装脚本(支持的命令很少)$SNIPPET('log_ks_pre')$SNIPPET('kickstart_start')$SNIPPET('pre_install_network_config')# Enable installation monitoring$SNIPPET('pre_anamon')%end%packages                                                     #软件包段  %package_name 指定想要安装的软件包组;package_name 指定想要安装的软件包;-package_name 指定不安装的软件包                     $SNIPPET('func_install_if_enabled')%end%post --nochroot                                              #安装后脚本。允许用户指定想在chroot环境之外运行的命令$SNIPPET('log_ks_post_nochroot')%end%post                                                         #安装后脚本$SNIPPET('log_ks_post')# Start yum configuration$yum_config_stanza# End yum configuration$SNIPPET('post_install_kernel_options')$SNIPPET('post_install_network_config')$SNIPPET('func_register_if_enabled')$SNIPPET('download_config_files')$SNIPPET('koan_environment')$SNIPPET('redhat_register')$SNIPPET('cobbler_register')# Enable post-install boot notification$SNIPPET('post_anamon')# Start final steps$SNIPPET('kickstart_done')# End final steps%end 

参考:https://www.linuxidc.com/Linux/2017-04/142587p2.htm          http://www.it610.com/article/2948354.htm 

范例1:CentOS6.5最小化

1、/boot 200M

2、swap 2G

3、/ 剩余空间

1、首先更改相关ks文件

[root@localhost kickstarts]# vim CentOS6.5mini.cfg

2、在part 分区方式中注释掉autopart ,并添加相关参数。

# Allow anaconda to partition the system as needed#autopart                                             part /boot --fstype=ext4 --asprimary --size=200         #--fstype 新增普通分区时指定分区类型。part swap  --fstype=swap --asprimary --size=2048        #--asprimary 强制指定该分区为主分区,若指定主分区失败,会导致安装终止。part /     --fstype=ext4 --asprimary --grow --size=200  #--size 设置分区大小 --grow 利用可用的磁盘空间让分区自动增长,或者增长到设置的maxsize值。

3、最后执行同步命令:

[root@localhost kickstarts]# cobbler sync

4、打开新的虚拟机设置网络为桥接模式;内存最少分配2G。

出现如下报错

意思是指定安装的“base”软件包组不存在。因为安装的CentOS6.5最小化的盘。此时可以选择忽略全部,或者在ks.cfg文件中将指定安装的软件包注释掉。(检查ks文件发现并没安装多余的软件包包括“base”,这里先忽略掉。同样的配置文件centos7 最小化系统未出现该界面。)

安装成功如图:

 

范例2:安装要求:centos7最小化安装

1、时区为上海,主机域名为pxetext.com

2、/boot 目录200M

3、swap 2G

4、sda其余空间都给/目录

5、sdb全部空间挂载到/data1

6、sdc全部空间挂载到/data2

根据要求修改ks文档:

1、时区修改:

# System timezonetimezone   America/New_Yorktimezone  Asia/Shanghai

2、域名修改:我们在安装后脚本中添加echo "pxetest.com" > /etc/hostname

%postecho "pxetest.com" > /etc/hostname$SNIPPET('log_ks_post')# Start yum configuration

3、分区设置:

# Allow anaconda to partition the system as needed#autopartpart /boot --fstype=xfs --ondisk=sda --size=200            #主要当有多块磁盘分区时,需要--ondisk=指定磁盘进行分区part swap --fstype=swap --ondisk=sda --size=2048part /    --fstype=xfs  --ondisk=sda --grow --size=100part /data1 --fstype=xfs --ondisk=sdb --grow --size=100part /data2 --fstype=xfs --ondisk=sdc --grow --size=100

4、同步:

[root@localhost kickstarts]# cobbler sync

安装完成后

符合要求。

 

目前要完成系统的安装,需要在该界面下选择,不选择就没办法安装。不算完全自动化,那么如何实现完全自动化安装呢,答案是绑定mac地址安装

范例3、

1、完全自动化安装centOS7系统(包含双网卡)

2、第一块网卡为内网,ip 10.0.0.81,子网掩码255.255.255.0。

3、第二块为外网,ip192.168.10.81,子网掩码255.255.255.0,网关192.168.10.1,DNS为223.5.5.5

4、/boot 500M   SWAP 4096M sda其余空间给/  

5、sdb sdc 空间全部分给/data 目录

6、时区为shanghai,主机域名为wang

之前安装的都是最小化的系统,此次范例安装DVD版CentOS7.2.1511

第一步、先执行cobbler check

[root@localhost ~]# cobbler checkNo configuration problems found.  All systems go.

第二部、挂载

[root@localhost ~]# mount /dev/sr0 /mntmount: /dev/sr0 is write-protected, mounting read-only[root@localhost ~]# cobbler import --path=/mnt/ --name=CentOS7.2.1511-x86_64 --arch=x86_64

查看是否挂载成功

[root@localhost ~]# cd /var/www/cobbler/ks_mirror/[root@localhost ks_mirror]# lsCentOS6.5mini-x86_64  CentOS7.2.1511-x86_64  CentOS7-x86_64  config[root@localhost ks_mirror]# ls CentOS7.2.1511-x86_64CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7EULA             isolinux  repodata  TRANS.TBL

编辑ks文件

[root@localhost kickstarts]# cd /var/lib/cobbler/kickstarts/[root@localhost kickstarts]# cp sample_end.ks CentOS7.2.1511.cfg[root@localhost kickstarts]# vim !$vim CentOS7.2.1511.cfg
# System timezonetimezone  Asia/Shanghai

由于非最小化安装,可以选择添加需要的软件包和软件包组(这里复制主机系统anaconda-ks.cfg)。

%packages@base@core@desktop-debugging@dial-up@directory-client@fonts@gnome-desktop@guest-desktop-agents@input-methods@internet-browser@java-platform@multimedia@network-file-system-client@print-client@x11binutilschronyftpgcckernel-develkexec-toolsmakeopen-vm-toolspatchpython%end

由于安装图形界面,需要注释掉以下参数

# Do not configure the X Window System#skipx

这里两块磁盘同时挂载到/data 目录中,普通分区方式无法完成,以下分区方式,安装完后会发现只挂载sdc磁盘,因为sdc的挂载点会将sdb的挂载点覆盖。

#该分区方式为错误演示 part /data --fstype=xfs --ondisk=sdb --grow --size=200part /data --fstype=xfs --ondisk=sdc --grow --size=200

要将两块磁盘同时挂载到/data 目录,可以把两块盘做成raid0方式,也可以使用lvm逻辑卷。

# Allow anaconda to partition the system as needed#autopartpart /boot --fstype=xfs  --ondisk=sda --size=500part swap  --fstype=swap --ondisk=sda --size=4096part /     --fstype=xfs  --ondisk=sda --grow --size=200#part raid.01 --ondisk=/dev/sdb --grow --size=200                          #使用raid0#part raid.02 --ondisk=/dev/sdc --grow --size=200#raid /data   --level=0 --device=md0 raid.01 raid.02part pv.11 --ondisk=/dev/sdb --grow --size=200                             #使用lvm逻辑卷part pv.12 --ondisk=/dev/sdc --grow --size=200volgroup myvg pv.11 pv.12logvol /data --vgname=myvg --name=mydata --fstype=xfs --grow --size=200

ks文件编辑完成,保存退出。

修改默认ks 文件

[root@localhost kickstarts]# cobbler profile edit --name=CentOS7.2.1511-X86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS7.2.1511.cfg[root@localhost kickstarts]# cobbler profile report --name=CentOS7.2.1511-x86_64Name                           : CentOS7.2.1511-X86_64TFTP Boot Files                : {}Comment                        : DHCP Tag                       : defaultDistribution                   : CentOS7.2.1511-x86_64Enable gPXE?                   : 0Enable PXE Menu?               : 1Fetchable Files                : {}Kernel Options                 : {
'biosdevname': '0', 'net.ifnames': '0'}Kernel Options (Post Install) : {}Kickstart : /var/lib/cobbler/kickstarts/CentOS7.2.1511.cfgKickstart Metadata : {}Management Classes : []Management Parameters : <
>Name Servers : []Name Servers Search Path : []Owners : ['admin']Parent Profile : Internal proxy : Red Hat Management Key : <
>Red Hat Management Server : <
>Repos : []Server Override : <
>Template Files : {}Virt Auto Boot : 1Virt Bridge : xenbr0Virt CPUs : 1Virt Disk Driver Type : rawVirt File Size(GB) : 5Virt Path : Virt RAM (MB) : 512Virt Type : kvm

前面我们提到过,CentOS7系统的网卡命名规则与以前的系统不一致,为了运维工作的标准化,cobbler 可以将安装7系统的网卡命名规则改成“ethx”。

[root@localhost kickstarts]#  cobbler profile edit --name=CentOS7.2.1511-x86_64 --kopts='net.ifnames=0 biosdevname=0'

下面是最关键的一步,这是两块网卡的mac地址。

[root@localhost kickstarts]# cobbler system add --name=volac --mac=00:50:56:2D:4D:AC --profile=CentOS7.2.1511-x86_64 --ip-address=10.0.0.81 --subnet=255.255.255.0 --interface=eth0 --static=1[root@localhost kickstarts]# cobbler system edit --name=volac --mac=00:50:56:25:40:BC --profile=CentOS7.2.1511-x86_64 --ip-address=192.168.10.81 --subnet=255.255.255.0 --gateway=192.168.10.1 --interface=eth1 --static=1 --hostname=wang --name-servers="223.5.5.5"[root@localhost kickstarts]# cobbler sync

 

接下来,打开虚拟机。没有出现选择界面,直接进入安装模式。

 安装完成,符合系统要求

 

范例四:客户机自己安装系统

一、不指定system 模板,让客户端自己安装一台系统

1、下载epel包(不指定epel源无法安装koan)

[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7

2、安装koan安装包

yum -y install koan

此处出现一点小插曲,

[root@localhost ~]# yum -y install koanLoaded plugins: fastestmirror, langpacksbase                                                     | 3.6 kB     00:00     http://mirrors.aliyun.com/epel/7/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.aliyun.com/epel/7/x86_64/repodata/repomd.xml: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')Trying other mirror.epel                                                     | 3.2 kB     00:00     extras                                                   | 3.4 kB     00:00     updates                                                  | 3.4 kB     00:00     (1/3): epel/x86_64/updateinfo                              | 934 kB   00:01     (2/3): updates/7/x86_64/primary_db                         | 6.0 MB   00:03     (3/3): epel/x86_64/primary       .......  file /usr/share/locale/zh_TW/LC_MESSAGES/libvirt.mo from install of libvirt-libs-3.9.0-14.el7_5.8.x86_64 conflicts with file from package libvirt-client-1.2.17-13.el7.x86_64  file /usr/share/locale/zu/LC_MESSAGES/libvirt.mo from install of libvirt-libs-3.9.0-14.el7_5.8.x86_64 conflicts with file from package libvirt-client-1.2.17-13.el7.x86_64Error Summary-------------

字面意思libvirt-libs-3.9.0-14.el7_5.8.x86_64这个安装包与libvirt-client 发生冲突。

解决方法:先卸载libvirt-client程序包

[root@localhost ~]# yum remove libvirt-client

再次安装koan

[root@localhost ~]# yum -y install koan

3、获取192.168.43.43主机中的profile设置(指定cobbler 服务器

[root@localhost ~]# koan --server=192.168.43.43 --list=profiles- looking for Cobbler at http://192.168.43.43:80/cobbler_apiCentOS7-x86_64CentOS7.2.1511-X86_64CentOS6.5mini-x86_64

4、指定从哪个镜像开始安装

[root@localhost ~]# koan --replace-self --server=192.168.43.43 --profile=CentOS6.5mini-x86_64- looking for Cobbler at http://192.168.43.43:80/cobbler_api- reading URL: http://192.168.43.43/cblr/svc/op/ks/profile/CentOS6.5mini-x86_64install_tree: http://192.168.43.43/cblr/links/CentOS6.5mini-x86_64downloading initrd initrd.img to /boot/initrd.img_koanurl=http://192.168.43.43/cobbler/images/CentOS6.5mini-x86_64/initrd.img- reading URL: http://192.168.43.43/cobbler/images/CentOS6.5mini-x86_64/initrd.imgdownloading kernel vmlinuz to /boot/vmlinuz_koanurl=http://192.168.43.43/cobbler/images/CentOS6.5mini-x86_64/vmlinuz- reading URL: http://192.168.43.43/cobbler/images/CentOS6.5mini-x86_64/vmlinuz- ['/sbin/grubby', '--add-kernel', '/boot/vmlinuz_koan', '--initrd', '/boot/initrd.img_koan', '--args', '"ks=http://192.168.43.43/cblr/svc/op/ks/profile/CentOS6.5mini-x86_64 ksdevice=link kssendmac lang= text "', '--copy-default', '--make-default', '--title=kick1539781864']- ['/sbin/grubby', '--update-kernel', '/boot/vmlinuz_koan', '--remove-args=root']- reboot to apply changes

5、重启

[root@localhost ~]# reboot

选择第一个

开始安装

安装完成

二、指定system 模板,让客户端自己安装一台系统(让系统生成指定mac地址的绑定的ip配置信息和其他自定义信息

和上面一样指定epel源后安装koan 包

[root@localhost ~]# yum -y install epel-release[root@localhost ~]# yum -y install koan

指定cobbler服务器

[root@localhost ~]# koan --server=192.168.43.43 --list=systems- looking for Cobbler at http://192.168.43.43:80/cobbler_apivolac

指定system模板

[root@localhost ~]# koan --replace-self --server=192.168.43.43 --system=volac- looking for Cobbler at http://192.168.43.43:80/cobbler_api- reading URL: http://192.168.43.43/cblr/svc/op/ks/system/volac

重启系统

[root@localhost ~]# reboot

koan安装完成。

 

转载于:https://www.cnblogs.com/volac/p/9777673.html

你可能感兴趣的文章
Android——Button的颜色
查看>>
XMLHTTP.readyState的五种状态
查看>>
HTTP错误code大全
查看>>
SQL实例整理
查看>>
国内手机应用开发者6成亏损---广告或是突破口
查看>>
Json概述以及python对json的相关操作
查看>>
Silverlight开发历程—动画(线性动画一些效果)
查看>>
Silvelright:ListBox无法用Tab顺序切换内部元素焦点的解决
查看>>
Android自动完成文本框
查看>>
创建ITS mobile 应用程序步骤
查看>>
《星辰傀儡线》人物续:“灭世者”、“疯狂者”、“叛逆者”三兄妹
查看>>
安装系统字体
查看>>
Spring的ApplicationContext加载备忘
查看>>
GoogleMapAPIV3.8.6离线包下载
查看>>
SILK 的 Tilt的意思
查看>>
IPC通信:Posix共享内存2
查看>>
GB2312转成UTF-8
查看>>
C#打开chm定位到特定页面
查看>>
[CareerCup][Google Interview] 寻找动态的中位数
查看>>
javascript操作iframe的那些事
查看>>