主机自动化部署之cobbler总结

cobbler的相关优势:

Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用。

cobbler不会因为在局域网中启动了dhcp而导致有些机器因为默认从pxe启动在重启服务器后加载tftp内容导致启动终止

Cobbler作为一个预备工具,使部署RedHat/Centos/Fedora系统更容易,同时也支持Suse和Debian系统的部署

服务集成:

PXE服务支持

DHCP服务管理

DNS服务管理

Kickstart服务支持

   yum仓库管理

Cobbler客户端Koan支持虚拟机安装和操作系统重新安装

Cobbler web界面 可以更好得管理用户操作界面

安装过程引导:

yum源的准备:
repo包的安装。
# wget http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
## rpm -ivh epel-release-6-8.noarch.rpm

cobbler网络安装:
# yum install cobbler cobbler-web httpd xinetd tftp-server rsync koan dhcpd debmirror(debian的镜像包) pykickstart cman fence-agent -y

cobbler的相关目录信息:
/var/lib/cobbler 存储导入的镜像的配置信息,kickstarts目录存放kickstarts脚本(多个.ks安装模板),snippets目录存放在kickstat配置文件中可以执行的脚本,config目录提供配置信息(比如distros和profile相关信息),还有其他目录基本上无需配置。

/var/www/cobbler 是导入发行版的操作系统的数据目录,ks_mirror里面是导入的发行版系统,images里面是所有发行版的kernel(vmlinuz)和initrd(initrd.img),用于远程网络启动
     /var/log/cobbler 是日志目录
     /etc/cobbler 是cobbler的配置文件目录,settings是主配置文件,里面还有一些相关配置模版,users.conf是用户,users.digest是用户及密码

cobbler相关命令:
#cobbler list        列出相关cobber元素(distros和profile)
#cobbler check        检查cobbler配置(一般会提示需要进行怎样的配置)
#cobbler report        列出cobbler的详细信息
#cobbler distro        查看导入的相关系统发行版信息
#cobbler profile    查看cobbler创建的相关pofile信息
#cobbler sync        同步cobbler相关配置(最好每次执行完配置后都进行修改)
#cobbler reposync    同步repo源

