# cobbler简介
## cobbler介绍
Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等。
Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。
Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web界面比较易于管理。
Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet,暂时不支持SaltStack。
## cobbler集成的服务
- PXE服务支持
- DHCP服务管理
- DNS服务管理(可选bind,dnsmasq)
- 电源管理
- Kickstart服务支持
- YUM仓库管理
- TFTP(PXE启动时需要)
- Apache(提供kickstart的安装源,并提供定制化的kickstart配置)
# cobbler部署
cobbler服务器基本设置:CentOS7最小化安装,关闭防火墙,selinux设置为disabled,虚拟机网卡这里为桥接模式
## 安装EPEL源
rpm -ivh http://mirrors.kernel.org/fedora-epel/7/x86_64/e/epel-release-7-10.noarch.rpm
yum repolist
## yum安装cobbler
yum install -y httpd dhcp tftp cobbler cobbler-web pykickstart
用命令(rpm -ql cobbler)查看安装的文件,下面列出部分。
配置文件目录 /etc/cobbler
/etc/cobbler # 配置文件目录
/etc/cobbler/settings # cobbler主配置文件,这个文件是YAML格式,Cobbler是python写的程序。
/etc/cobbler/dhcp.template # DHCP服务的配置模板
/etc/cobbler/tftpd.template # tftp服务的配置模板
/etc/cobbler/rsync.template # rsync服务的配置模板
/etc/cobbler/iso # iso模板配置文件目录
/etc/cobbler/pxe # pxe模板文件目录/etc/cobbler/power # 电源的配置文件目录
/etc/cobbler/users.conf # Web服务授权配置文件
/etc/cobbler/users.digest # 用于web访问的用户名密码配置文件
/etc/cobbler/dnsmasq.template # DNS服务的配置模板
/etc/cobbler/modules.conf # Cobbler模块配置文件
数据目录
/var/lib/cobbler # Cobbler数据目录
/var/lib/cobbler/config # 用于存放distros,system,profiles等信息配置文件
/var/lib/cobbler/kickstarts # 默认存放kickstart文件
/var/lib/cobbler/loaders # 存放的各种引导程序
镜像目录
/var/www/cobbler # 系统安装镜像目录
/var/www/cobbler/ks_mirror # 导入的发行版系统的所有数据
/var/www/cobbler/images # 导入发行版的kernel和initrd镜像用于远程网络启动
/var/www/cobbler/repo_mirror # yum源存储目录
日志目录
/var/log/cobbler # 日志目录
/var/log/cobbler/install.log # 客户端系统安装日志
/var/log/cobbler/cobbler.log # cobbler日志
## 启动并检测cobbler
systemctl start httpd
systemctl enable httpd
systemctl start cobblerd
systemctl enable cobblerd
cobbler check
附加解析:
cobbler check 核对当前设置是否有问题
cobbler list 列出所有的cobbler元素
cobbler report 列出元素的详细信息
cobbler sync 同步配置到数据目录,更改配置最好都要执行下
cobbler reposync 同步yum仓库
cobbler distro 查看导入的发行版系统信息
cobbler system 查看添加的系统信息
cobbler profile 查看配置信息
## 修改cobbler主配置文件
vim /etc/cobbler/settings
![1-1](http://opnq5yeqm.bkt.clouddn.com/1-1.png)
![1-2](http://opnq5yeqm.bkt.clouddn.com/1-2.png)
## 保证xinetd服务为开机自动启动状态
vim /etc/xinetd.d/tftp
![1-3](http://opnq5yeqm.bkt.clouddn.com/1-3.png)
## 启动rsyncd服务
systemctl start rsyncd
cobbler get-loaders
## 生成cobbler安装系统root初始密码
openssl passwd -1 -salt 'cobler' 'cobler'
$1$cobler$XJnisBweZJlhL651HxAM00
![1-4](http://opnq5yeqm.bkt.clouddn.com/1-4.png)
## 将上面的加密串加入cobbler配置文件中
vim /etc/cobbler/settings
![1-5](http://opnq5yeqm.bkt.clouddn.com/1-5.png)
## 重启cobblerd服务:
systemctl restart cobblerd
cobbler check
## 让cobblerd管理dhcp
vim /etc/cobbler/settings
![1-6](http://opnq5yeqm.bkt.clouddn.com/1-6.png)
## 修改dhcp模板文件:
vim /etc/cobbler/dhcp.template
![1-7](http://opnq5yeqm.bkt.clouddn.com/1-7.png)
## 重启cobblerd
systemctl restart cobblerd
同步:
cobbler sync
## 导入镜像
![1-8](http://opnq5yeqm.bkt.clouddn.com/1-8.png)
mount /dev/cdrom /mnt
cobbler import --path=/mnt/ --name=CentOS-7-x86_64 --arch=x86_64
![1-9](http://opnq5yeqm.bkt.clouddn.com/1-9.png)
导入centos6的步骤在这里略去!
![1-10](http://opnq5yeqm.bkt.clouddn.com/1-10.png)
CentOS-6-x86_64.cfg配置文件:
# Kickstart file automatically generated by anaconda.
#version=DEVEL
install #表示是安装,而不是升级
text #文本方式安装
cdrom #安装方式,如果是网络安装的话可以写成 url ––url ftp://192.168.1.254/dir 或者 nfs --server=192.168.0.241 --dir=/centosinstall
key –skip #这个是我另外添加的,如果是RedHat的系统,会要求输入key,这里配置为跳过,如果不配置安装时会停在那里要求用户输入key
lang en_US.UTF-8 #语言
keyboard us #键盘样式
network --onboot no --device eth0 --noipv4 --noipv6 #网络配置 配置具体参数样例:network –onboot yes --bootproto=static --ip=192.168.1.1 --netmask=255.255.255.0 其他网关,DNS等格式和ifcfg-ethx的方式一样
rootpw --iscrypted $6$PEJ49S7OkrNra3UM #管理员密码,是加密过的 要是使用不加密的方式则这样写:rootpw 123456
firewall --service=ssh #开启防火墙,并打开ssh端口
authconfig --enableshadow --passalgo=sha512 #用户认证和密码加密方式
selinux --enforcing #强制打开selinux
timezone --utc Etc/GMT+8 #时区设置
zerombr yes #清空磁盘的mbr
bootloader --location=mbr --driveorder=sda #引导程序相关参数
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart –all –initlabel #初始化磁盘
part / --fstype=ext4 --size=18000 #开始分区
part swap --grow --size=1024
repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
reboot
%packages --nobase #安装的软件包,这里由于我安装的是最小mini版,所以只安装了核心软件包组
@core
%post #后安装脚本(这里是我另外添加的,原来文件中没有)
id lustlost &>; /dev/null || useradd lustlost #检查是否有lustlost用户,如果没有则添加
echo 123456 | passwd –stdin lustlost #配置密码
cat >> /etc/yum.repos.d/base.repo << eof
[base]
name=baseserver
baseurl=http://192.168.1.254/yum
gpgcheck=0
enable=1
eof #这里在安装系统成功后执行脚本自动配置一个yum源,其他脚本可以按照需要定义
%end
CentOS-7-x86_64.cfg配置文件:
# Cobbler for Kickstart Configurator for CentOS 7 by clsn
install
url --url=$tree
text
lang en_US.UTF-8
keyboard us
zerombr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
#Network information
$SNIPPET('network_config')
#network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 -- hostname=CentOS7
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
rootpw --iscrypted $default_password_crypted
clearpart --all --initlabel
part /boot --fstype xfs --size 1024
part swap --size 1024
part / --fstype xfs --size 1 --grow
firstboot --disable
selinux --disabled
firewall --disabled
logging --level=info
reboot
%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end
%packages
@^minimal
@compat-libraries
@core
@debugging
@development
bash-completion
chrony
dos2unix
kexec-tools
lrzsz
nmap
sysstat
telnet
tree
vim
wget
%end
%post
systemctl disable postfix.service
$yum_config_stanza
%end
上传配置文件到/var/lib/cobbler/kickstarts目录下
修改自定义配置文件:
cobbler profile edit --name=CentOS-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-7-x86_64.cfg
cobbler profile edit --name=CentOS-6-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-6-x86_64.cfg
![1-11](http://opnq5yeqm.bkt.clouddn.com/1-11.png)
定义自动化安装时centos7的网卡信息文件(自动生成eth1,eth2)
cobbler profile edit --name=CentOS-7-x86_64 --kopts='net.ifnames=O biosdevname=O'
![1-12](http://opnq5yeqm.bkt.clouddn.com/1-12.png)
cobbler sync #使修改的配置文件生效
然后随便添加一台虚拟机,开机!
![1-13](http://opnq5yeqm.bkt.clouddn.com/1-13.png)
cobbler服务器端查看日志
![1-14](http://opnq5yeqm.bkt.clouddn.com/1-14.png)
(14)安装xinetd
yum -y install xinetd
systemctl start xinetd
安装好后就会可以选择安装centos版本,选择对应版本后就会自动执行安装程序!
![1-15](http://opnq5yeqm.bkt.clouddn.com/1-15.png)
![1-16](http://opnq5yeqm.bkt.clouddn.com/1-16.png)
# 自动重装和cobbler-web
## 安装koan
yum -y install koan
查看可以重装的系统:
koan --server=192.168.0.100 --list=profiles
![1-17](http://opnq5yeqm.bkt.clouddn.com/1-17.png)
## 指定要重装成centos6:
koan --replace-self --server=192.168.0.100 --profile=CentOS-6-x86_64
![1-18](http://opnq5yeqm.bkt.clouddn.com/1-18.png)
## 通过web访问cobbler
在浏览器输入:https://192.168.0.100/cobbler_web,用户名和密码都是默认的cobbler
![1-19](http://opnq5yeqm.bkt.clouddn.com/1-19.png)
## cobbler修改密码
htdigest /etc/cobbler/users.digest "Cobbler" cobbler
![1-20](http://opnq5yeqm.bkt.clouddn.com/1-20.png)
所有操作都可在web界面进行
![1-21](http://opnq5yeqm.bkt.clouddn.com/1-21.png)
![1-22](http://opnq5yeqm.bkt.clouddn.com/1-22.png)
## 修改提示信息的选单
vim /etc/cobbler/pxe/pxedefault.template
修改前:
![1-23](http://opnq5yeqm.bkt.clouddn.com/1-23.png)
修改后:
![1-24](http://opnq5yeqm.bkt.clouddn.com/1-24.png)
然后执行命令:cobbler sync
新建一台虚拟机查看效果:
![1-25](http://opnq5yeqm.bkt.clouddn.com/1-25.png)
# cobbler自定义yum源
## 添加repo
cobbler repo add --name=openstack-ocata --mirror=http://192.168.0.5:8080/openstack-ocata/ --arch=x86_64 --breed=yum
注:http://192.168.0.5:8080/openstack-ocata/为我本地搭建的本地yum源
## 同步repo
cobbler reposync
## 添加repo到对应的repolist
cobbler profile edit --name=CentOS-7-x86_64 --repos="openstack-ocata"
## 修改kicstart文件
%post
systemctl disable postfix.service
$yum_config_stanza
%end
## 添加定时任务,定期同步repo
echo "1 3 * * * /usr/bin/cobbler reposync --tries=3 --no-fail" >> /var/spool/cron/root
# cobbler自定义系统安装
## 自动化装机平台基本信息
mac地址:00:50:56:3E:3D:06
![1-26](http://opnq5yeqm.bkt.clouddn.com/1-26.png)
主机名:cobbler-test03
IP:192.168.0.111
掩码:255.255.255.0
网关:192.168.0.1
DNS:192.168.0.1
## 执行安装的命令
cobbler system add --name=cobbler-test03 --mac=00:50:56:3E:3D:06 --profile=CentOS-7-x86_64 \
--ip-address=192.168.0.111 --subnet=255.255.255.0 --gateway=192.168.0.1 --intterface=eth0 \
--static=1 --hostname=cobbler-test03 --name-servers="192.168.0.1" \
--kickstart=/var/lib/cobbler/kickstarts/CentOS-7-x86_64.cfg
![1-27](http://opnq5yeqm.bkt.clouddn.com/1-27.png)
同步:cobbler sync
启动虚拟机跳过选择界面自动安装:
![1-28](http://opnq5yeqm.bkt.clouddn.com/1-28.png)
- 献给我的朋友们
- 一、个人对学习的看法
- 二、运维技能图谱
- 三、运维常用技能
- 3.1 Vim(最好用的编辑器)
- 3.2 Nginx & Tengine(Web服务)
- 1. Nginx介绍和部署
- 2. Nginx配置解析
- 3. Nginx常用模块
- 4. Nginx 的session 一致性问题
- 3.3 Tomcat(Web中间件)
- 3.4 Keepalived(负载均衡高可用)
- 3.5 Memcache(分布式缓存)
- 3.6 Zookeeper(分布式协调系统)
- 3.7 KVM(开源虚拟化)
- 1. 虚拟化介绍
- 2. KVM基础
- 3. 设置VNC和时间同步
- 4. kvm虚拟机快照备份
- 5. kvm虚拟机在线扩展磁盘
- 6. kvm虚拟机静态迁移
- 7. kvm虚拟机动态迁移
- 8. kvm虚拟机存储池配置
- 9. cpu添加虚拟化功能
- 3.8 GitLab(版本控制)
- 3.8.1 GitLab安装与汉化
- 3.9 Jenkins(运维自动化)
- 3.10 WAF(Web防火墙)
- 3.10.1初探WAF
- 四、常用数据库
- 4.1 MySQL(关系型数据库)
- 1. MySQL源码安装
- 4.2 Mongodb(适用与大数据分析的数据库)
- 4.3 Redis(非关系数据库)
- 五、自动化运维工具
- 5.1 Cobbler(系统自动化部署)
- 5.2 Ansible(自动化部署)
- 5.3 Puppet(自动化部署)
- 5.4 SaltStack(自动化运维)
- 六、存储
- 6.1 GFS(文件型存储)
- 6.2 Ceph(后端存储)
- 七、运维监控工具
- 7.1 对监控的理解
- 7.2 Zabbix(运维监控)
- 7.2.1 Zabbix简介
- 7.2.2 Zabbix服务部署
- 1. Zabbix服务端部署
- 2. Zabbix客服端部署
- 3. 配置前端展示
- 4. zabbix告警配置
- 7.2.3 Zabbix监控服务
- 1. 监控网络设备
- 2. 自定义Nginx监控
- 7.3 云镜(安全监控)
- 7.4 ELK(日志收集展示)
- 八、运维云平台
- 8.1 OpenStack(开源云操作系统)
- 8.1.1 OpenStack简介
- 8.1.2 实验架构设计
- 8.1.3 集群环境准备
- 8.1.4 controller节点部署
- 1. 安装Mariadb Galera Cluster集群
- 2. 安装RabbitMQ Cluster集群
- 3. 安装Pacemaker
- 4. 安装HAProxy
- 5. 安装配置Keystone
- 6. 安装配置glance
- 1. 制作镜像模板
- 7. 安装配置nova
- 8. 安装配置neutron
- 1. 配置虚拟机网络
- 9. 安装Dashboard
- 10. 安装配置cinder
- 8.1.5 compute节点部署
- 1. 安装相关软件包
- 2. 安装Neutron
- 3. 配置cinder
- 4. 创建第一个虚拟机
- 8.1.6 OpenStack报错处理
- 1. cinder僵尸卷删除
- 8.1.7 快速孵化虚拟机方案
- 8.1.8 Kolla容器化部署OpenStack
- 1. 单点部署
- 2. 多节点部署
- 8.2 Tstack(腾讯云平台)
- 8.3 K8s(微服务容器化)
- 九、运维编程技能
- 9.1 Shell(运维必会语言)
- 9.2 Python(万能的胶水语言)
- 十、Devops运维
- 10.1 理念
- 10.2 Devops实战