Linux操作篇之自动化安装操作系统(二)
上一篇文章记录了标准PXE的安装配置过程,但存在一些缺点。如多台设备也只能单一的选择安装一种操作系统,不能多个选择。
一、提前配置。
关闭SELinux,关闭防火墙并禁止开机启动。
网卡设置的静态地址(192.168.159.200)
二、安装过程。
1、安装yum源。
1.1、由于所需要的软件在原系统repo中并不带有,所以需要安装带有所需软件的repo,并重新生成yum缓存。
yum -y install epel-release
yum makecache
2、安装配置。
2.1、安装所需要的全部软件。
yum -y install cobbler cobbler-web pykickstart debmirror xinetd dhcp system-config-kickstart cman fence-agents
(cman可能会提示没有,忽略即可)
2.2、修改tftp服务器,使tftp服务开机启动。
vi /etc/xinetd.d/tftp
2.3、修改DHCP配置文件,使其分配可使用地址。
vi /etc/dhcp/dhcpd.conf
(在文件最后追加以下代码:)
option domain-name-servers 192.168.159.2,8.8.8.8; #DNS服务器的地址
default-lease-time 43200; #默认租约时间
max-lease-time 86400; #最大租约时间
log-facility local7; #定义日志文件,可在日志配置文件中查看日志存放位置
subnet 192.168.159.0 netmask 255.255.255.0 { #定义DHCP的网段与掩码
range 192.168.159.121 192.168.159.199; #定义DHCP可分配地址范围(121-199)
option routers 192.168.159.2; #定义DHCP服务的网关地址
}
next-server 192.168.159.2; #下一个访问的地址。客户端获取ip后,访问的服务器地址。
filename="pxelinux.0"; #访问服务器中的文件。
2.4、修改cobbler配置文件。
openssl passwd -1 -salt $(openssl rand -hex 4)
输入上面的命令,会提示你输入密码,这个就是在安装过程中给系统设定的密码,这个是加密过的。
vi /etc/cobbler/settings
复制粘贴过程中一定要复制全。
找到下面两个参数,将修改IP地址。
next_server: 127.0.0.1 后面的IP地址改为本机IP地址
server: 127.0.0.1 同上
2.5、修改debmirror配置文件
vi /etc/debmirror.conf
此处使用#将标出的两行注释,将不常用的注释掉。
2.6、启动所需服务并加入开机启动。
HTTP服务:systemctl restart httpd && systemctl enable httpd
cobbler服务:systemctl restart cobblerd && systemctl enable cobblerd
DHCP服务:systemctl restart dhcpd && systemctl restart dhcpd
TFTP服务:systemctl restart tftp && systemctl enable tftp
xinetd服务:systemctl restart xinetd && systemctl enable xinetd
rsync服务:systemctl restart rsyncd && systemctl enable rsyncd
2.7、补充升级检查cobbler相关的文件及配置。
cobbler get-loaders
cobbler sync
cobbler check
3、导入镜像文件(为了能看到可选择系统安装,我这里试验两个版本的centos系统)
3.1、导入centos7.5
mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
cobbler import --name="centos7.5" --path=/mnt/cdrom
3.2、导入centos6.8
mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
cobbler import --name="centos6.8" --path=/mnt/cdrom
导入完成可以使用 cobbler list 查看, 也可以登录web进行查看
这个时候,就可以选择版本进行安装操作系统,但是还没有导入ks文件,所以不会自动化安装。
4、关联ks文件,使其自动化安装。(因为6与7操作一样,我这里只记录一个7的操作过程)。ks文件名:7ks.cfg
4.1、查看修改ks文件。可复制上面网页中的地址。
4.2、复制ks文件至指定目录中,并关联相关镜像文件。
mkdir -p /var/lib/cobbler/test
mv /var/lib/cobbler/kickstarts/* /var/lib/cobbler/test/
cp 7ks.cfg /var/lib/cobbler/kickstarts/
移除profile:cobbler profile remove --name=centos7.5-x86_64
新建profile,并与ks文件进行关联: cobbler profile add --name=centos7.5-basic --distro=centos7.5-x86_64 --kickstart=/var/lib/cobbler/kickstarts/7ks.cfg
4.3、检查文件合规性,并移除旧的不能自动安装的profile。
cobbler sync
5、测试。
新建虚拟机进行测试。
选择centos7.5-basic是已配置ks自动安装的。
三、遇到的问题。
这个是由于实验测试的虚拟机内存太小(至少需要2GB的内存才能正常运行)。
四、扩展。
cobbler也可以自动安装Windows系统,步骤流程大体记录。
1、操作步骤
2、工作流程
3、相关命令(以win7、Samba为例)
copype amd64 C:\winpe #使用copype命令创建C:\winpe目录,并在该目录下生成Win PE预安装所需的文件。
imagex
/mountrw
c:\winpe\winpe.wim 1 c:\winpe\
mount #使用imagex命令挂载c:\winpe\winpe.wim文件到c:\winpe\mount目录下,以便后续进行修改,因为Windows系统的很多核心文件都被打包压缩在这个文件里面,所以我们需要挂载才能读写修改。
echo
net use z: \\xxx.xxx.xxx.xxx\share >> C:\winpe\
mount
\Windows\System32\startnet.cmd #修改挂载后的wim文件,向C:\winpe\mount\Windows\System32\startnet.cmd文件中写入一些脚本命令。
echo
Z: >> C:\winpe\
mount
\Windows\System32\startnet.cmd #同上
echo
cd
win7 >> C:\winpe\
mount
\Windows\System32\startnet.cmd #同上
echo
setup.exe
/unattend
:Autounattend.xml >> C:\winpe\
mount
\Windows\System32\startnet.cmd #同上(Autounattend.xml
这个就是制作好的自动应答文件)
imagex
/unmount
c:\winpe\
mount
/commit #完成修改后,提交保存修改并去除挂载。
copy c:\winpe\winpe.wim c:\winpe\ISO\sources\boot.wim #拷贝修改后的winpe.wim到指定目录并重命名。
oscdimg -n -bC:\winpe\etfsboot.com c:\winpe\ISO c:\winpe\win7pe.iso
#生成Win PE ISO镜像工具,路径及名称为C:\winpe\win7pe4.iso。4、使用AIK或者ADK制作WinPE(win7称为AIK;win10称为ADK)。PE相当于一个简易系统,可以通过命令连接到cobbler服务器,进行真正的镜像文件下载并安装。
5、制作的PE要对应版本,如官网适用于win7的AIK工具,可适用于win7版本,却不适用win7 sp1(也有适用于sp1版本的AIK,要注意)。否则启动PE连接cobbler服务器后,无法执行setup程序[0x5]。
6、AIK或ADK可制作Windows自动应答文件,包括选择版本、设置语言、磁盘分区、新建本地用户及密码(也可使用administrator用户登录且不设置密码,但本地用户一定要建立,否则不会自动跳过)、输入key(找一个对应版本的key即可,不需要可用,但一定要有,安装过程不会进行验证)。
7、第6步制作的自动应答文件完成后,保存到镜像家目录中即可。
cobbler服务器端配置命令:
cobbler distro add --name=windows7 --kernel=
/var/lib/tftpboot/memdisk
--initrd=
/root/win7pe
.iso --kopts=
"raw iso" #将win7pe导入cobbler的distro中。
memdisk
没有”,使用cobbler sync 命令即可。touch
/var/lib/cobbler/kickstarts/win7pe
.xml #创建win7pe.xml文件,使distro与profile关联。
cobbler profile add --name=windows7_pro --distro=windows7 --kickstart=
/var/lib/cobbler/kickstarts/win7pe
.xml #将上面创建win7pe.xml文件(profile)与distro(PE)进行关联。