Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS、以及yum仓库、构造系统ISO镜像。今天这里只介绍在企业中利用cobbler进行批量自动化安装centos。其他更多的功能这里不做介绍。如果想详细了解cobbler请百度 Cobbler部署指南
简单的来说客户端的电脑网卡带有并开启pxe功能,开机会自动获取IP地址、tftp地址、pexlinux文件名----->加载pxelinux.0、内核文件vmlinuz、伪文件系统initrd.img----->启动系统----->到pxelinux指定的tftp地址下载ks.cfg文件----->根据ks.cfg文件的去http、ftp、nfs寻找镜像、安装操作系统
客户端<-------IP---------DHCP服务器
客户端<----pxelinux----tftp服务器
客户端<----default------tftp服务器
客户端<-----ks.cfg------http、ftp、nfs
客户端<----镜像地址---http、ftp、nfs
客户端<----安装系统---http、ftp、nfs
pxe批量部署操作系统就是通过以下几个服务共同完成的,cobbler工具是将几者更加集中地进行管理,使运维人员不需要在乎底层的工作。这里只介绍了cobbler用于批量部署系统用到的服务以及相关的文件。
- dhcp /etc/dhcp/dhcp.conf 提供IP地址,提供tftp服务器、pexlinux文件名
- tftp /var/lib/tftpboot/ 提供初始内核以伪文件系统
- \---vmlinuz 内核文件
- \---initrd.img 伪文件系统
- \---menu.c32 菜单风格
- \---pxelinux.0 启动文件
- \---pxelinux.cfg
- \---default 指定ks.cfg文件的路径.ks.cfg指定了镜像的地址与安装的方式
- httpd /var/www/html/centos 提供ks.cfg或镜像
- ftp /var/ftp/pub/centos 提供ks.cfg或镜像
- cobbler 管理力工具,将几者集中管理
- cobbler commands 介绍
- cobbler check 核对当前设置是否有问题
- cobbler list 列出所有的cobbler元素
- cobbler report 列出元素的详细信息
- cobbler sync 同步配置到数据目录,更改配置最好都要执行下
- cobbler reposync 同步yum仓库
- cobbler distro 查看导入的发行版系统信息
- cobbler system 查看添加的系统信息
- cobbler profile 查看配置信息
- iptables -F
- systemctl stop firewalld.service
- systemctl disable firewalld.service
- setenforce 0
- vim /etc/selinux/config
- 修改为SELINUX=disabled
- yum install cobbler dhcp tftp ftp httpd
- systemctl enable cobblerd
- systemctl start cobblerd
- systemctl enable tftp
- systemctl start tftp
- systemctl enable httpd
- systemctl start httpd
可以检查cobbler的各项参数,以提示那些没有修改好的错误,如果有些报错你更改后还在提示那么可以忽略提示。
- cobbler check
- cobbler check
- vim /etc/cobbler/settings
- next_server: 192.168.25.107 #设置tftp地址
- manage_dhcp: 1 #cobberl接管dhcp
- server: 192.168.25.107 #cobbler的地址,也就是本机地址。
- pxe_just_once: 1 #cobbler接管pxe
- systemctl restart cobblerd #重启服务
- cobbler sync #更新配置
时cobberl的dhcp模板文件,当cobberl更新配置时就会把这些模板文件覆盖服务的配置文件。比如这个dhcp模板一旦执行
- dhcp.template
就会将dhcp的默认模板就行覆盖。
- cobbler sync
- vim /etc/cobbler/dhcp.template #设定子网段,限定可以分配的地址范围
- subnet 192.168.25.0 netmask 255.255.255.0 {
- range dynamic-bootp 192.168.25.100 192.168.25.254;
- }
- cobbler sync
- #服务器连接了外网
- cobbler get-loaders
- #服务器没有连接外网可以直接复制
- cp /var/lib/tftpboot/{menu.c32,pxelinux.0} /var/lib/cobbler/loaders
- cobbler import --path=/mnt/cdrom/centos7 --name=centos7.3 --arch=x86_64
- cobbler import --path=/mnt/cdrom/centos6 --name=centos6.9 --arch=x86_64
- # --path 光盘的路径,也可以使用ftp、http等yum源地址
- # --name 镜像名称可以随便写,便于cobbler的管理
- # --acrh 指定架构如果不指定架构,cobbler会分别创建两个架构的镜像
- # 但是镜像本身就是64位的所以创建两个没有必要,因此直接指定架构
- cobbler distro list #查看创建的yum源
- # 删除默认创建的ks文件
- cobbler profile list
- cobbler profile remove --name=centos6.9-x86_64
- cobbler profile remove --name=centos7.3-x86_64
- # 创建ks文件
- system-config-kickstart #kickstart图形化生成工具,生成完毕后记得点击左上角的file将其保存
- cp centos6.cfg centos7.cfg /var/lib/cobbler/kickstarts/ #将生成的ks文件复制到cobbler模板目录下
- # 将创建的ks文件导入cobbler
- cobbler profile add --name=centos6.9_desktop --distro=centos6.9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos6.cfg
- cobbler profile add --name=centos7.3_mini --distro=centos7.3-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.cfg
- # add 增加配置
- # --name 名称可以随便写便于cobbler管理
- # --distro 指定yum源,也就是之前导入的yum源,如果导入了多个yum源需要一一对应
- # --kickstart 自己生成ks文件的路径,cobbler会将你自己生成的ks文件转换成cobbler可以识别的ks文件
- cobbler sync 同步配置
- #创建完成的ks文件中url这一项可以使用$tree来代替。cobbler会自动将其替代
将机器与cobbler接入同一vlan中,开机后会自动进入pxelinux界面。让用户选择是通过本地启动还是安装操作系统。现在只需要敲下回车即可自动安装操作系统。
cobbler可以通过安装web服务使管理更加的便捷。
- yum install cobbler - web
配置文件,可以看到cobbler支持众多的用户登录认证方式。常用的认证方式有两种认证方式,第一种为cobbler默认的
- modules.conf
通过配置文件认证。第二种为
- authn_configfile
通过PAM模块来认证即系统用户。
- authn_pam
- # 修改配置文件
- vim /etc/cobbler/modules.conf
- [authentication]
- module = authn_configfile # <-------仅修改了这里
- # 创建认证用户 aubin,仅在创建第一用户时使用 -c选项创建后续的用户则不在使用
- # 倒数第二个参数是relam的名称必须为Cobbler且第一个字母为大写
- htdigest -c /etc/cobbler/users.digest Cobbler aubin
- # 修改配置文件
- vim /etc/cobbler/modules.conf
- [authentication]
- module = authn_pam # <-------仅修改了这里
- #创建系统用户,且设置为不可登陆
- useradd -s /sbin/nologin aubin
- # 修改用户文件
- vim /etc/cobbler/users.conf
- [admins]admin = "aubin" # <-------写入刚刚创建的系统用户
来源: http://www.cnblogs.com/aubin/p/7536044.html