cobbler深入学习
cobbler重要目录和cobbler各对象的关系
/var/www/cobbler/ks_mirror 存放操作系统镜像
/var/www/cobbler/repo_mirror 存放仓库镜像
/var/lib/cobbler/kickstarts 存放kickstarts文件
/var/lib/cobbler/loaders 存放启动时需要的文件
/var/lib/cobbler/snippets 存放脚本
/etc/cobbler 存放cobbler的配置文

自定义yum源
cobbler可以管理yum源,以使用阿里云的openstack为例
http://mirrors.aliyun.com/centos/7.2.1511/cloud/x86_64/openstack-mitaka/
1) 添加openstack仓库源
cobbler repo add --name=openstack-mitaka --mirror=http://mirrors.aliyun.com/centos/7.2.1511/cloud/x86_64/openstack-mitaka/ --arch=x86_64 --breed=yum
2) 同步 cobbler reposync

3) 将openstack-mitaka在安装centos 7时,默认导入安装
cobbler profile edit --name=CentOS-7.1-x86_64 --repos="openstack-mitaka"
cobbler profile report CentOS-7.1-x86_64 查看仓库源

vim /etc/cobbler/settings 可以查看到yum_post_install_mirror默认开启

4) 修改kickstart文件
vim /var/lib/cobbler/kickstarts/CentOS-7-x86_64.cfg

#Kickstart Configurator for cobbler by Jason Zhao
#platform=x86, AMD64, or Intel EM64T
#System language
lang en_US
#System keyboard
keyboard us
#Sytem timezone
timezone Asia/Shanghai
#Root password
rootpw --iscrypted $default_password_crypted
#Use text mode install
text
#Install OS instead of upgrade
install
#Use NFS installation Media
url --url=$tree
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype xfs --size 1024 --ondisk sda
part swap --size 16384 --ondisk sda
part / --fstype xfs --size 1 --grow --ondisk sda
#System authorization infomation
auth --useshadow --enablemd5
#Network information
$SNIPPET('network_config')
#network --bootproto=dhcp --device=em1 --onboot=on
# Reboot after installation
reboot
#Firewall configuration
firewall --disabled
#SELinux configuration
selinux --disabled
#Do not configure XWindows
skipx
#Package install information
%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end %packages
@ base
@ core
sysstat
iptraf
ntp
lrzsz
ncurses-devel
openssl-devel
zlib-devel
OpenIPMI-tools
mysql
nmap
screen
%end %post
systemctl disable postfix.service $yum_config_stanza
%end
5) 添加定时任务,定期同步repo
echo "1 3 * * * /usr/bin/cobbler reposync --tries=3 --no-fail" >> /var/spool/cron/root


自动化装机
之前通过cobbler操作的安装并没有完全的自动化,需要在页面进行选择,我们在实现真正的自动化安装前,需要清楚整体流程。
下图参考

在自动化安装操作系统,需要做的几件事:
1、存在硬件设备,如果虚拟机要创建完一个虚拟机,分配好内存、CPU、硬盘等资源

2、分配IP、域名、子网掩码、网关、DNS、MAC地址,以虚拟机为例

获取MAC地址为:00:50:56:3F:1B:9E
IP:192.168.137.51
主机名:cobbler-auto
子网掩码:255.255.255.0
网关:192.168.137.2
DNS:192.168.137.2
备注:MAC地址必须是唯一的,通过配置MAC地址才能进行自动化安装。
cobbler system list cobbler system add --name=cobbler-auto --mac=00:50:56:3F:1B:9E \
--profile=CentOS-7.1-x86_64 \
--ip-address=192.168.137.51 --subnet=255.255.255.0 --gateway=192.168.137.2 --interface=eth0 \
--static=1 --hostname=cobbler-auto --name-servers="192.168.137.2 114.114.114.114" \
--kickstart=/var/lib/cobbler/kickstarts/CentOS-7-x86_64.cfg cobbler system list

cobbler sync



安装成功

安装 成功的主机中已经添加了openstack-mitaka的yum源

Cobbler API
cd /etc/httpd/conf.d
cat cobbler.conf

通过上图标红处,可以看到cobbler API是通过http调用
如下为python调用样例脚本
#!/usr/bin/python
import xmlrpclib
import time
server = xmlrpclib.Server("http://192.168.137.10/cobbler_api")
print server.get_distros()
time.sleep(1)
print server.get_profiles()
time.sleep(1)
print server.get_systems()
time.sleep(1)
print server.get_images()
time.sleep(1)
print server.get_repos()
time.sleep(10)
实现上面命令的一个完整脚本
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import xmlrpclib class CobblerAPI(object):
def __init__(self,url,user,password):
self.cobbler_user= user
self.cobbler_pass = password
self.cobbler_url = url def add_system(self,hostname,ip_add,mac_add,profile):
'''
Add Cobbler System Infomation
'''
ret = {
"result": True,
"comment": [],
}
#get token
remote = xmlrpclib.Server(self.cobbler_url)
token = remote.login(self.cobbler_user,self.cobbler_pass) #add system
system_id = remote.new_system(token)
remote.modify_system(system_id,"name",hostname,token)
remote.modify_system(system_id,"hostname",hostname,token)
remote.modify_system(system_id,'modify_interface', {
"macaddress-eth0" : mac_add,
"ipaddress-eth0" : ip_add,
"dnsname-eth0" : hostname,
}, token)
remote.modify_system(system_id,"profile",profile,token)
remote.save_system(system_id, token)
try:
remote.sync(token)
except Exception as e:
ret['result'] = False
ret['comment'].append(str(e))
return ret def main():
cobbler = CobblerAPI("http://192.168.137.10/cobbler_api","cobbler","cobbler")
ret = cobbler.add_system(hostname='cobbler-api-test',ip_add='192.168.137.111',mac_add='00:50:56:25:C2:AA',profile='CentOS-7.1-x86_64')
print ret if __name__ == '__main__':
main()
执行上面的脚本,通过cobbler system list命令可以看到多出cobbler-api-test这项,这是通过cobbler API实现添加

