码迷,mamicode.com
首页 > 其他好文 > 详细

运维自动化工具 Cobbler

时间:2016-06-18 06:46:26      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:

from http://www.cnblogs.com/wangxiaoqiangs/p/5354846.html

简介:

关于操作系统安装方面的自动化,早前我们使用 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-here123456
$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 中一定不能有中文,注释行也不可以!

运维自动化工具 Cobbler

标签:

原文地址:http://www.cnblogs.com/zhangqiang1981/p/5595611.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!