========================================================================================================================================= Cobbler 1、介绍 官方地址:http://cobbler.github.io/manuals/2.8.0/ Cobbler 是一个开源的系统安装部署软件,基于 Python 语言开发。是 PXE 更高级的封装,Cobbler 集成了 DHCP、PXE、以及 yum 安装仓库的管理, 大大简化了系统安装过程。通过配置可以实现系统自动化安装,并且支持命令行管理,Web 界面管理。Colbbler 可以实现多环境系统安装配置。 言而言之,Cobbler 提供了一个 PXE 安装操作系统的完整环境。 Cobbler 将使用 PXE 环境自动化安装操作系统的所有服务及数据、模板的提供封装集成在一起,简化了自动化安装操作系统的步骤,Cobbler 安装 操作系统的过程和 PXE 环境安装操作系统的过程是一样的,Cobbler 只是提供了一个更为方便简洁的环境配置条件。 2、相关概念 Distribution:表示一个操作系统发行版,它承载了内核和 initrd 的信息,以及内核 参数等其他数据 Profiles:包含多个操作系统的发行版,同一个 Distribution 不同的 kickstart 文件,通常还包含特定的安装目录树,及传递给内核的参数 Systems:表示要配给的机器。它包含一个配置文件或一个镜像,还包含 IP 和 MAC 地址、电源管理(地址、凭据、类型)以及更为专业的数据等信息 Repos:保存 yum 或者 rsync 存储库 Images Management Classes File Resources Package Resources Cobbller依赖服务 TFTP rsync DHCP DNS 3、Cobbler相关文件 配置文件目录 /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/www/cobbler_webui_content# Cobbler web 界面程序目录 启动引导文件 /var/lib/tftpboot/boot /var/lib/tftpboot/etc /var/lib/tftpboot/grub /var/lib/tftpboot/images # 启动加载器放置目录,由 /var/lib/cobbler/loaders 复制而来 /var/lib/tftpboot/images2 /var/lib/tftpboot/ppc /var/lib/tftpboot/pxelinux.cfg# 启动加载器的配置文件放置目录 /var/lib/tftpboot/s390x 日志目录 /var/log/cobbler # 日志目录 /var/log/cobbler/install.log # 客户端系统安装日志 /var/log/cobbler/cobbler.log # cobbler日志 ========================================================================================================================================= 配置示例 1、Cobbler安装配置 官方地址:http://cobbler.github.io/ 1、准备工作 1、安装 yum install cobbler cobbler-web httpd yum install pykickstart yum install tftp yum install rsync yum install dhcp 2、启动 systemctl start httpd systemctl start cobblerd 3、使用Cobbler检查指令对配置、依赖等进行检查 cobbler check 注:根据报错信息,进行排错;检测Cobbler完成之后,需要重新启动Cobbler。 4、配置 /etc/cobbler/settings next-server 172.18.26.3 server 172.18.26.3 5、启动 tftp systemctl start rsyncd.scoket 6、复制启动加载程序 cp pxelinux.0 menu.c32 /var/lib/cobbler/loaders/ 注:也可以使用在线网络下载 cobbler get-loaders 7、设置管理员密码 openssl passwd -1 -salt "haha" 修改 /etc/cobbler/settings default_password_crypted: "$1$haha$5wf39s3FxrVF6ZPJ9MFFB1" 8、启动配置DHCP systemctl start dhcpd.service 2、后续配置Cobbler 1、提供 kickstart 文件 将 kickstart 放置到 /var/lib/cobbler/kickstart/ 目录下 (修改安装目录树地址) 2、导入镜像文件 cobbler import --path=/mnt --name="CentOS-7.3" --kickstart=/var/lib/cobbler/kickstarts/ks-7.cfg 导入后的文件放置在 /var/www/cobbler/ks-mirror/ 目录下 3、创建profile文件 cobbler profile add --name=CentOS-7.3-x86_64 --distro=CentOS-7.3-x86_64 --kickstart=/var/lib/cobbler/kickstarts/ks-7.cfg 4、同步 cobbler sync 同步 /var/lib/tftpboot/pxelinux.cfg/default 文件 注:每次修改 Cobbler 后,都需要同步配置及同步数据 2、Cobbler管理命令 cobbler [options|--help] cobbler distro list # 列出Distribution列表 ========================================================================================================================================= 管理Cobbler命令 1、相关命令 cobbler [options|--help] 2、Cobbler检测当前配置 cobbler check 3、列出Cobbler元素信息 cobbler list # 列出元素信息,包括distro、profile、system、repos、iamges等信息 cobbler report # 列出元素的详细信息 4、同步配置 cobbler sync # 同步配置到数据目录。每次修改都需要同步配置及数据 cobbler reposync # 同步yum仓库 5、配置元素及查看元素 cobbler ..... 注:后续选项参数使用 cobbler --help 查看帮助信息 6、distro管理 # 查看帮助 cobbler distro --help # 导入映像文件 cobbler import --name=DISTRO_NAME -path=/media/cdrom --arch=x86_64 7、profile管理 # 查看帮助 cobbler profile --help # 添加profile文件 cobbler profile --name=PROFILE_NAME --distro=DISTRO_NAME --kickstart=/ks-7.cfg 注:如果未提供此参数,则kickstart文件将默认为`/var/lib/cobbler/kickstarts/default.ks`。这个文件最初是空白的, 这意味着默认的kickstart不是自动的"开箱即用"。如果需要,管理员可以更改默认值。 # 指定某台特定的主机使用特定的kickstart文件 cobbler system add --name=SYSTEM_NAME --mac=00:0C:29:E4:6B:EC --profile=CentOS-7.1-x86_64 --ip-address=172.18.26.1 --subnet=255.255.255.0 --gateway=172.18.0.1 --interface=eth0 --static=1 --hostname=www.xuejiwnei.com --name-servers="114.114.114.114 8.8.8.8" 8、repo管理 # 添加一个repo cobbler repo add --arch=x86_64 --name=Flash-plugin --mirror=http://linuxdownload.adobe.com/linux/x86_64/ # 同步 yum 仓库 cobbler reposync 9、移除distro|profile cobbler [object] remove --name=foo cobbler check 核对当前设置是否有问题 cobbler list 列出所有的cobbler元素 cobbler report 列出元素的详细信息 cobbler sync 同步配置到数据目录,更改配置最好都要执行下 cobbler reposync 同步yum仓库 cobbler distro 查看导入的发行版系统信息 cobbler system 查看添加的系统信息 cobbler profile 查看配置信息 ========================================================================================================================================= Cobbler配置 1、/etc/cobbler/settings default_password_crypted:"$1$gEc7ilpP$pg5iSOj/mlxTxEslhRvyp/" manage_dhcp:1 # 是否要Cobbler自主管理dhcp服务(如果设置为1,则需要修改dhcp对应的模板文件) manage_tftpd:1 # 是否要Cobbler自主管理tftp服务 pxe_just_once:1 # 预防将机器中的安装循环配置为始终从网络引导。激活此选项时,机器告诉 Cobbler 安装已完成。Cobbler 将系统对 象的 netboot 标志更改为 false,这会强制机器从本地磁盘引导 next_server:<服务器的 IP 地址> server:<服务器的 IP 地址> ========================================================================================================================================= Cobbler Web 安装Cobbler Web yum install cobbler-web 配置cobbler_web的认证功能 cobbler_web支持多种认证方式,如authn_configfile、authn_ldap或authn_pam等,默认为authn_denyall,即拒绝所有用户登录。下面说 明两种能认证用户登录cobbler_web的方式。 1、pam模块认证 1、使用authn_pam模块认证cobbler_web用户 首先修改modules中[authentication]段的module参数的值为authn_pam。 接着添加系统用户,用户名和密码按需设定即可,例如下面的命令所示。 # useradd cblradmin # echo 'cblrpass' | passwd --stdin cblradmin 2、而后将cblradmin用户添加至cobbler_web的admin组中。修改/etc/cobbler/users.conf文件,将cblradmin用户名添加为admin参数的值即可,如下所示。 [admins] admin = "cblradmin" 3、最后重启cobblerd服务,通过http://YOUR_COBBLERD_IP/cobbler_web访问即可。 注意:CentOS7的Cobbler2.8版本的web界面默认使用的是 SSL 连接,所以使用https://IP/cobbler_web访问 2、authn_configfile模块认证 1、首先修改 modules.conf 中 [authentication] 段的 module 参数的值为 authn_configfile。 2、接着创建其认证文件 /etc/cobbler/users.digest,并添加所需的用户即可。需要注意的是,添加第一个用户时,需要为 htdigest 命令使用“-c”选项, 后续添加其他用户时不能再使用;另外,cobbler_web 的 realm 只能为 Cobbler。如下所示。 # htdigest -c /etc/cobbler/users.digest Cobbler cblradmin 最后重启 cobblerd 服务,通过 http://YOUR_COBBLERD_IP/cobbler_web 访问即可。 3、其他 1、使用 Web 界面修改的配置是立即生效的 ========================================================================================================================================= Cobbler 自动化安装操作系统实践 1、相关服务进程 dhcpd # manage_rsync: 1 配置 /etc/cobbler/dhcp.template 模板,由Cobbler服务进行管理 httpd # 有 Cobbler 服务自行管理启动 rsyncd # manage_rsync: 0 配置项设置值 tftp # manage_tftpd: 1 2、安装 yum install cobbler cobbler-web dhcp tftp pykickstart 3、启动 systemctl enable dhcpd systemctl enable httpd systemctl start httpd systemctl enable cobblerd systemctl start cobblerd 4、思路步骤 1、Cobbler服务正常工作 1、修改 cobbler 配置文件 /etc/cobbler/settings vim /etc/cobbler/settings default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac." manage_rsync: 0 manage_tftpd: 1 next_server: 127.0.0.1 server: 127.0.0.1 pxe_just_once: 1 2、使用 cobbler check 命令对cobbler当前运行的环境进行检测 2、DHCP启动配置 1、配置 /etc/cobbler/dhcp.template 模板配置文件 subnet 172.18.0.0 netmask 255.255.0.0 { option routers 172.18.26.1; option domain-name-servers 172.18.26.1; option subnet-mask 255.255.0.0; range dynamic-bootp 172.18.26.1 172.18.1.254; default-lease-time 21600; max-lease-time 43200; next-server $next_server; class "pxeclients" { match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"; if option pxe-system-type = 00:02 { filename "ia64/elilo.efi"; } else if option pxe-system-type = 00:06 { filename "grub/grub-x86.efi"; } else if option pxe-system-type = 00:07 { filename "grub/grub-x86_64.efi"; } else { filename "pxelinux.0"; } } } 3、启动加载文件提供 方法1:从syslinux包中复制启动加载文件 cp pxelinux.0 menu.c32 /var/lib/cobbler/loaders/ 方法2:使用在线网络下载 cobbler get-loaders 4、kickstart文件提供 提供kickstart配置文件,放置于 /var/lib/cobbler/kickstarts/ks-7.cfg 下,自定义命名 5、安装源配置 distro cobbler import --name="CentOS-7.3" --path=/mnt --arch=x86_64 注: 1.trying symlink: /var/www/cobbler/ks_mirror/CentOS-6.9-x86_64 -> /var/www/cobbler/links/CentOS-6.9-x86_64 在/var/www/cobbler/ks-mirror/目录下生成安装目录树 2.生成一个默认的profile文件 3.在/var/lib/tftpboot/image目录下生成系统所对应的内核和ramdisk文件 6、生成profile文件 cobbler profile add --name=CentOS-7.3-Mini --distro=CentOS-7.3-x86_64 --kickstart=/var/lib/cobbler/kickstarts/ks-7.cfg 注: 1.修改 /var/lib/cobbler/kickstarts/ks-7.cfg 文件中安装目录树的路径位置 7、同步 cobbler sync systemctl restart cobblerd 5、部署不同的系统 cobbler profile add --name='CentOS-6.9-desktop' --distro=CentOS-6.9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/ks-6.cfg cobbler profile remove --name=CentOS-6.9-x86_64 注: 修改 /var/lib/cobbler/kickstarts/ks-7.cfg 文件中安装目录树的路径位置 =========================================================================================================================================