电源管理
增加
cobbler system edit --name=cobbler-auto --power-address=192.168.138.51 \
--power-type='ipmilan' --power-user=ipmi -power-pass=ipmi
常用命令
cobbler system poweroff
cobbler system powon
cobbler system powerstatus
cobbler system reboot
重启服务器并从PXE引导启动,并指定安装的操作系统配置。
cobbler system edit --name=cobbler-auto --netboot-enabled=1 --profile=CentOS-7.1-x86_64
官网文档
对于cobbler,如果要做一些个性化配置,可以参考官方文档进行实现。
如下图是官网给出的示例,如何去实现双网卡绑定。
http://cobbler.github.io/manuals/2.8.0/4/1/1_-_Bonding.html

cobbler深入学习的更多相关文章
- Cobbler学习之二--Cobbler的Web管理和维护
Cobbler的Web管理模块和命令行模块是可以分开工作的,没有依赖关系. 1 WebUI的功能 查看所有的对象和配置文件 添加或者删除system,distro, profile 执行“cobble ...
- Cobbler学习之一--Fedora17下配置Cobbler安装环境
1:Cobbler是什么 Cobbler是一大Linux装机利器,可以快速的建立网络安装环境. 2:安装Cobbler需要的组件 createrepo httpd (apache2 for Debia ...
- cobbler学习
note.youdao.com/share/?id=2f8383d6e9824929012b041f069da26e&type=note#/ IPADDR=192.168.86.4 TYPE= ...
- 学习Cobbler(二)
Server端: 第一步,启动Cobbler服务 第二步,进行Cobbler错误检查,执行cobbler check命令 第三步,进行配置同步,执行cobbler sync命令 第四步,复制相关启动文 ...
- 学习Cobbler(一)
一. http://cobbler.github.io/ Cobbler is a Linux installation server that allows for rapid setup of n ...
- 关于OpenStack的学习路线及相关资源汇总
首先我们想学习openstack,那么openstack是什么?能干什么?涉及的初衷是什么?由什么来组成?刚接触openstack,说openstack不是一个软件,而是由多个组件进行组合,这是一个更 ...
- 自动化运维工具ansible学习+使用ansible批量推送公钥到远程主机
目录: 一.ansible简介 1.1.ansible是什么 1.2.ansible如何工作 1.3.ansible优缺点 1.4.ansible安装方式 1.5.ansible文件简单介绍 1.6. ...
- kvm cobbler无人值守批量安装操作系统
kvm cobbler无人值守批量安装操作系统 cobbler:一个自动网络安装系统的工具,集成PEX.dhcp.dns.tftpd.sync等服务.可以供大家管理安装操作系统 kvm:Linux系统 ...
- cobbler无人值守批量安装Linux系统
本文目录: 1.1 pxe安装系统 1.2 cobbler基本介绍 1.3 安装和配置cobbler 1.3.1 安装cobbler 1.3.2 配置dhcp和tftp 1.4 cobbler从本地光 ...
随机推荐
- [BZOJ3144][HNOI2013]切糕(最小割)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3144 分析:神题不解释 http://www.cnblogs.com/zig-zag/ ...
- JavaScript的理解记录(4)
客户端JavaScript:客户端就是Web浏览器; 一. 前奏: Web文档(document):一些呈现静态信息的页面,虽然有的页面是会动的,但信息本身还是静态! Web应用:可以动态载入信息,相 ...
- 东大OJ-1051-旅行家的预算
1051: 旅行家的预算 时间限制: 1 Sec 内存限制: 128 MB 提交: 27 解决: 7 [提交][状态][讨论版] 题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市( ...
- linux 系统下 android studio 获取SHA1
百度地图申请key的时候需要填写包名和SHA1 包名比较好找可以在 AndroidManifest.xml 文件中找到 SHA1的获取方式有两种可以在android studio 下面选择Termin ...
- python基础--基本数据类型考试_day3
1.执行 Python 脚本的两种方式 终端和交互模式 法1:python helloword.py 法2:ps: 执行前需给预chmod 755 helloword.py (linux系统中)./h ...
- Android 二维码 生成和识别(转)
原博客地址 :http://www.cnblogs.com/weixing/archive/2013/08/28/3287120.html 还有几个写的也可以参考一下:http://www.itnos ...
- 【HDU 2089】不要62
http://acm.hdu.edu.cn/showproblem.php?pid=2089 数位dp,参照了打野的博客 预处理出f数组,f[i][j]表示第i位为数字j时的可行的数字总数. 对于区间 ...
- react 属性与状态 学习笔记
知识点:1.react 属性的调用 this.props.被调用的属性名 设置属性的常用方法:var props = { one: '123', two: 321}调用这个属性:<HelloWo ...
- [转]IPTABLES中SNAT和MASQUERADE的区别
IPtables中可以灵活的做各种网络地址转换(NAT)网络地址转换主要有两种:SNAT和DNAT SNAT是source network address translation的缩写即源地址目标转换 ...
- HTML-正则表达式
常用HTML正则表达式 1.只能输入数字和英文的: <input onkeyup="value=value.replace(/[\W]/g,'') " ...