Cobbler 自动化部署
说明简介:
Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS、TFTP、RSYNC以及yum仓库、构造系统ISO镜像。
Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用,Cobbler客户端Koan支持虚拟机安装和操作系统重新安装。
Cobbler原理:
Cobbler加载原理图
Server端:
- 第一步,启动Cobbler服务
- 第二步,进行Cobbler错误检查,执行cobbler check命令
- 第三步,进行配置同步,执行cobbler sync命令
- 第四步,复制相关启动文件文件到TFTP目录中
- 第五步,启动DHCP服务,提供地址分配
- 第六步,DHCP服务分配IP地址
- 第七步,TFTP传输启动文件
- 第八步,Server端接收安装信息
- 第九步,Server端发送ISO镜像与Kickstart文件
Client端: - 第一步,客户端以PXE模式启动
- 第二步,客户端获取IP地址
- 第三步,通过TFTP服务器获取启动文件
- 第四步,进入Cobbler安装选择界面
- 第五步,客户端确定加载信息
- 第六步,根据配置信息准备安装系统
- 第七步,加载Kickstart文件
- 第八步,传输系统安装的其它文件
- 第九步,进行安装系统
Cobbler各主要组件关系图:
说明:
distro->profile-system(可选)
distro 发行版
面对不同的操作系统
面对同一个操作系统不同的版本
profile
核心特性是通过kickstart来部署
system
主要目的配置网络接口
检测Cobbler
cobbler的运行依赖于dhcp、tftp、rsync及dns服务,其中dhcp可由dhcpd(isc)提供,也可由dnsmasq提供;tftp可由tftp-server程序包提供,也可由cobbler功能提供,rsync有rsync程序包提供,dns可由bind提供,也可由dnsmasq提供
cobbler可自行管理这些服务中的部分甚至是全部,但需要配置可通过命令 cobbler check来查看具体配置情况
/etc/cobbler/settings文件中的“manange_dhcp”、“manager_tftpd”、“manager_rsync”、“manager_dns”分别来进行定义,另外,由于各种服务都有着不同的实现方式,如若需要进行自定义,需要通过修改/etc/cobbler/modules.conf配置文件中各服务的模块参数的值来实现。
具体操作和实现步骤:
- 关闭防火墙和selinux
#测试将原来的修改/etc/sysconfig/selinux,selinux状态改成enforcing
#然后将/etc/selinux/config,selinux状态修改成disabled
[root@17-Cobbler ~]# sed -i “s#SELINUX=enforcing#SELINUX=disabled#g” /etc/selinux/config
#重启
[root@17-Cobbler ~]# reboot
#再次获取状态,已经关闭了
[root@17-Cobbler ~]# getenforce
Disabled
#确认已经关闭了
[root@17-Cobbler ~]# sestatus
SELinux status: disabled
备注:
临时和永久关闭Selinux
1) 临时关闭:
[root@localhost ~]# getenforce
Enforcing
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive
2) 永久关闭:
[root@localhost ~]# vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
重启服务reboot
关闭防火墙
Sytemctl stop firewalld
systemctl disable firewalld
- 开启网络(访问外网)
网络配置:略 - 安装epel源
yum install -y http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
4. 安装cobbler包
yum install -y tftp tftp-server xinetd httpd dhcp pykickstart cobbler cobbler-web
-
cobbler路径介绍
/var/lib/cobbler/kickstarts/ #kicktart文件存放路径,默认使用sample_end.ks.
/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日志 -
启动apache和cobbler服务
systemctl start httpd
startenable
systemctl start cobblerd
startenable
cobbler check -
命令行输入:cobbler check
检查cobbler情况 -
按照提示解决
/etc/cobbler/settings:
修改: ->next_server: ip #PXE东西放哪
-> server: ip.
-> manage_dhcp: 1 管理dhcp
-> restart_dhcp: 1
-> defaults_password_crypted:
- 通过方式 openssl passwd -1 -salt ‘随机短语’ ‘密码’ #生成随机码
/etc/xinetd.d/tftp
-> disable改成no
-
开启rsyncd和tftp服务
systemctl start rsyncd
start enable
systemctl start xinetd
startenable -
7 : debmirror package is not installed, it will be required to manage debian deployments and repositories
提示说debmirror没安装。如果不是安装 debian之类的系统,此提示可以忽略,如果需要安装,
下载地址为:
http://rpmfind.net/linux/rpm2html/search.php?query=debmirror -
配置cobbler模板管理dhcp
vi /etc/cobbler/dhcp.template -
镜像导入(虚拟DVD,进行镜像挂载)
cd /mnt/
mkdir cdrom #创建虚拟光驱
mount -t iso9660 -o loop /systemiso/CentOS-7.2-x86_64-DVD-1511.iso /mnt/cdrom/
#挂载ISO镜像到对应虚拟光驱 -
Cobbler 镜像导入
cobbler import --path=/mnt/cdrom --name=CentOS-7.2-x86_64 --arch=x86_64 -
修改cobbler提示语
编辑 ‘/etc/cobbler/pxe/pxedefault.template’ #修改cobbler提示语
-> MENU TITLE Cobbler | http://cobbler.github.io/
-> MENU TITLE Cobbler by example | http://csdn.blog.net/changsha_csdn -
同步cobbler
systemctl restart cobblerd -
cobbler sync #同步,输出显示修改的内容
-
网卡接口标准化制定
cobbler profile edit --name=centos7.4_x86_64 --kopts=‘net.ifnames=0 biosdevname=0’ -
使用定制的ks文件
cobbler profile edit --name=centos7.4_x84_64–
kickstart=/var/lib/cobbler/kickstart/centos7.cfg -
调用cobbler的API自动装机不询问
cobbler system add --name=zfy --mac=00:0C:29:53:E0:F7 --profile=CentOS-7.4-x86_64 --ip-address=10.0.0.118 --subnet=255.255.255.0 --gateway=10.0.0.1 --interface=eth0 --static=1 --hostname=zfy.changsha.com --name-servers=“1.2.4.8 8.8.8.8”
#添加一台主机,安装指定的profile,设置主机名以及将ip设置为静态
在此,特别鸣谢其他人提供的文章,在编写的时候有借鉴:
https://www.cnblogs.com/guantouping/p/10597044.html
https://blog.csdn.net/csdn_changsha/article/details/82086092
https://blog.csdn.net/xuensong520/article/details/8922926?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare
https://blog.csdn.net/yishui8181/article/details/7950707
https://blog.csdn.net/hanzheng260561728/article/details/98614542
https://blog.csdn.net/liang_operations/article/details/80632521
https://blog.csdn.net/qq_34889607/article/details/81698063
https://blog.csdn.net/weixin_34008784/article/details/91882194?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.compare
https://blog.csdn.net/weixin_42890981/article/details/82190344
https://www.cnblogs.com/nulige/p/6796593.html