www.bijishequ.com


关注社区微信公众号: PMvideo

主机自动化部署之cobbler总结

作者:Andy-xu 2014-12-27 收录到我的专题

标签 cobbler etc var dhcp 安装



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
重启之后主机会进行重新初始化设置,重新安装系统!





登录 后发表评论

0条评论或问题

社区邀请

笔记社区是一个面向中高端IT开发者、程序员的知识共享社区,通过网络抓取与文章分类总结,由专家为用户提供高质量的专题文章系列。 邀请您成为社区专家 >>

原文链接:https://my.oschina.net/xxbAndy/blog/394808

声明:所有文章资源均从网络抓取,如果侵犯到您的著作权,请联系删除文章。联系方式请关注微信公众号PMvideo【锤子视频-程序员喜欢的短视频】,笔记社区开发者交流群 628286713。

作者:Andy-xu 2014-12-27 收录到我的专题

22

November

相关文章

CentOS7.x系统根目录分区扩容

Ubuntu 16.04下安装CUDA8.0+Caffe+TensorFlow-GPU+Pycharm过程(

Markdown 语法手册 (完整整理版)

iptables用法笔记

在 Linux 中怎么使用 cron 计划任务

CentOS7.2下PXE+kickstart自动化安装系统

Ubuntu 16.04配置国内高速apt-get更新源

Ubuntu 编译安装 OpenCV 3.1

CentOS虚拟机NAT方式DHCP联网

使用 mlocate 查找文件


相关专题

300x200

给小朋友讲C语言

首先,需要一款C语言的编译器,可以使用在线编译器,也可以在本地安装编译器,比如Mac电脑可以安装Xcode,PC可以安装Dev C++。

10 篇文章
300x200

Powershell常用命令系列

基于活动目录日常管理的Powershell 命令系列,收集了常用命令的使用方法,Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。

8 篇文章
300x200

CentOS服务器配置管理

CentOS作为Web服务器、应用程序服务器的相关系统配置管理技术,运行环境安装部署方法,系统监控远程控制等软件安装应用。

20 篇文章
300x200

linux makefile详解

makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是--“自动化编译”

9 篇文章
300x200

超级账本Hyperledger Fabric v1.0

超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目

5 篇文章
300x200

linux系统学习

这么多的Linux 发行版,打算从其他系统转到linux系统来的初学者可能会感到困惑,即便是忠实的 Linux 用户也没有时间和精力去挨个尝试,因此初学者在学习linux的之前,需要有一个明确的方向,选择一个适合自己的系统开始学习linux至关重要

21 篇文章
300x200

DPDK编程指南

DPDK是一个linux基金会的开源项目。开发DPDK的主要目的,是在数据平面应用中为快速的数据包处理提供一个简单而完善的架构。在理解此工具集之后,开发人员可以以此为基础进行新的原型设计,或简单地为我所用。

11 篇文章
300x200

运维基础-Shell编程

运维基础学习与总结,用Shell编程

20 篇文章
300x200

Zsh开发

目前常用的 Linux 系统和 OS X 系统的默认 Shell 都是 bash,但是真正强大的 Shell 是深藏不露的 zsh, 这货绝对是马车中的跑车,跑车中的飞行车

7 篇文章
300x200

运维基础-Linux系统权限管理

Linux中常用的一些特殊权限命令,包括ACL权限、sudo权限、文件特殊权限和不可改变位权限,还有如何对Linux系统进行管理,包括进程管理、工作管理、系统资源查看和定时任务等

17 篇文章

精选专题

spring系列 1893篇

ORM 1622篇

缓存 2346篇

分布式服务 1792篇

Nio框架 691篇

并发编程 2110篇

网络基础 18925篇

搜索引擎 962篇

设计模式 2941篇

其他arch 2837篇

计算机基础 2885篇

操作系统 11.2篇

开发工具 3575篇

Nginx 1095篇

JVM虚拟机 1239篇

系统监控 968篇

日志分析 830篇

Hadoop 5091篇

Mongodb 666篇

Android开发 18345篇

IOS开发 640篇

移动游戏 1935篇

React-Native 465篇

前端基础 11854篇

HTML5 12402篇

ReactJs 102篇

AngularJs 354篇

大数据 18102篇

人工智能 9530篇