配置前首先进行配置检测
# 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 something other than   localhost, or kickstarting features will not work.  This should be a resolvable hostname or IP   for the boot server as reachable by all machines that will use it.
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 should match the IP of the boot   server on the PXE network.
3 :   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 to handle   x86/x86_64 netbooting, you may ensure that you have installed a *recent*   version of the syslinux package installed and can ignore this message   entirely.  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 the   easiest way to resolve these requirements.
4 :   change ‘disable’ to ‘no’ in /etc/xinetd.d/rsync
5 :   since iptables may be running, ensure 69, 80/443, and 25151 are unblocked
6 :   debmirror package is not installed, it will be required to manage debian   deployments and repositories
7 :   ksvalidator was not found, install pykickstart
8 : The   default password used by the sample templates for newly installed machines   (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
9 :   fencing tools were not found, and are required to use the (optional) power   management features. install cman or fence-agents to use them

Restart cobblerd and then run ‘cobbler sync’ to apply changes.
1.提示需要在/etc/cobbler/settings中进行配置server选项。指定ip或者主机名
2.在主配置文件中修改next_server选项,以便使用pxe功能
3.缺少网络启动的boot-loader,可以执行"cobbler get-loaders"进行下载
4.开启rsync功能(在/etc/xinetd.d/rsync中选择启用)
5.让iptables可以允许69,80,443等端口访问(可以直接使用iptables -F关闭)
6.debmirror包没有安装(这个是用来管理debian系统的配置和repo)
7.提示安装pykickstart
8.在主配置文件中的default_password_crypted需要进行设置(使用‘openssl passwd -1 -salt "任意字符" "密码"‘)注意,此密码会被默认用来做系统的root密码
9.fence工具没装,需要被用来管理电源。可以安装cman或者fence-agents
注意:执行完相关操作之后,请进行重启cobbler服务,并进行‘cobbler sync‘操作。

重启cobbler,重启httpd,执行cobbler check执行检测。

# openssl passwd -1                    新建cobbler密码
(# openssl passwd -1 -salt ‘wyadmin‘ ‘wyadmin‘        密码为wyadmin,生成一个加密字符
$1$wyadmin$eC7GvOUyR0IKHPqo5.FLg0)
注意:(这块就是root密码)
详情可以观察/var/lib/cobbler/kickstart/sample.ks中的密码文件($default_password_crypted)而这个就是使用openssl生成的密码(在/etc/cobbler/settings中配置过)

主配置文件详情:
# vim /etc/cobbler/settings
server: 10.45.249.101
next_server: 10.45.249.101
default_password_crypted: "$1$wyadmin$eC7GvOUyR0IKHPqo5.FLg0"
manage_dhcp: 1                        启用dhcp(让cobbler进行控制dhcp)
default_kickstart: /var/lib/cobbler/kickstarts/default.ks当在使用kickstart新建操作系统(其实这个文件是空的,默认可用的是sample.ks)

启用tftp(disabled = no)
启用rsync
启动cobbler,dhcpd,httpd.关闭selinux(setenforce 0暂时关闭)

# cobbler get-loaders                     会去pxe启动需要的loader(boot-loader),执行此命令会进行下载boot-loader
# cobbler check                              再次检测cobbler所需要的配置

重启cobbler并且执行cobbler sync

配置DHCP:
修改dhcp代理文件(简单的dhcp修改)

# vim /etc/cobbler/dhcp.template            需要修改的地方(子网,网管以及范围的设置)
subnet 10.45.249.0 netmask 255.255.255.0 {
     option routers             10.45.249.102;
     option domain-name-servers 10.45.249.102;
     option subnet-mask         255.255.255.0;
     range dynamic-bootp        10.45.249.10 10.45.249.0;
     default-lease-time         21600;
     max-lease-time             43200;
     next-server                $next_server;        这里使用的是一个变量

# vim /etc/dhcp/dhcpd.conf                 可用进行简单的配置,将所有服务重启后会发现这个文件和上面那个文件同步了
然而,刚开始配置好dhcp后很多情况下dhcp是无法启动的。
# cat /etc/sysconfig/dhcpd
DHCPDARGS=eth1

同步cobbler配置:
/etc/init.d/cobblerd restart                 再次重启后发现dhcp启动了
/etc/init.d/xinetd restart
/etc/init.d/dhcpd restart
/etc/init.d/httpd restart

###cobbler sync                     在执行sync命令后会显示相关的服务启动                    
注意,每次修改完dhcp配置后,执行cobbler sync同步
注意:有时候dhcp服务不能起来,需要进行cobbler sync后才能启动

#mount /dev/cdrom /mnt                    挂载镜像文件

# cobbler import --path=/mnt --name=rhel6.6_x86-64    导入系统介质(对distros起名)默认就导入/var/www/cobbler/ksmirror目录
task started: 2015-03-25_040449_import
task started (id=Media import, time=Wed Mar 25 04:04:49 2015)
Found a candidate signature: breed=redhat, version=rhel6
Found a matching signature: breed=redhat, version=rhel6
Adding distros from path /var/www/cobbler/ks_mirror/rhel6.6_x86-64:
creating new distro: rhel6.6-64-x86_64
trying symlink: /var/www/cobbler/ks_mirror/rhel6.6_x86-64 -> /var/www/cobbler/links/rhel6.6-64-x86_64
creating new profile: rhel6.6-64-x86_64
associating repos
checking for rsync repo(s)
checking for rhn repo(s)
checking for yum repo(s)
starting descent into /var/www/cobbler/ks_mirror/rhel6.6_x86-64 for rhel6.6-64-x86_64
processing repo at : /var/www/cobbler/ks_mirror/rhel6.6_x86-64
directory /var/www/cobbler/ks_mirror/rhel6.6_x86-64 is missing xml comps file, skipping
*** TASK COMPLETE ***

重启以下服务:
xinted cobblerd httpd dhcpd

# cobbler list         查看cobbler属性
distros:        可用的发行版
   rhel6.6-64-x86_64    
profiles:        对应的配置文件(其实就是系统启动模板)
   rhel6.6-64-x86_64
systems:        系统的设置,针对系统对应的主机名.ip.MAC进行系统安装
repos:            软件仓库
images:
mgmtclasses:
packages:

files:

定义kickstart文件:
设置profile,关联镜像和kickstart文件,profile可以理解为按角色进行分类

用cobbler安装操作系统时,cobbler真正执行的kickstart文件其实不是 /var/lib/cobbler/kickstarts/default.ks,
而是 /var/lib/cobbler/kickstarts/sample.ks,可在配置文件/etc/cobbler/settings中看到。
在这块其实可以定义多个ks的文件,进行关联多个profile模板.

配置profile和system,使用某个kickstart文件:
1.添加profile(在装机启动的时候其实就会看见RHEL6.6.X86和rhel6.6-64-x86_64选项)
# cobbler profile add --name=RHEL6.6.X86 --distro=rhel6.6-64-x86_64 --kickstart=/var/lib/cobbler/kickstarts/esxi4-ks.cfg  
(从rhel6.6-64-x86_64镜像中,按照ks.cfg文件生成一个安装模板)

将distro设定为自己的镜像(cobbler list)
(注意,这个其实就是相当于修改一个装机模板,用来在装机选择新加的esxi4-ks.cfg)

2.变更profile配置名称
# cobbler profile rename --name=centos6.6 --newname=rhel6.6-x86_64
(cobbler list的时候可以查看到两个profile)

3.删除profile配置
# cobbler profile remove --name=rhel6.6-x86_64

测试安装,类似于PXE,直接安装就可。

可以看到两个安装选项,这个就是之前创建的两个profile。安装步骤就不再贴图。

优化:在整个安装中需要手动管理几部分,这块其实可以自定义好ks文件,进行全自动化安装。

虚拟机创建成功!

注意:如果安装的主机在某一个时间段被黑了,或则系统想统一,那么可以使用cobbler中的koan来重新安装。

重装:
1.在客户端安装koan
#yum install koan -y
2.查看cobbler服务器上可选的安装列表
# koan --list=profiles --server=10.45.249.102
- looking for Cobbler at http://10.45.249.102:80/cobbler_api
rhel6.6-x86_64
rhel6.6-64-x86_64
3.下载重装模板(下载完毕后提示重启)
# koan --replace-self --server=10.45.249.102 --profile=rhel6.6-64-x86_64
4.执行重启安装
#reboot
重启之后主机会进行重新初始化设置,重新安装系统!

时间: 2024-12-11 22:37:40

主机自动化部署之cobbler总结的相关文章

自动化部署之cobbler的安装

概述  cobbler 作为物理机操作系统批量部署工具,应用非常广泛,可以实现从系统安装到 配置几乎无认为干涉的全自动化部署,他使用 dnsmasq 作为内部的 dhcp 和 dns 服 务器.可以自定义其 snippets 脚本来实现更复杂的安装配置操作.而且他支持 web ui 来进行配置.其核心组件主要有: Distros:定义Linux发行版 Profiles:安装组合配置文件,即可以通过前两者和不同 kickstart 或seed文件的组合,来部署具有不同功能的 linux 服务器.

cobbler自动化部署指南

文章结构 1. 前言 2. cobbler安装 3. 系统定制 4. 参考链接 前言: 给电脑装过系统的同学都知道,不论是从U盘.光驱或者其他设备装系统,都需要先在BIOS里设置开机启动项(或用开机快捷键设置).从上大学到现在,我帮同学装系统少说也有上百次,但是还从来没有使用从网卡启动安装过,虽然以前也注意到,但一直不知道那是个什么玩意,见图(1).前段时间在实习公司做Openstack的自动化安装与部署工作,才有幸接触到,原来这是一种从网卡远程启动的技术! 图1 BIOS启动项界面 要从网卡启

Cobbler自动化部署最佳实践

第1章 Cobbler自动化部署最佳实践 运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统,如果不通过自动化来完成,根本是不可想象的. 面对生产环境中不同服务器的需求,该如何实现批量部署多版本的操作系统呢?Cobbler便可以的满足这一实际需求,实现多版本操作系统批量部署. 笔者QQ:572891887 Linux架构交流群:471443208 1.1 Cobbler简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整

cobbler之自动化部署ubuntu14

概述    本例主要实现通过cobbler,配合seed脚本文件,来自动化安装部署ubunut环境,并安装相应的软件并作相应的基本配置,可以通过此方法来为ceph等大规模集群基础部署. seed文件:Debian ubuntu平台的一种自动化部署配置文件 和kickstart文件功能相同.其实ubuntu也可以使用ks文件,但是只能进行基本的环境配置,不能自定义包的安装和脚本的运行. 实验环境 cobbler-server: 1.1.1.122 centos7.2 ubuntu 客户端:kvm虚

自动化部署java maven项目到多个目标主机的Shell脚本

本篇是<Linux Shell脚本之远程自动化部署java maven项目>的姊妹篇,但包含了bug.issue修正和添加了更多的支持特性,可以从GitHub上获取最新脚本内容:https://github.com/DingGuodong/AutomaticDeployJavaMavenProject . 自动化部署java maven项目到多个主机的环境条件假设: 1.java maven项目至多有一个依赖项目 2.多个目标主机上的部署目录是相同的 支持特性: 1.在部署主机上将java m

cobbler 批量自动化部署 Linux 系统

实验介绍:Cobbler自动化部署linux系统,比PXE部署方式效率更高,因此在大多环境中,以cobbler 方式部署系统,更为方便:具体步骤如下所示: 若描述有误欢迎拍砖交流QQ:45223208 1.安装cobbler 和 DHCP服务: yum install cobbler -y yum install dhcp -y 2. 启动服务 systemctl start cobbler tftp httpd systemctl enable cobbler tftp httpd 3. 根据

搭建Puppet自动化部署环境

最近项目上线,自己在部署过程中发现很多问题,发现没有自动化部署工具简直就是纯体力活儿,费时又费力,干的事就是那几个,就不能"一键完成么"的想法油然而生,答案是肯定的,自动化的工具有很多,之所以安装Puppet,只是因为比起别的软件,这款软件原来有学习过,现在又重新拾起来,要把它用到生产环境中,让运维工作不再是体力活,而是实现,全自动部署,更新,这篇只是聊聊安装和配置Puppet,后续还会写具体在生产环境中如何实现自动化代码更新,软件部署等,敬请期待~ 环境介绍: puppetserve

持续集成+自动化部署[代码流水线管理及Jenkins和gitlab集成]

持续集成+自动化部署[代码流水线管理及Jenkins和gitlab集成] 标签(空格分隔): Jenkins 一.代码流水线管理 Pipeline名词顾名思义就是流水线的意思,因为公司可能会有很多项目.如果使用jenkins构建完成后,开发构建项目需要一项一项点击,比较麻烦.所以出现pipeline名词. 代码质量检查完毕之后,我们需要将代码部署到测试环境上去,进行自动化测试 新建部署代码项目 点击新建 这里只需要写一下描述 执行Shell脚本 温馨提示:执行命令主要涉及的是权限问题,我们要搞明

MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现

Technorati 标签: 那你魔鬼 一.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读