阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux运维自动化工具 Cobbler

131次阅读
没有评论

共计 9165 个字符,预计需要花费 23 分钟才能阅读完成。

简介:

关于操作系统安装方面的自动化,早前我们使用 RedHat 推出的 Kickstart 来批量安装操作系统,近年来 RedHat 又推出一个 Cobbler。

Cobbler 使用 Python 开发,小巧轻便,能够完成系统安装、甚至一些服务的管理。(号称是补鞋匠都能学会的工具)

Cobbler 支持命令行管理、web 界面管理、还提供了 API 接口,以便二次开法。

## 关闭 SELinux、iptables!!!

一、支撑环境安装

shell > yum -y install epel-release ## 安装 epel 源

shell > yum -y install cobbler httpd rsync tftp-server xinetd dhcp pykickstart fence-agents

二、配置 Tftp、Rsync

 

shell > vim /etc/xinetd.d/tftp

service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no ## 原为 yes
per_source = 11
cps = 100 2
flags = IPv4
}

shell > vim /etc/xinetd.d/rsync

service rsync
{
disable = no ## 原为 yes
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = –daemon
log_on_failure += USERID
}

shell > vim /etc/httpd/conf

ServerName 127.0.0.1:80

 

## 这个东西大家都知道。

二、配置 Cobbler

shell > openssl passwd -1 -salt ‘random-phrase-here’ ‘123456’
$1$random-p$mzxQ/Sx848sXgvfwJCoZM0

## 生成 root 密码(此密码为新安装的客户机 root 密码)

 

shell > vim /etc/cobbler/settings

manage_dhcp: 1 ## 原为 0

manage_tftpd: 1

manage_rsync: 1 ## 原为 0

next_server: 192.168.214.10 ## 本机 IP

server: 192.168.214.10 ## 本机 IP

default_password_crypted: “$1$random-p$mzxQ/Sx848sXgvfwJCoZM0” ## 生成的 root 密码

 

三、配置 DHCP

 

shell > vim /etc/cobbler/dhcp.template ## 直接修改这个文件即可

