标签:配置文件 python profile 操作系统 system
目录
Cobbler由python语言开发,是对PXE和Kickstart以及DHCP的封装。融合很多特性,提供了CLI和Web的管理形式。更加方便的实行网络安装。适用场景:需要大批量的部署操作系统。
Distros(发行版):表示一个操作系统。它承载了内核和 initrd 的信息,以及内核参数等其他数据。
profile:定义Kickstart文件
repos:安装源
system:表示要配给的机器。它包含一个配置文件或一个镜像,还包含 IP 和 MAC 地址、电源管理(地址、凭据、类型)以及更为专业的数据等信息。
image:可替换一个包含不属于此类别的文件的发行版对象(例如,无法分为内核和 initrd 的对象)。
集成的服务
PXE 服务
DHCP服务管理
DNS服务管理
HTTP服务管理
TFTP服务管理
Kickstart服务
yum仓库管理
电源管理
(1).需要安装系统的客户端主机的网卡支持网络安装,也就是支持以PXE模式启动。
(2).客户端主机需要有一个IP地址来与Cobbler Server进行通信,这时网络中必须要有一个主机能自动分配IP。DHCP就是一个能为客户端主机自动分配IP地址的服务,DHCP就是安装在CobblerServer主机上。
(3).客户端得到IP地址后,需要提供一个引导程序pxelinux.0(类似于grub) 此文件由syslinux程序提供,所以需要安装syslinux并且能加载内核及内核镜像文件(vmlinuz与initrd.img),客户端可以通过TFTP协议到TFTP Server上下载内核及内核镜像文件(vmlinuz与initrd.img),所以需要一个TFTP 服务,TFTP也是安装在Cobbler Server主机上,客户端只是知道可以用TFTP协议下载文件,但是TFTP Server的IP是那个,这个还得需要DHCP服务器指名告诉客户端那个是TFTP Server(注,所以我们在配置DHCP模板时指定next-server,同时指定了filename,这里的filename就是指定的pxelinux.0引导程序),而TFTP服务需要超级进程进行管理,此进程是xinetd,因此需要在Cobbler Server上安装xinet服务。
(4).然后通过distro找到安装的发行版,通过设置的profile找到kickstart文件,完成自动安装。
1、系统版本(最小化安装)
cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
uname -r
3.10.0-327.el7.x86_64
cat /etc/hosts
127.0.0.1 localhostlocalhost.localdomain localhost4 localhost4.localdomain4
::1 localhostlocalhost.localdomain localhost6 localhost6.localdomain6
192.168.56.11 linux.node1.expmale.com
2、防火墙等
systemctl stop firewalld.service
systemctl disable firewalld.service
2、关闭selinux
3、IP地址:inet 192.168.56.11
wget -O/etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
yum -y install httpd dhcp tftp cobbler xinetd
systemctl start httpd
systemctl start cobblerd.service
/etc/cobbler/settings cobbler主配置文件
/etc/cobbler/iso/ iso模板配置文件
/etc/cobbler/pxe pxe模板文件
/etc/cobbler/power 电源的配置文件
/etc/cobbler/users.conf Web 服务授权配置文件
/etc/cobbler/users.digest 用于web访问的用户名密码配置文件
/etc/cobbler/dhcp.template DHCP服务的配置模板
/etc/cobbler/dnsmasq.template DNS服务的配置模板
/etc/cobbler/tftpd.template tftp服务的配置模板
/etc/cobbler/modules.conf Cobbler模块配置文件
(命令部分全部加粗,特别注意的地方标红字)
cobbler check
The following are potential configuration items that you may want to fix:
1 : The ‘server‘ field in /etc/cobbler/settings must be set to somethingother than localhost, or kickstarting features will not work. This should be a resolvable hostname or IPfor the boot server as reachable by all machines that will use it.
(请修改server标签的IP地址,配置文件是/etc/cobbler/settings,在384行,注意不要删除空格。)
2 : For PXE to be functional, the ‘next_server‘ field in/etc/cobbler/settings must be set to something other than 127.0.0.1, and shouldmatch the IP of the boot server on the PXE network.
(请修改next_server标签的IP地址为本机网卡地址,不可以使用127.0.0.1,配置文件是/etc/cobbler/settings,在272行)
3 : change ‘disable‘ to ‘no‘ in /etc/xinetd.d/tftp
(请开启tftp服务,更改/etc/xinetd.d/tftp disable改为 enable在14行,启动xinetd服务
systemctl start xinetd.service)
4 : some network boot-loaders are missing from /var/lib/cobbler/loaders,you may run ‘cobbler get-loaders‘ to download them, or, if you only want tohandle x86/x86_64 netbooting, you may ensure that you have installed a *recent*version of the syslinux package installed and can ignore this messageentirely. Files in this directory,should you want to support all architectures, should include pxelinux.0,menu.c32, elilo.efi, and yaboot. The ‘cobbler get-loaders‘ command is theeasiest way to resolve these requirements.
(请下载这个组件,使用cobbler get-loaders下载)
5 : enable and start rsyncd.service with systemctl
(将rsync服务启动并添加为开机自动启动)
systemctl start rsyncd.service
systemctl enable rsyncd.service
6 : debmirror package is not installed, it will be required to managedebian deployments and repositories
(在debian系列的操作系统上部署,请安装这个包debmirror)
7 : ksvalidator was not found, install pykickstart
(没有找到这个软件包pykickstart,请安装)
8 : The default password used by the sample templates for newly installedmachines (default_password_crypted in /etc/cobbler/settings) is still set to‘cobbler‘ and should be changed, try: "openssl passwd -1 -salt‘random-phrase-here‘ ‘your-password-here‘" to generate new one
(random-phrase-here这一段改为密码加密前段,your-password-here这里输入你的密码)
openssl passwd -1 -salt‘password‘ ‘123456‘
$1$password$7ZK8mMeLGXxbNPeJEFJOU0
将此字符串放到/etc/cobbler/settings配置文件中的default_password_cypted配置项中,删除之前的字符串在101行
default_password_crypted: "$1$password$7ZK8mMeLGXxbNPeJEFJOU0"
(请修改安装的操作系统密码,这个123456密码为安装之后的root密码)
9 : fencing tools were not found, and are required to use the (optional)power management features. install cman or fence-agents to use them
(这个fencing功能,很少用,不用处理)
Restart cobblerd and then run ‘cobbler sync‘ to apply changes.
systemctl restart cobblerd
(重新启动cobblerd并且运行 cobbler sync同步配置。)
把以上问题处理
重新启动cobbler并重新检查一下
cobbler check
检查结果不能多于两个,上面提到的可不需要处理的直接跳过即可。
之后进行同步
cobbler sync
Cobbler自身带了管理dhcp的功能,所以不需要修改/etc/dhcp/dhcpd.conf文件,只需要修改/etc/cobbler/settings文件,将以下配置由0改为1即可。
vi /etc/cobbler/settings
242: manage_dhcp: 1
vi /etc/cobbler/dhcp.template
修改过的
subnet 192.168.56.0 netmask 255.255.255.0 {分配的地址段(固定格式)
option routers 192.168.56.2;网关地址
option domain-name-servers192.168.56.2;#dns服务器逗号分隔,可以写多个
option subnet-mask 255.255.255.0;#子网掩码
range dynamic-bootp 192.168.56.100 192.168.56.254;#分配的地址池
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;#这里掉用的就是配置文件中的变量,不要修改
systemctl restart cobblerd.service
cobbler sync
netstat -lunpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 3580/rsync
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2788/mysqld
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1300/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2433/master
tcp 0 0 127.0.0.1:25151 0.0.0.0:* LISTEN 3986/python2
tcp6 0 0 :::873 :::* LISTEN 3580/rsync
tcp6 0 0 :::80 :::* LISTEN 3948/httpd
tcp6 0 0 :::22 :::* LISTEN 1300/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2433/master
udp 0 0 0.0.0.0:69 0.0.0.0:* 4352/xinetd
上传需要安装的镜像,这里以centos7.2为例
mount-o loop /opt/CentOS-7-x86_64-DVD-1511.iso /mnt/
cobbler import --path=/mnt--name=Centos7.2-x86-64 arch=x86_64
cobbler import 导入镜像命令
--path=镜像挂载的目录
--name=镜像的名字,可以随便起
arch 系统的架构版本
再导入的同时,后台会开启rsync进程
导入的路径,在下图中均有体现,
cobbler list
准备应答文件
cd /var/lib/cobbler/kickstarts #默认的应答文件存放路径
rz
或者安装一个已准备批量部署的系统,安装图形化以及kickstart图形化工具进行应答文件生成。上传到/var/lib/cobbler/kickstarts目录下执行一下两条命令
cobbler profile list
Centos7.2-64-x86_64
cobblersetting report
cobblerprofile edit --name=Centos7.2-64-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-7.1-x86_64_cobbler.cfg
修改内核参数,使其网卡变成默认的eth0的格式(可忽略,如不想改)
cobblerprofile edit --name=Centos7.2-64-x86_64 --kopts=‘net.ifnames=0 biosdevname=0‘
cobbler profile report
如果有多个系统,请重复执行6-11步
cobbler sync
到了这一步,就可以新推机器了,将服务器设置为网卡启动,保证网络内只有一台dhcp服务器。
出现这一步,基本上就完成了,因为,如果一旦重启,一旦走网卡启动,则有可能会格式化,所以这里设计了等待原则时间,不动则就会从本地重启。
自定义界面
就是这个等待界面的自定义信息,没有什么用,生产环境下,我=我们都不用显示器 。
vi/etc/cobbler/pxe/pxedefault.template
Cobbler提供了web界面进行管理配置,非常简单。安装以下组件,即可。
yum install cobbler-web
systemctl restart httpd
默认web界面的用户名和密码控制文件在/etc/cobbler/user*
用户文件有点类似于svn的权限管理,默认不需要改变
grep "^[a-Z]"/etc/cobbler/users.conf
admin = ""
cobbler = ""
grep "^[a-Z]" /etc/cobbler/users.digest
cobbler:Cobbler:a2d6bae81669d707b72c0bd9806e01f3
以上信息是默认信息,不知道密码是多少,我们可以重新生成
htdigest/etc/cobbler/users.digest "Cobbler" cobbler
grep "^[a-Z]"/etc/cobbler/users.digest
cobbler:Cobbler:4af20912b96aba2b59fca3b8aa8aad74
打开界面https://192.168.56.11/cobbler_web
如果有需求进行重新安装操作系统,则直接在客户端装好软件,无需到机房即可安装。
在客户端安装工具koan(就是上一步安装的机器)
yum -y install koan
指定server地址
koan --server=192.168.56.11--list=profiles
指定镜像名以及操作的指令
koan --replace-self--server=192.168.56.11 --profile=Centos7.2-64-x86_64
执行完以上命令之后,会在/boot/grup2/grup.cfg中添加了一个启动项,如下图
之后进行重启
reboot
出现了这个启动项就表明,接下来会自动重新安装系统,完全自动化。
导入epel仓库
cobbler repo add --name=CentOS-7-x86_64-epel --mirror=https://mirrors.aliyun.com/epel/7Server/x86_64/ --arch=x86_64 --breed=yum
打开web界面,开始同步
构建openstack仓库
cobbler repo add --name=openstack-newton --mirror=https://mirrors.aliyun.com/centos/7.3.1611/cloud/x86_64/openstack-newton/ --arch=x86_64 --breed=yum
增加计划任务,每天进行增量同步
crontab–e
#每天一点一分进行同步,检查机制,这样可以增量同步
1 1 * * * cobbler reposync --tries=3 --no-fail
基于MAC地址继进行定制安装
如果,需求每一个mac地址绑定一个固定的IP地址,hostname提前定义好。
检查profile文件,从那个profile文件安装
cobbler profile list
Centos7.2-64-x86_64
cobblersystem add --name=linux-node3 --mac=00:50:56:35:75:16--profile=Centos7.2-64-x86_64 --ip-address=192.168.56.110--subnet=255.255.255.0 --static=1 --hostname=linux-node3.example.com--name-servers="192.168.56.2" --interface=eth0--kickstart=/var/lib/cobbler/kickstarts/CentOS-7.1-x86_64_cobbler.cfg
之后启动那个mac地址是00:50:56:35:75:16这个的服务器即可开机进行安装,整个过程不会出现选项。
Cobbler学习地址(手册)
http://www.ibm.com/developerworks/cn/linux/l-cobbler/index.html
官网地址:http://cobbler.github.io/manuals/2.8.0/
到此为止,cobbler就配置完成了,后面还有很多功能,请自行测试。Web界面,请自行测试,比较简单。
标签:配置文件 python profile 操作系统 system
原文地址:http://ttxjs.blog.51cto.com/9447327/1901797