# 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


## 保證xinetd服務為開機自動啟動狀態
vim /etc/xinetd.d/tftp

## 啟動rsyncd服務
systemctl start rsyncd
cobbler get-loaders
## 生成cobbler安裝系統root初始密碼
openssl passwd -1 -salt 'cobler' 'cobler'
$1$cobler$XJnisBweZJlhL651HxAM00

## 將上面的加密串加入cobbler配置文件中
vim /etc/cobbler/settings

## 重啟cobblerd服務:
systemctl restart cobblerd
cobbler check
## 讓cobblerd管理dhcp
vim /etc/cobbler/settings

## 修改dhcp模板文件:
vim /etc/cobbler/dhcp.template

## 重啟cobblerd
systemctl restart cobblerd
同步:
cobbler sync
## 導入鏡像

mount /dev/cdrom /mnt
cobbler import --path=/mnt/ --name=CentOS-7-x86_64 --arch=x86_64

導入centos6的步驟在這里略去!

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

定義自動化安裝時centos7的網卡信息文件(自動生成eth1,eth2)
cobbler profile edit --name=CentOS-7-x86_64 --kopts='net.ifnames=O biosdevname=O'

cobbler sync #使修改的配置文件生效
然后隨便添加一臺虛擬機,開機!

cobbler服務器端查看日志

(14)安裝xinetd
yum -y install xinetd
systemctl start xinetd
安裝好后就會可以選擇安裝centos版本,選擇對應版本后就會自動執行安裝程序!


# 自動重裝和cobbler-web
## 安裝koan
yum -y install koan
查看可以重裝的系統:
koan --server=192.168.0.100 --list=profiles

## 指定要重裝成centos6:
koan --replace-self --server=192.168.0.100 --profile=CentOS-6-x86_64

## 通過web訪問cobbler
在瀏覽器輸入:https://192.168.0.100/cobbler_web,用戶名和密碼都是默認的cobbler

## cobbler修改密碼
htdigest /etc/cobbler/users.digest "Cobbler" cobbler

所有操作都可在web界面進行


## 修改提示信息的選單
vim /etc/cobbler/pxe/pxedefault.template
修改前:

修改后:

然后執行命令:cobbler sync
新建一臺虛擬機查看效果:

# 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

主機名: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

同步:cobbler sync
啟動虛擬機跳過選擇界面自動安裝:

- 獻給我的朋友們
- 一、個人對學習的看法
- 二、運維技能圖譜
- 三、運維常用技能
- 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實戰