接上一篇继续.
直接安装好cobbler以后, 安装出来的系统都是默认配置, 且生产服务器哪台机器使用哪个ip, 往往是有规划的, 不能随意使用, 如果安装100台服务器把系统安装好以后还需要每台服务器都使用ipmi管理卡登录后手动配置ip和主机名, 那我们的"自动化安装系统"其实也没那么自动.
问题继续:假设机房有100台服务器需要安装系统, 如何快速完成, 并定制分区和主机名了, 同时指定ip地址了?
先简单说明一下几个概念
cobbler --help
usage
=====
cobbler <
distro|
profile|
system|repo|image|mgmtclass|package|file> ...
[add|edit|copy|getks*|list|remove|rename|report] [options|--help]
cobbler [options|--help]
主要讨论distro|profile|system这3个
distro可理解为当前已导入cobbler的系统镜像
profile主要用于定制分区, 时区, 设置系统防火墙等通用信息. 它是如图所示位置的选项
system是更进一步细化, 私人定制级别. profile所针对的分区, 时区这些信息不同服务器基本相似或相同的, 但是不同服务器的主机名, 服务器的ip地址这些肯定是不同的, 这些具体到每台服务器的信息与system相关. 后面会有例子说明.
上面已说到了, 订制分区与profile是相关的
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Installation_Guide/s1-kickstart2-options.html 有相关参数的说明和举例
举例说明一下创建一个自己的profile的步骤:
cd /var/lib/cobbler/kickstarts/
cp sample_end.ks profile_demo.ks #测试导入centos6.5以后系统默认是使用的sample_end.ks这一个ks文件, 所以以这个为例
vi profile_demo.ks
由于profile的信息也很多, 在此只列举最常用的几个:
(1)
关闭防火墙:将firewall --enabled改为firewall --disable
(2)时区设置为上海: 将timezone America/New_York改为timezone Asia/Shanghai
(3)分区设置相对复杂一点.默认的clearpart --all --initlabel 会格式化服务器所有硬盘, 如果是新上架服务器这个是没有影响的, 但是如果是系统在一个盘, 数据在一个盘, 想通过cobbler保留数据重装, 则这将导致很严重的后果. 默认的设置会使得系统盘和数据盘都被全部格式化, 从而导致数据丢失(也可以保留系统盘的某些分区进行重装, 在此不举例说明了).
因此将clearpart --all --initlabel改为clearpart --all --initlabel --drives=sda, 这样只格式化sda这一个盘
(4)
注释掉autopart, 添加自定义的分区信息, 示例如下:
part /boot --fstype="ext4" --ondisk=sda --asprimary --size=200
part / --fstype="ext4" --ondisk=sda --asprimary --size=51200
part swap --fstype="swap" --ondisk=sda --asprimary --size=10240
part /opt --fstype="ext4" --ondisk=sda --asprimary --size=1 --grow
信息比较简单, size是以MB为单位, 最后的--grow是指自动扩展到剩下的所有空间.
(5)shou55使用dell的服务器的时候, dell的服务器网卡名是em1, em2这种, 不是linux标准的eth0, eth1, 对这种服务器在ks文件还需要再加一条
将$SNIPPET('network_config')改成network --bootproto=dhcp --device=em1
完成上面5步以后, 我们的ks配置文件就算配置完成了.
cobbler profile add --name=profile_demo-x86_64 --kickstart='/var/lib/cobbler/kickstarts/profile_demo.ks'
#添加到cobbler中, 执行完上面的命令以后, 通过cobbler profile list就能看到刚才新加的这个了
至此为止, 我们就可以重启服务器并通过pxe进行网络安装系统了, 安装好的系统分区时区等信息会自动按指定的值进行配置, 但是如果想使新安装好的系统的主机名, 服务器的ip地址, dns这些信息也自动配置好, 则还需要进一步深入. 而且只到这一步的话, 重启服务器后还需要手动选择使用哪个profile , 想想100台服务器要选择100次真是麻烦, 所以还需要再进一步.
上面已介绍过cobbler 的system, 下面直接使用.直接上例子:
cobbler system add --name=testhostname --mac=08:08:27:27:94:94 --interface=eth0 --ip-address=192.168.56.56 --subnet=255.255.255.0 --gateway=192.168.56.1 --static=1 --profile=profile_demo --hostname=testhostname --name-servers='114.114.114.114' --netboot-enabled=true
参数说明:
name表示cobbler system要添加的项的名字, shou55习惯为将该参数与后面系统的hostname设置一样
mac表示服务器网卡的mac地址, 这个地址非常重要, 因为cobbler是依靠这个值来区分不同服务器的
--ip-address --subnet --gateway 表示新系统的ip,掩码和网关
profile设置为刚才我们新添加的这一个
完成上面的命令以后, 使用cobbler system list就可以查看到新添加的system了. 这样重启服务器以后会自动选择profile并自动配置好主机名和ip地址等相关信息.
到此为止, 有一点自动了.
特别说明:
(1)某些品牌的服务器在bios中默认的启动顺序是先网卡后本地硬盘, 在这种bios设置情况下, 如果pxe_just_once没为设置为1, 则会导致一直循环安装, 即安装完以后系统重启又再次进入pxe网络安装. 所以, 这种问题要么统一bios的设置为先硬盘后网卡, 要么将cobbler中的
pxe_just_once设置为1
(2)如果是要保留数据重装系统, 则订制分区一定要仔细理解, 否则很容易导致数据丢失的问题. 如果是纯粹的裸机, 影响倒是不大.
但是:
100台服务器我们要手动添加100次cobbler system . 而每台服务器的在执行cobbler system的时候又需要获取到服务器的mac地址, 因此我们还是需要登录100次ipmi, 获取100个mac , 然后手动添加100次cobbler system , 在手动重启100台服务器以使其都进入自动安装系统的步骤.由此想来还是太麻烦了, 能否再自动一点了? 下节继续....
阅读(1223) | 评论(0) | 转发(0) |