Cobbler自动化运维工具
python编写的linux安装服务,pxe启动快速安装,还可以管理DHCP,DNS等服务
命令行方式和web方式两种,提供API接口
DHCP、HTTP、TFTP、cobbler
操作系统的ISO镜像,主要分发的包就是package文件夹中的所有包
按照定义好的安装模板去分发和安装
TFTP主要用于分发内核文件、启动文件
cobbler主要定义去读取kickstart文件(安装模板、把所有需要定制地方东西写入这个文件里面)
1.修改kickstart文件:
目录:/var/lib/cobbler/kickstarts/
里面的.cfg 文件就是一些定义安装的操作系统模板
1.1 文件内容解读:
install:安装
text:非交互/文本安装模式
url --url="$tree" :$tree是cobbler服务自定义的一个参数、它会自动去获取cobbler主配置文件里定义的http获取路径,它这里会在运行的时候自动替换。另一种模式是:url --url=http://IPaddress:/文件路径(不会随着cobbler配置文件的更改而更改,推荐使用$tree变量来获取)
skipx:跳过图形化界面
lang en_US.UTF-8:设置语言
keyboard us:键盘选择模式
network --bootprto=dhcp --hostname=anynameisOK --onboot=on
#--bootprto=dhcp或者static 这里意义并不大,后面也可以根据配置文件替换,主机名也会替换
#--onboot:定义网卡是否开机自启
rootpw:root密码
firewall:--disabled
#防火墙开机选项
--disabled
--enabled
authconfig:--enableshadow --passalgo=sha=512
#开启密码验证
selinux:SElinux的设置选项
#enforcing
#disabled
#enabled
#建议使用enforcing或者disabled
timezone:选择时区
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
#--driveorder:指定安装操作系统到哪个盘符目录下
zerombr
cleaepart --all
#之前有文件内容等情况,先清楚,相当于格式化
reboot:重启 安装以后需要重启,此参数为必须
pv:物理卷
vg:卷组
lv:逻辑分区
%pre
...
%end
#安装前的预操作
%packages
...
%end
#安装时的操作指定
#例子:
%packages --ignoremissing#忽略检查指定包或者包组是否存在,如果不指定此参数,发现不可安装包时会直接报错
@base#@符号代表包组,单独的包直接写名字,base和core是默认都会安装,可以自己下来尝试一下
--nobase:指定不去安装某哪些包
@core
@network-tools
%end
%post
...
%end
#安装后的操作
相关目录:
/etc/cobbler # 配置文件目录
/etc/cobbler/settings # cobbler主配置文件,这个文件是YAML格式,Cobbler是python写的程序。
/etc/cobbler/dhcp.template # DHCP服务的配置模板
/etc/cobbler/tftpd.template # tftp服务的配置模板
/etc/cobbler/rsync.template # rsync服务的配置模板
/etc/cobbler/iso # iso模板配置文件目录
/etc/cobbler/pxe # pxe模板文件目录
/etc/cobbler/power # 电源的配置文件目录
/etc/cobbler/users.conf # Web服务授权配置文件
/etc/cobbler/users.digest # 用于web访问的用户名密码配置文件
/etc/cobbler/dnsmasq.template # DNS服务的配置模板
/etc/cobbler/modules.conf # Cobbler模块配置文件
/var/lib/cobbler # Cobbler数据目录
/var/lib/cobbler/config # 配置文件
/var/lib/cobbler/kickstarts # 默认存放kickstart文件
/var/lib/cobbler/loaders # 存放的各种引导程序
/var/www/cobbler # 系统安装镜像目录
/var/www/cobbler/ks_mirror # 导入的系统镜像列表
/var/www/cobbler/images # 导入的系统镜像启动文件
/var/www/cobbler/repo_mirror # yum源存储目录
/var/log/cobbler # 日志目录
/var/log/cobbler/install.log # 客户端系统安装日志
/var/log/cobbler/cobbler.log # cobbler日志
可以创建kickstart自动化部署脚本:
[root@cobbler-server ~]# cat > /var/lib/cobbler/kickstarts/CentOS-7-x86_64.ks <<'EOF'
auth --enableshadow --passalgo=sha512
bootloader --location=mbr
clearpart --all --initlabel
part /boot --asprimary --fstype="ext4" --size=500
part swap --fstype="swap" --size=4096
part / --fstype="ext4" --grow --size=1 //这里的grow指的是 / 需要多大的空间就会给多大,并不是只给1M
text
firewall --disabled
firstboot --disable
keyboard us
lang en_US
url --url=http://192.168.169.10/cobbler/ks_mirror/CentOS-7-x86_64
$yum_repo_stanza
$SNIPPET('network_config')
reboot
rootpw --iscrypted $6$CFgNGKVZdqde7.Nw$8U42BYN3sA7pLnfsX/GJtjjGZBC9gwyCWMQBTHsKVQP1aUH4rREUPcl3N9F7HPTwVyWHUflnEQ5N1jL89zRqC.
selinux --disabled
skipx
timezone Asia/Shanghai --isUtc --nontp
install
zerombr
%packages
@^minimal
@core
kexec-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
EOF
大致工作流程:
配置本地yum源,安装epel
安装cobbler和相关软件
关闭防火墙和Selinux
把服务都打开并设置开机自启动
把配置文件里的ip改成本机的IP
生成密码,加入到配置文件
下载缺失的文件,检查cobbler是否能够正常工作
配置cobbler的DHCP服务,同步sync
导入镜像文件
创建自动化部署脚本 .ks文件
检查ks文件是否有问题
检查cobbler,同步cobbler
客户端pex启动,选择部署镜像