简介:

关于操作系统安装方面的自动化,早前我们使用 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 =
cps =
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:

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

二、配置 Cobbler

shell > openssl passwd - -salt 'random-phrase-here' ''
$$random-p$mzxQ/Sx848sXgvfwJCoZM0

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

shell > vim /etc/cobbler/settings

manage_dhcp:  ## 原为 

manage_tftpd: 

manage_rsync:  ## 原为 

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 ;
max-lease-time ;
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 , in <module>
sys.exit(app.main())
File "/usr/lib/python2.6/site-packages/cobbler/cli.py", line , in main
rc = cli.run(sys.argv)
File "/usr/lib/python2.6/site-packages/cobbler/cli.py", line , in run
self.token = self.remote.login("", self.shared_secret)
File "/usr/lib64/python2.6/xmlrpclib.py", line , in __call__
return self.__send(self.__name, args)
File "/usr/lib64/python2.6/xmlrpclib.py", line , in __request
verbose=self.__verbose
File "/usr/lib64/python2.6/xmlrpclib.py", line , in request
return self._parse_response(h.getfile(), sock)
File "/usr/lib64/python2.6/xmlrpclib.py", line , in _parse_response
return u.close()
File "/usr/lib64/python2.6/xmlrpclib.py", line , in close
raise Fault(**self._stack[])
xmlrpclib.Fault: <Fault : "<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: : service dhcpd is not running
: 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. ## :提示 dhcpd 没有运行,先不管
## :提示 debmirror 没有安装。如果不是安装 debian 之类的系统,可以忽略此提示。
(如需安装,下载地址为:http://rpmfind.net/linux/rpm2html/search.php?query=debmirror) shell > cobbler sync ## 同步操作
task started: --27_010456_sync
task started (id=Sync, time=Wed May :: )
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. -> /var/lib/tftpboot/pxelinux.
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_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 $$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=
part swap --fstype="swap" --size=
part / --fstype="ext4" --grow --size=

## 这是我安装了 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? :
Enable PXE Menu? :
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 :
Virt Bridge : xenbr0
Virt CPUs :
Virt Disk Driver Type : raw
Virt File Size(GB) :
Virt Path :
Virt RAM (MB) :
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_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? :
Enable PXE Menu? :
Fetchable Files : {}
Kernel Options : {}
Kernel Options (Post Install) : {}
Kickstart : /var/lib/cobbler/kickstarts/Centos-.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 :
Virt Bridge : xenbr0
Virt CPUs :
Virt Disk Driver Type : raw
Virt File Size(GB) :
Virt Path :
Virt RAM (MB) :
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的更多相关文章

  1. Ansible运维自动化工具19个常用模块使用实例【转】

    一.模块列表 1.setup 2.ping 3.file 4.copy 5.command 6.shell 7.script 8.cron 9.yum 10.service 11.group 12.u ...

  2. 运维自动化之Cobbler系统安装详解

    原文链接 参考文档 参考文档SA们现在都知道运维自动化的重要性,尤其是对于在服务器数量按几百台.几千台增加的公司而言,单单是装系统,如果不通过自动化来完成,根本是不可想象的. 运维自动化安装方面,早期 ...

  3. 运维自动化工具ansible

    企业级自动化运维工具应用实战ansible 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出 ...

  4. 使用Chef管理windows集群 | 运维自动化工具

    但凡服务器上了一定规模(百台以上),普通的ssh登录管理的模式就越来越举步维艰.试想Linux发布了一个高危漏洞的补丁,你要把手下成百上千台机器都更新该补丁,如果没有一种自动化方式,那么至少要耗上大半 ...

  5. Ansible运维自动化工具

    1>Ansible 1>ansible简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabri ...

  6. 运维自动化之Cobbler系统安装使用详解[good]

    一.简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成P ...

  7. 运维自动化工具 Kickstart

    简介: 批量安装操作系统工具之 Kickstart ,RedHat 早前推出的产品( 不多说了,现在都玩 Cobbler 啦 ). 测试环境:CentOS 6.6 x86_64 minimal 一.安 ...

  8. 运维自动化工具---Puppet

    案例环境:-----------------------------------------------------------------主机  操作系统   IP地址  主要软件--------- ...

  9. Centos7安装配置ansible运维自动化工具

    准备至少两台机器 Centos7,这两台机器都关闭 selinux IP:106.13.118.132 服务端(ansible) masterIP:148.70.60.244 节点 slaver 服务 ...

随机推荐

  1. SQl_update,case_when,end

    627.Given a table salary, such as the one below, that has m=male and f=female values. Swap all f and ...

  2. iOS 模态框覆盖导航栏

    1.使用window 覆盖 2.试图添加到 如果有一个场景:首页三个tab,要求只覆盖Navigation ,而不影响Tab使用,那么使用window 覆盖就不满足了.      这里我们可以使用如下 ...

  3. fabio 安装试用&&实际使用的几个问题

    备注:    因为fabio 依赖consul vault (不是强需),启动之前需要先安装consul,    本次为了简单consul 使用的是单机,使用的是dev 模式   1. conusl ...

  4. springboot: 集成jdbc

    1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...

  5. Spring整合JavaMail

    1.添加jar包 #此处省略spring基础相关jar包描述,以下是发送邮件相关jar包 <dependency> <groupId>org.springframework&l ...

  6. angular指令,异步调用数据,监控数据的变化(自定义一个表头的指令)

    angular框架中提供了很多有效的指令,指令的目的就是为了提高代码的复用率,提高工作效率. 下面我们自己来定义一个指令: 一点建议:写指令名字的时候,尽量不要用用大写,下划线等,否则会有很大的坑等着 ...

  7. PhpStorm 2017.3 版本在 Mac 系统 macOS High Sierra 版本 10.13.3 中运行很卡顿

    最近升级了系统,发现PHPStorm 运行一会儿就卡顿起来了,按网上的方法加大内存配置也是没效果: 运行一会儿照样卡顿,接着一会儿就要内存溢出了挂掉了: 想着最近只有升级过操作系统,并没有升级JDK等 ...

  8. 18.9.10 LeetCode刷题笔记

    本人算法还是比较菜的,因此大部分在刷基础题,高手勿喷 选择Python进行刷题,因为坑少,所以不太想用CPP: 1.买股票的最佳时期2 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. ...

  9. 常见企业IT支撑【2、samba共享文件夹】

    samba共享文件夹,较Window自带的比较:开源,安全 建议安装samba4,兼容性好 1.安装samba #yum -y install samba4 samba4-client 2.备份sam ...

  10. Ubantu 安装fftw3

    FFTW官网 FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散傅里叶变换的标准C语言程序集. ubuntu下安装指令: sudo a ...