subnet 192.168.214.0 netmask 255.255.255.0 {
option routers 192.168.214.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.214.100 192.168.214.120;
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;

 

## 只修改这个区域的 IP 为合适的 IP 即可

 

shell > chkconfig –add httpd
shell > chkconfig –add xinetd
shell > chkconfig –add dhcpd
shell > chkconfig –add cobblerd
shell > service httpd start
正在启动 httpd:
shell > service xinetd start
正在启动 xinetd:[确定]
shell > service dhcpd start
正在启动 dhcpd:[失败]
shell > service cobblerd start
Starting cobbler daemon: [确定]

shell > cobbler check ## 检查配置
Traceback (most recent call last):
File “/usr/bin/cobbler”, line 36, in <module>
sys.exit(app.main())
File “/usr/lib/python2.6/site-packages/cobbler/cli.py”, line 655, in main
rc = cli.run(sys.argv)
File “/usr/lib/python2.6/site-packages/cobbler/cli.py”, line 270, in run
self.token = self.remote.login(“”, self.shared_secret)
File “/usr/lib64/python2.6/xmlrpclib.py”, line 1199, in __call__
return self.__send(self.__name, args)
File “/usr/lib64/python2.6/xmlrpclib.py”, line 1489, in __request
verbose=self.__verbose
File “/usr/lib64/python2.6/xmlrpclib.py”, line 1253, in request
return self._parse_response(h.getfile(), sock)
File “/usr/lib64/python2.6/xmlrpclib.py”, line 1392, in _parse_response
return u.close()
File “/usr/lib64/python2.6/xmlrpclib.py”, line 838, in close
raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault 1: “<class ‘cobbler.cexceptions.CX’>:’login failed'”>

shell > cobbler get-loaders(解决方法)

[shell > cobbler check ## 再次检查
The following are potential configuration items that you may want to fix:

1 : service dhcpd is not running
2 : debmirror package is not installed, it will be required to manage debian deployments and repositories

Restart cobblerd and then run ‘cobbler sync’ to apply changes.

## 1:提示 dhcpd 没有运行,先不管
## 2:提示 debmirror 没有安装。如果不是安装 debian 之类的系统,可以忽略此提示。
(如需安装,下载地址为:http://rpmfind.net/linux/rpm2html/search.php?query=debmirror)

shell > cobbler sync ## 同步操作
task started: 2015-05-27_010456_sync
task started (id=Sync, time=Wed May 27 01:04:56 2015)
running pre-sync triggers
cleaning trees
mkdir: /var/lib/tftpboot/pxelinux.cfg
mkdir: /var/lib/tftpboot/grub
mkdir: /var/lib/tftpboot/s390x
mkdir: /var/lib/tftpboot/ppc
mkdir: /var/lib/tftpboot/etc
removing: /var/lib/tftpboot/grub/images
copying bootloaders
trying hardlink /var/lib/cobbler/loaders/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0
trying hardlink /var/lib/cobbler/loaders/menu.c32 -> /var/lib/tftpboot/menu.c32
trying hardlink /var/lib/cobbler/loaders/yaboot -> /var/lib/tftpboot/yaboot
trying hardlink /var/lib/cobbler/loaders/grub-x86.efi -> /var/lib/tftpboot/grub/grub-x86.efi
trying hardlink /var/lib/cobbler/loaders/grub-x86_64.efi -> /var/lib/tftpboot/grub/grub-x86_64.efi
copying distros to tftpboot
copying images
generating PXE configuration files
generating PXE menu structure
rendering DHCP files
generating /etc/dhcp/dhcpd.conf
rendering TFTPD files
generating /etc/xinetd.d/tftp
cleaning link caches
rendering Rsync files
running post-sync triggers
running python triggers from /var/lib/cobbler/triggers/sync/post/*
running python trigger cobbler.modules.sync_post_restart_services
running: dhcpd -t -q
received on stdout:
received on stderr:
running: service dhcpd restart
received on stdout: 正在启动 dhcpd:[确定]

received on stderr:
running shell triggers from /var/lib/cobbler/triggers/sync/post/*
running python triggers from /var/lib/cobbler/triggers/change/*
running python trigger cobbler.modules.scm_track
running shell triggers from /var/lib/cobbler/triggers/change/*
*** TASK COMPLETE ***

shell > service xinetd restart
停止 xinetd:[确定]
正在启动 xinetd:[确定]
shell > service cobblerd restart
Stopping cobbler daemon: [确定]
Starting cobbler daemon: [确定]

 

三、导入安装源

shell > mount /dev/cdrom /mnt/

shell > cobbler import –path=/mnt/ –arch=x86_64 –name=CentOS-6.6-minimal

## 输出信息略(Cobbler 将镜像拷贝一份放在 /var/www/cobbler/ks_mirror/Centos-6.6-minimal-x86_64 目录下)
(同时会创建一个名为 Centos-6.6-minimal-x86_64 的发布版本及 profile 文件)

 

shell > cobbler list
distros:
Centos-6.6-minimal-x86_64

profiles:
Centos-6.6-minimal-x86_64

systems:

repos:

images:

mgmtclasses:

packages:

files:

 

四、创建 ks 文件

 

shell > vim /var/lib/cobbler/kickstarts/Centos-6.6_minimal-x86_64.ks

# platform=x86, AMD64, 或 Intel EM64T
# version=DEVEL
# Firewall configuration
firewall –disabled
# Install OS instead of upgrade
install
# Use network installation
url –url=”http://192.168.214.10/cobbler/ks_mirror/Centos-6.6-minimal-x84_64/”
# Root password
rootpw –iscrypted $1$hk0MvN4A$Dz.sYvyDjac1.cMVTk9270
# System authorization information
auth –useshadow –passalgo=sha512
# Use text mode install
text
# System keyboard
keyboard us
# System language
lang zh_CN
# SELinux configuration
selinux –disabled
# Do not configure the X Window System
skipx
# Installation logging level
logging –level=info
# Reboot after installation
reboot
# System timezone
timezone –isUtc Asia/Shanghai
# Network information
network –bootproto=dhcp –device=eth0 –onboot=on
# System bootloader configuration
bootloader –location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart –all –initlabel
# Disk partitioning information
part /boot –fstype=”ext4″ –size=200
part swap –fstype=”swap” –size=1024
part / –fstype=”ext4″ –grow –size=1

 

## 这是我安装了 system-config-kickstart 在图形界面生成的 ks 文件。
## 看到第一行注释行中有一个汉字了吗?就是这个汉字让我卡了两天 …(文件中不要有汉字)

五、关联 ks 文件

shell > cobbler distro list
Centos-6.6-minimal-x86_64

## 有一个镜像

 

shell > cobbler profile report –name Centos-6.6-minimal-x86_64
Name : Centos-6.6-minimal-x86_64
TFTP Boot Files : {}
Comment :
DHCP Tag : default
Distribution : Centos-6.6-minimal-x86_64
Enable gPXE? : 0
Enable PXE Menu? : 1
Fetchable Files : {}
Kernel Options : {}
Kernel Options (Post Install) : {}
Kickstart : /var/lib/cobbler/kickstarts/sample_end.ks
Kickstart Metadata : {}
Management Classes : []
Management Parameters : <<inherit>>
Name Servers : []
Name Servers Search Path : []
Owners : [‘admin’]
Parent Profile :
Proxy :
Red Hat Management Key : <<inherit>>
Red Hat Management Server : <<inherit>>
Repos : []
Server Override : <<inherit>>
Template Files : {}
Virt Auto Boot : 1
Virt Bridge : xenbr0
Virt CPUs : 1
Virt Disk Driver Type : raw
Virt File Size(GB) : 5
Virt Path :
Virt RAM (MB) : 512
Virt Type : kvm

 

## 看到这个镜像默认使用的 ks 文件为 /var/lib/cobbler/kickstarts/sample_end.ks

shell > cobbler profile add –name=Centos-6.6-minimal –distro=Centos-6.6-minimal-x86_64 –kickstart=/var/lib/cobbler/kickstarts/Centos-6.6_minimal-x86_64.ks

## 关联后,再次查看是否关联成功

 

shell > cobbler profile report –name Centos-6.6-minimal
Name : Centos-6.6-minimal
TFTP Boot Files : {}
Comment :
DHCP Tag : default
Distribution : Centos-6.6-minimal-x86_64
Enable gPXE? : 0
Enable PXE Menu? : 1
Fetchable Files : {}
Kernel Options : {}
Kernel Options (Post Install) : {}
Kickstart : /var/lib/cobbler/kickstarts/Centos-6.6_minimal-x86_64.ks
Kickstart Metadata : {}
Management Classes : []
Management Parameters : <<inherit>>
Name Servers : []
Name Servers Search Path : []
Owners : [‘admin’]
Parent Profile :
Proxy :
Red Hat Management Key : <<inherit>>
Red Hat Management Server : <<inherit>>
Repos : []
Server Override : <<inherit>>
Template Files : {}
Virt Auto Boot : 1
Virt Bridge : xenbr0
Virt CPUs : 1
Virt Disk Driver Type : raw
Virt File Size(GB) : 5
Virt Path :
Virt RAM (MB) : 512
Virt Type : xenpv

 

## 已经关联成功!

 

shell > cobbler –help
usage
=====
cobbler <distro|profile|system|repo|image|mgmtclass|package|file> …
[add|edit|copy|getks*|list|remove|rename|report] [options|–help]
cobbler <aclsetup|buildiso|import|list|replicate|report|reposync|sync|validateks|version|signature|get-loaders|hardlink> [options|–help]

shell > cobbler profile –help
usage
=====
cobbler profile add
cobbler profile copy
cobbler profile dumpvars
cobbler profile edit
cobbler profile find
cobbler profile getks
cobbler profile list
cobbler profile remove
cobbler profile rename
cobbler profile report

 

## 它有多种方法,添加、编辑、移除等等(用到时,请自己琢磨)。

shell > cobbler sync

## 同步一下配置,客户端开机测试

## 从网络引导进入后,会有一个选择列表,选择要安装 profile,就可以自动完成安装。

## 修改 ks.cfg 文件后,不需要 sync 就可以直接生效!

## 如果不想关闭防火墙,那么请打开 TCP (69、80、25151) 端口。

## 遇到问题仔细观察,ks.cfg 中一定不能有中文,注释行也不可以!

Linux 运维自动化之 Cobbler 安装部署 RHEL7.0  http://www.linuxidc.com/Linux/2015-09/123326.htm

Cobbler 自动批量部署 CentOS 6 和 CentOS 7   http://www.linuxidc.com/Linux/2015-09/122945.htm

自动化安装工具 Cobbler 简易安装配置 http://www.linuxidc.com/Linux/2015-09/122569.htm

Cobbler 批量安装 Ubuntu/CentOS 系统  http://www.linuxidc.com/Linux/2015-02/113167.htm

运维自动化之 Cobbler 安装配置 http://www.linuxidc.com/Linux/2013-03/81575.htm

RHEL5.5 下 Cobbler 的配置 http://www.linuxidc.com/Linux/2013-06/86115.htm

运维自动化部署 Cobbler 之服务安装篇 http://www.linuxidc.com/Linux/2013-02/80133.htm

利用 Cobbler 批量快速网络安装 CentOS http://www.linuxidc.com/Linux/2012-12/75838.htm

CentOS 6.3 上安装部署 Cobbler http://www.linuxidc.com/Linux/2012-10/72094.htm

Cobbler 批量部署 Linux 系统 http://www.linuxidc.com/Linux/2014-02/97259.htm

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-04/129977.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计9165字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中