运维自动化工具 Cobbler

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

简介:html

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

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

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

## 关闭 SELinux 、iptables !!!shell

1、支撑环境安装vim

shell > yum -y install epel-release ## 安装 epel 源 shell > yum -y install cobbler httpd rsync tftp-server xinetd dhcp pykickstart fence-agents

2、配置 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
复制代码

## 这个东西你们都知道。app

2、配置 Cobblerdom

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 密码
复制代码

3、配置 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: [肯定]
复制代码

3、导入安装源

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:
复制代码

4、建立 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 文件。
## 看到第一行注释行中有一个汉字了吗?就是这个汉字让我卡了两天...( 文件中不要有汉字 )

5、关联 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 ( 6九、80、25151 ) 端口。

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

相关文章
相关标签/搜索