CentOS 7下cobbler安装及配置
目录
1.背景介绍
2. PEX 原理介绍
2.1 PEX 原理与概念
2.2 PEX 工作原理示意图
3. Cobbler 简介
3.1 Cobbler 概述
3.2 Cobbler
3.3 Cobbler 工作原理
3.4 Cobbler 相关目录说明
3.5 Cobbler 命令介绍
4. Cobbler 安装
4.1 系统信息
4.2 配置 yum 源
4.3 关闭SELinux
4.4 安装Cobbler
4.5 启动Cobbler
4.6 通过cobbler check 核对当前设置是否有问题
4.7 配置Cobbler-DHCP
4.8 导入CentOs-7的镜像
4.9 Ks文件配置
5.验证
5.1 将服务端所有服务重启
5.2 新建一台虚拟机
1.背景介绍
服务器系统的部署是一件单一且重复性较高的事,那么该怎样避免“重复造轮子”?本节主要介绍Cobbler及其部署实践,通过配置Kickstart的无人值守安装方式,服务器通过PXE启动方式,实现通过网络就可以在服务器上自动部署系统的目的。
2. PEX 原理介绍
2.1 PEX 原理与概念
PEX是预启动执行环境(preboot execution environment)的简称,也被称为预执行环境,是让计算机通过网卡独立地使用数据设备(如硬盘)或者安装操作系统的环境。它是基于TCP/IP、DHCP、TFTP等Internet协议之上的扩展网络协议,提供了一种从网络启动的新技术。严格来说,PXE并不是一种安装方式,而是一种引导方式。进行PXE安装的必要条件是在要安装的计算机中必须包含一个PXE支持的网卡(NIC),即网卡中必须要有PXE client。PXE协议可以使计算机通过网络启动。此协议分为client端和server端,而PXE client则在网卡的ROM中。当计算机引导时,BIOS把PXE client调入内存中执行,然后由PXE client将放置在远端的文件通过网络下载到本地运行。运行PXE协议需要设置DHCP server和TFTP server。 DHCP server会给PXE client(将要安装系统的主机)分配一个IP地址,由于是给PXEclient分配IP地址,所以在配置DHCP server时需要增加相应的PXE设置。此外,在PXE client的ROM中,已经存在了TFTP client,那么它就可以通过TFTP协议到TFTPserver上下载所需的文件了。
2.2 PEX 工作原理示意图
3. Cobbler 简介
3.1 Cobbler 概述
Cobbler 由Python语言开发,是对PXE、Kickstart和DHCP的封装。它融合了很多特性,提供了CLI和Web的管理形式,更加方便地实行网络安装。同时,Cobbler也提供了API接法田甘他语言也很容易做护展。匕个仪可以女农物埋机,同时也支持KVM.XEN
和GuestOS的安装。
3.2 Cobbler
Cobbler的配置结构基于一组注册的对象,每个对象表示一个与另一个实体相关联的实体(该对象指向另一个对象,或者另一个对象指向该对象)。当一个对象指向另一个对象时,它就继承了被指向对象的数据,并可覆盖或添加更多特定信息。对象类型的定义如下。
发行版:表示一个操作系统。它承载了内核和initrd的信息,以及内核参数等其他数据。
配置文件:包含一个发行版、一个Kickstart文件以及可能的存储库,还包含更多特定的内核参数等其他数据。
系统:表示要配给的机器。它包含一个配置文件或一个镜像,还包含IP和MAC地址、电源管理(地址、凭据、类型)以及更为专业的数据等信息。
存储库:保存一个yum或Rsync存储库的镜像信息。
镜像:可替换一个包含不属于此类别的文件的发行版对象(例如,无法分为内核和initrd的对象)。
基于注册的对象以及各个对象之间的关联,Cobbler知道如何更改文件系统以反映具体配置。因为系统配置的内部是抽象的,所以我们可以仅关注想要执行的操作。Cobbler对象关系如下图所示。
3.3 Cobbler 工作原理
Cobbler 工作原理如下图所示:
图中server端的工作步骤如下:
第一步,启动Cobbler服务;
第二步,进行Cobbler错误检查,执行Cobbler check命令;
第三步,进行配置同步,执行Cobbler sync命令;
第四步,复制相关启动文件到TFTP目录中;
第五步,启动DHCP服务,提供地址分配;
第六步,DHCP服务分配IP地址;
第七步,TFTP传输启动文件;
第八步,server端接收安装信息;
第九步,server端发送ISO镜像与Kickstart 文件。
client端的工作步骤如下:
第一步,客户端以PXE模式启动;
第二步,客户端获取IP地址;
第三步,通过TFTP服务器获取启动文件;
第四步,进人Cobbler安装选择界面;
第五步,客户端确定加载信息;
第六步,根据配置信息准备安装系统;
第七步,加载Kickstart文件;
第八步,传输系统安装的其他文件;
第九步,进行安装系统。
3.4 Cobbler 相关目录说明
(1)Cobbler 配置文件目录 /etc/cobbler 说明:
/etc/cobbler/settings cobbler :主配置文件
/etc/cobbler/iso/ :iso模板配置文件
/etc/cobbler/pxe : PXE模板文件
/etc/cobbler/power : 电源配置文件
/etc/cobbler/user.conf : Web服务授权配置文件
/etc/cobbler/users.digest : 用于Web访问的用户名密码配置文件
/etc/cobbler/dhcp.template : DHCP服务器的的配置末班
/etc/cobbler/dnsmasq.template : DNS服务器的配置模板
/etc/cobbler/tftpd.template : TFTP服务的配置模板
/etc/cobbler/modules.conf : Cobbler模块的配置文件
(2)Cobbler 数据目录 /var/lib/cobbler 说明:
/var/lib/cobbler/config/ : 用于存放 distros、system、profiles 等信息配置文件
/var/lib/cobbler/triggers/ : 用于存放用户定义的Cobbler命令
/var/lib/cobbler/kickstart/ : 默认存放Kickstart文件
/var/lib/cobbler/loaders/ : 存放各种引导程序
(3)镜像数据目录 /var/www/cobbler 说明:
/var/www/cobbler/ks_mirror/ : 导入的发行版系统的所有数据
/var/www/cobbler/images/ : 导入发行版的 kernel 和 initrd 镜像用于 远程网络启动
/var/www/cobbler/repo_mirror/ : yum 仓库存储目录
(4)日志目录 /var/log/cobbler/说明:
/var/log/cobbler/install.log : 客户端的安装系统日志
/var/log/cobbler/cobbler.log : Cobbler 日志
3.5 Cobbler 命令介绍
(1)查看 Cobbler 命令
[root@cobbler svr-]# cobblerusage=====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>
[options|--help]在上面的显示中,我们可以看到,Cobbler命令有很多的选项,想获得相关选项的帮助只需
要加--help即可:
[root@cobbler ~]# cobbler profile --help
(2)Cobbler常用命令
cobbler check 检查Cobbler配置
cobbler sync 同步配置到DHCP/PXE和数据目录
cobbler list 列出所有的Cobbler元素
cobbler import 导入安装的系统镜像
cobbler report 列出各元素的详细信息
cobbler distro 查看导入的发行版系统信息
cobbler profile 查看配置信息
cobbler system 查看添加的系统信息
cobbler reposync 同步yum仓库到本地
4. Cobbler 安装
4.1 系统信息
4.2 配置 yum 源
[root@localhost ~]# rpm -ql epel-release >> /dev/nul || yum install -y epel-release
4.3 关闭SELinux
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/sysconfig/selinux setenforce 0
4.4 安装Cobbler
yum -y install cobbler cobbler-web tftp-server dhcp httpd xinetd
4.5 启动Cobbler
systemctl enable --now httpd cobblerd
4.6 通过cobbler check 核对当前设置是否有问题
[root@localhost ~]# 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 resol vable 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 : SELinux is enabled. Please review the following wiki page for details on en suring cobbler works correctly in your SELinux environment:https://github.com/cobbler/cobbler/wiki/Selinux
4 : change 'disable' to 'no' in /etc/xinetd.d/tftp
5 : Some network boot-loaders are missing from /var/lib/cobbler/loaders. If you only want to handle x86/x86_64 netbooting, you may ensure that you have insta lled a *recent* version of the syslinux package installed and can ignore this message entirely. Files this directory, should you want to support all archi tectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot.
6 : enable and start rsyncd.service with systemctl
7 : debmirror package is not installed, it will be required to manage debian de ployments and repositories
8 : ksvalidator was not found, install pykickstart
9 : The default password used by the sample templates for newly installed machi nes (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
10 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use themRestart cobblerd and then run 'cobbler sync' to apply changes.
从上面的执行结果来看,存在10处错误,下面我们来一一解决:
问题1:
#修改后面server的ip地址为本机ip
sed -i 's/^server: 127.0.0.1/server: 192.168.139.62/' /etc/cobbler/settings
问题2:
#修改next_erver为本机的IP
sed -i 's/^next_server: 127.0.0.1/next_server: 10.0.0.101/' /etc/cobbler/settings
问题3:
SELinux处于开启状态,前面已经临时关闭selinux并修改了selinux配置文件,只是没有重启,要消除这个提示重启下服务器即可,也可以直接忽略。
问题4:
#修改/etc/xinetd.d/tftp,把disable修改为no
sed -i 's#yes#no#g' /etc/xinetd.d/tftp
问题5:
cobbler get-loaders
#如果网太差导致下载失败,第二次下载会报python的错误。使用如下方法:
[root@cobbler ~]# yum -y install syslinux
[root@cobbler ~]# cp -r /usr/share/syslinux/pxelinux.0 /var/lib/cobbler/loaders/
[root@cobbler ~]# cp -r /usr/share/syslinux/menu.c32 /var/lib/cobbler/loaders/
[root@cobbler ~]# systemctl restart cobblerd
再次执行cobbler get-loaders,如果出现下图情况,原因是安装的cobbler版本中,压根就不支持使用该命令下载引导启动文件,只要保证安装了最新的syslinux软件包,然后忽略本条内容即可。
问题6:
#添加rsync到自启动并启动rsync
systemctl enable rsyncd
systemctl start rsyncd
问题7:
#与debain相关,如果不使用cobbler推送debain系统可以忽略不记
[root@cobbler ~]# yum -y install debmirror
[root@cobbler ~]# sed -i 's|@dists=.*|#@dists=|' /etc/debmirror.conf
[root@cobbler ~]# sed -i 's|@arches=.*|#@arches=|' /etc/debmirror.conf
问题8 :
#ksvalidator未找到,安装pykickstart软件包。
yum install pykickstart -y
问题9:
# 设置默认root密码(客户端安装之后,系统的root密码)。 首先,,生成你想要的密码的加密字符串,然后复制运行命令之后的加密代码:
#执行
openssl passwd -1 -salt 'abc' '123456'
#得到新密码
$1$abc$mJPQCTATLDV5aNzcHMYLr/
#再执行
vim /etc/cobbler/settings
#修改settings配置文件中下面位置,将双引号中的旧密码替换成新密码
default_password_crypted: "$1$123456$wOSEtcyiP2N/IfIl15W6Z0"
问题10:
#未找到防护工具,并且必须使用防护工具才能使用(可选)电源管理功能。 安装cman或fence-agents以使用它们。
yum -y install fence-agents
接着重启Cobbler服务
service cobblerd restart
最后再次执行cobbler check
#忽略这两条即可,第一条是修改了selinux配置文件后未重启服务器的原因,第二条与debian相关。
4.7 配置Cobbler-DHCP
(1)修改cobbler配置
vim /etc/cobbler/settings
#修改settings中参数,由cobbler控制dhcp
manage_dhcp: 1
(2)修改dhcp.templates配置文件
[root@localhost ~]# vim /etc/cobbler/dhcp.template
subnet 192.168.139.0 netmask 255.255.255.0 {option routers 192.168.139.2; #修改成本机网关option domain-name-servers 114.114.114.114; #修改成本机DNSoption subnet-mask 255.255.255.0; #修改成本机子网掩码range dynamic-bootp 192.168.139.100 192.168.139.254; #可分配的IP范围
(3)重新启动Cobbler服务
systemctl restart cobblerd.service
(4)运行Cobbler sync命令使配置生效,让DHCP、HTTP被Cobbler接管
cobbler sync
效果图如下:
4.8 导入CentOs-7的镜像
(1)创建目录存放镜像
mkdir /mnt/CentOS7.1
(2)挂载光盘镜像
mount /dev/cdrom /mnt/CentOS7.1
如果报错mount: 在 /dev/sr0 上找不到媒体
解决办法:打开虚拟机设置,在镜像选项中将设备状态的已连接勾选上,然后点击确定即可。
再次执行 mount /dev/cdrom /mnt/CentOS7.1 成功
(3)使用cobbler import命令导入镜像
cobbler import --path=/mnt/CentOS7.1 --name=Centos-7.1 --arch=x86_64
#命令格式说明:
--path:镜像路径;
--name:安装引导名;
--arch:32位或64位。
#参数说明:
--name为安装源定义一个名字;
--arch指定安装源是32位还是64位、ia6,目前支持的选项有:x86| x86_64|ia64
#两点注意事项如下。
a.该安装源的唯一标示就是这两个参数。
本例导人成功后,安装源的唯一标示就是:CentOS-7.1-x86_64,如果重复,系统会提示导人
失败,其他命令可通过cobbler --help来进行查看。如果需要更多的参数定制,也可以查看官
方文档:man cobbler,然后查找import的配置,可以使用另外一个命令:cobbler distro。
导入时间需要那么两三分钟,静静等待即可,正常导完之后会给出如下提示:
(4)查看镜像列表
cobbler list
4.9 Ks文件配置
默认的kickstarts文件放在/var/lib/cobbler/kickstarts/目录下
(1)进入目录
cd /var/lib/cobbler/kickstarts
(2)自定义ks文件
执行vim CentOS-7.1-x86_64.ks进行编辑,将下方Ks文件粘贴进去
# kickstart template for Fedora 8 and later.
# (includes %end blocks)
# do not use with earlier distros#platform=x86, AMD64, or Intel EM64T
# System authorization information
#auth --useshadow --enablemd5
authconfig --enableshadow --passalgo=sha512
# System bootloader configuration
bootloader --location=mbr --driveorder=sda --append="nomodeset crashkernel=auto rhgb quiet"
# Partition clearing information
clearpart --all --initlabel
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# Use network installation
url --url=$tree
# If any cobbler repo definitions were referenced in the kickstart profile, include them here.
$yum_repo_stanza
# Network information
$SNIPPET('network_config')
# Reboot after installation
reboot
logging --level=info#Root password
rootpw --iscrypted $default_password_crypted
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# System timezone
timezone Asia/Shanghai
# Install OS instead of upgrade
install
# Clear the Master Boot Record
zerombr
# Allow anaconda to partition the system as needed
#autopart
part /boot --fstype=ext4 --asprimary --size=200
part swap --asprimary --size=1024
part / --fstype=ext4 --grow --asprimary --size=200%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end%packages
@base
@compat-libraries
@core
@debugging
@development
@dial-up
@hardware-monitoring
@performance
@server-policy
sgpio
device-mapper-persistent-data
systemtap-client
tree
lrzsz
telnet
nmap
dos2unix
%end%post --nochroot
$SNIPPET('log_ks_post_nochroot')
%end%post
$SNIPPET('log_ks_post')
# Start yum configuration
$yum_config_stanza
# End yum configuration
$SNIPPET('post_install_kernel_options')
$SNIPPET('post_install_network_config')
$SNIPPET('func_register_if_enabled')
$SNIPPET('download_config_files')
$SNIPPET('koan_environment')
$SNIPPET('redhat_register')
$SNIPPET('cobbler_register')
# Enable post-install boot notification
$SNIPPET('post_anamon')
# Start final steps
$SNIPPET('kickstart_done')
# End final steps
%end%post
systemctl disable postfix.service$yum_config_stanza
%end
(3)查看Kickstart配置
cobbler profile report --name=Centos-7.1-x86_64
(4)修改指定的Kickstart文件
[root@localhost kickstarts]# cobbler profile listCentos-7.1-x86_64
[root@localhost kickstarts]# cobbler profile getks --name "Centos-7.1-x86_64"
[root@localhost kickstarts]# cobbler profile edit --name=Centos-7.1-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-7.1-x86_64.ks
[root@localhost kickstarts]# cobbler profile edit --name Centos-7.1-x86_64 --kopts='net.ifnames=0 biosdevname=0'
(5)同步Cobbler
cobbler sync
5.验证
5.1 将服务端所有服务重启
systemctl restart xinetd.service
systemctl restart cobblerd.service
systemctl restart httpd.service
5.2 新建一台虚拟机
至此cobbler算是配置完成了,现在可以愉快的安装操作系统了,新建一台虚拟机,虚拟机指定用PXE网络启动,然后选择我们挂载的镜像安装即可。
CentOS 7下cobbler安装及配置相关推荐
- webmin升级php,Centos linux下webmin安装及配置
Centos linux下webmin安装及配置 2012-1-30 18:14 Monday 分类:Linux 评论(49) 浏览(18247) webmin是一个用浏览器来管理系统的工具. 1.下 ...
- Centos7 下cobbler安装及配置
1.背景介绍 作为运维,在公司经常遇到一些机械性重复工作要做,例如:为新机器装系统,一台两台机器装系统,可以用光盘.U盘等介质安装,1小时也完成了,但是如果有成百台的服务器还要用光盘.U盘去安装,就显 ...
- centos 7下redis安装和配置
1,通过rz命令将本地的tar.gz包上传到linux服务器上home目录下;我这里用的是redis-3.0.2.tar.gz,上传到home下: 2.tar -xvf 命令解压文件: 3,进入到re ...
- Linux/centos环境下maven安装与配置
下载地址:https://maven.apache.org/download.cgi 如下图 这里要注意下版本,从maven3.3以上版本要求jdk1.7以上版本支持 Linux系统安装: 1. 解压 ...
- centos mysql 设置_CentOS下MySQL安装后配置和设置-阿里云开发者社区
CentOS下MySQL安装后配置和设置: 1:安装完成路径: 1.数据库目录 /var/lib/mysql/ 2.配置文件 /usr/share/mysql(mysql.server命令及配置文件) ...
- CentOS下MySQL安装后配置和设置
CentOS下MySQL安装后配置和设置: 1:安装完成路径: 1.数据库目录/var/lib/mysql/2.配置文件/usr/share/mysql(mysql.server命令及配置文件)3.启 ...
- Centos 6.3 x86_64安装与配置bacula
Centos 6.3 x86_64安装与配置bacula 一,简介 Bacula是一款开源的跨平台的网络备份工具,基于c/s架构,通过它,管理员可以对数据进行备份,恢复,以及完整性验证等操作. 适合业 ...
- 在CentOS 6.3中安装与配置JDK-7
在CentOS 6.3中安装与配置JDK-7 来源:互联网 作者:佚名 时间:02-07 16:28:33 [大 中 小] 在CentOS-6.3中安装与配置JDK-7,有需要的朋友可以参考下 安装说 ...
- Centos/Red Hat6.8 安装、配置、启动Gitlab (内网环境)心得分享
文章目录 一.Gitlab下载 1. Gitlab官网下载 二.分析思路 2.1. 分析 2.2. 代码托管平台 2.3. 镜像站 二.Gitlab 重新加载配置异常 2.1. 异常现象 2.2. 分 ...
最新文章
- TCP快速重传为什么是三次冗余ack,这个三次是怎么定下来的?
- 【原创】Aspose.Words组件介绍及使用—基本介绍与DOM概述
- python常见错误-python常见的错误提示有什么
- Lucene查询语法详解
- nyoj 题目5 Binary String Matching
- linux 误删除mysql表能恢复吗_linux rm误删除数据库文件的恢复方法
- VVOL和VASA Provider
- 遗传相似系数怎么计算_如何计算遗传变异系数
- mysql索引linke和等于_MySQL索引怎么用?秒懂只需四个点!
- 【CCCC】L3-016 二叉搜索树的结构 (30分),,手动建堆(二叉搜索树节点询问),map写法
- .Net MVC中设置默认启动为某区域的视图
- CentOS 6.5安装YouCompleteMe使用vim C/C++语法自动补全
- 小米一键上锁工具_小米手机通用解锁教程
- win7卡在正在启动windows界面_Windows系统电脑卡在开机界面进不去系统解决方法
- 天津大学学硕和专硕的区别_想考天大化工的研究生,学硕和专硕区别大吗
- 设置QQ空间背景音乐
- 【随笔】那些免费友好的遥感影像数据下载网站
- 国内常用公共DNS服务器、各省运营商DNS服务器汇总
- 纸质文档转成电子档,30秒即可快速搞定(亲测有效)!
- 正则表达式--常用用法及lookahead、lookbehind
热门文章
- [BUUCTF]第七天训练日志
- 我的世界java版是免费,我的世界Java版
- 集成电路,微小电子元件焊接技巧
- Flutter调用阿里云识别银行卡
- 2015年全国谷歌卫星地图离线数据存储方案
- 职业规划与发展部_3D成像原理
- 结构光系统标定(四)基于双目视觉的结构光系统标定
- Buffer Overflow Vulnerability Prediction from x86 executables using Static Analysis and ML
- 初级计算机考试j机试题库,计算机初级考试试题-1
- 电脑开机时,需选择启动项f1/f2/f5, 需按f1才能正常启动计算机