cobbler部署
------------恢复内容开始------------
cobbler部署
Cobbler是一个Linux系统安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等。 Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。 Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web界面比较易于管理。
通过点点点就可以创建系统以及ks文件。
官网:http://cobbler.github.io/
部署cobbler
环境准备
1.准备好linux机器,使用kickstart那台机器即可
[root@ks-cobbler ~]# hostname
ks-cobbler
[root@ks-cobbler ~]# ifconfig |awk 'NR==2{print $2}'
172.168.1.14
加上一个本地hosts解析
[root@ks-cobbler ~]# tail -1 /etc/hosts
172.168.1.14 ks-cobbler
安装coobler
1.yum自动化安装即可,提前配置好yum源
yum install cobbler cobbler-web dhcp tftp-server pykickstart httpd python-django -y
2.检查软件包
[root@ks-cobbler ~]# rpm -qa cobbler cobbler-web dhcp tftp-server pykickstart httpd python-djangotftp-server-5.2-22.el7.x86_64
pykickstart-1.99.66.21-1.el7.noarch
cobbler-2.8.5-0.3.el7.x86_64
dhcp-4.2.5-79.el7.centos.x86_64
httpd-2.4.6-93.el7.centos.x86_64
cobbler-web-2.8.5-0.3.el7.noarch
3.启动cobbler,与http
systemctl start cobblerd
systemctl restart httpd
4.检查cobbler配置
[root@ks-cobbler ~]# cobbler check
修改cobbler配置
1.修改配置文件/etc/cobbler/settings ,修改如下参数
# 备份配置文件
[root@ks-cobbler ~]# cp /etc/cobbler/settings{,.bak}
# 防止误重装
sed -i 's/pxe_just_once: 0/pxe_just_once: 1/' /etc/cobbler/settings
# 配置Cobbler统一管理DHCP
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/' /etc/cobbler/settings
# 配置DHCP Cobbler模版,这里sed提供了备份功能
sed -i.ori 's#192.168.1#172.168.1#g;22d;23d' /etc/cobbler/dhcp.template
2.根据cobbler check依次修改配置文件,修改如下配置,注意改了之后要重启cobblerd服务,才可以生效
# 请注意,填写ip地址
# 修改/etc/cobbler/settings
server: 172.168.1.14
next_server: 172.168.1.14
# 修改xinetd配置文件, /etc/xinetd.d/tftp ,因为xinetd是管理tftp的,我们用cobbler去管理了
[root@kickstart ~]# systemctl stop xinetd.service
[root@kickstart ~]# systemctl disable xinetd.service
[root@kickstart ~]# grep 'disable' /etc/xinetd.d/tftp
disable = yes
# 需要安装驱动,cobbler要控制其他机器
cobbler get-loaders
[root@ks-cobbler ~]# cobbler get-loaders
task started: 2020-07-29_153446_get_loaders
task started (id=Download Bootloader Content, time=Wed Jul 29 15:34:46 2020)
downloading https://cobbler.github.io/loaders/README to /var/lib/cobbler/loaders/README
downloading https://cobbler.github.io/loaders/COPYING.elilo to /var/lib/cobbler/loaders/COPYING.elilo
downloading https://cobbler.github.io/loaders/COPYING.yaboot to /var/lib/cobbler/loaders/COPYING.yaboot
downloading https://cobbler.github.io/loaders/COPYING.syslinux to /var/lib/cobbler/loaders/COPYING.syslinux
downloading https://cobbler.github.io/loaders/elilo-3.8-ia64.efi to /var/lib/cobbler/loaders/elilo-ia64.efi
downloading https://cobbler.github.io/loaders/yaboot-1.3.17 to /var/lib/cobbler/loaders/yaboot
downloading https://cobbler.github.io/loaders/pxelinux.0-3.86 to /var/lib/cobbler/loaders/pxelinux.0
downloading https://cobbler.github.io/loaders/menu.c32-3.86 to /var/lib/cobbler/loaders/menu.c32
downloading https://cobbler.github.io/loaders/grub-0.97-x86.efi to /var/lib/cobbler/loaders/grub-x86.efi
downloading https://cobbler.github.io/loaders/grub-0.97-x86_64.efi to /var/lib/cobbler/loaders/grub-x86_64.efi
*** TASK COMPLETE ***
# 还需要用到rsync服务,开启该服务
systemctl restart rsyncd
systemctl enable rsyncd
# 修改cobbler安装的系统,默认的密码是"cobbler",可以改下
[root@ks-cobbler ~]# openssl passwd -1
Password:
Verifying - Password:
$1$7QqeCcrC$WwDO644o8wUumCUBuxw6S.
# 修改默认root密码为,chaoge666
default_password_crypted: "$1$7QqeCcrC$WwDO644o8wUumCUBuxw6S."
# 修改有关cobbler脑裂配置,可以使用fencing tools
# 改完如上配置,重启cooblerd
systemctl restart cobblerd
# 再次检查,吧修改的配置,让其生效
cobbler sync
cobbler check
# 剩下的两条无所谓
[root@ks-cobbler ~]# cobbler check
The following are potential configuration items that you may want to fix:
1 : debmirror package is not installed, it will be required to manage debian deployments and repositories
2 : 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.
重启核心服务
systemctl restart cobblerd httpd tftp.socket rsyncd.service
[root@ks-cobbler ~]# systemctl is-active cobblerd httpd tftp.socket rsyncd.service
active
active
active
active
访问cobbler web
https://172.18.41.133/cobbler_web
登录页面
进入首页
导入系统镜像
在cobbler web界面,导入dvd-iso镜像文件信息
cobbler web镜像存放点在
[root@ks-cobbler ks_mirror]# pwd
/var/www/cobbler/ks_mirror
在vmware里挂在好光盘,进行mount
[root@ks-cobbler ks_mirror]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@ks-cobbler ks_mirror]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.6G 16G 9% /
devtmpfs 899M 0 899M 0% /dev
tmpfs 911M 0 911M 0% /dev/shm
tmpfs 911M 9.6M 902M 2% /run
tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/sda1 1014M 142M 873M 14% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/sr0 4.2G 4.2G 0 100% /mnt
配置如图所示
导入镜像的任务
在linux中检查cobbler导入操作
[root@ks-cobbler ks_mirror]# cd /var/www/cobbler/
[root@ks-cobbler cobbler]# ls
images ks_mirror links localmirror misc pub rendered repo_mirror svc
[root@ks-cobbler cobbler]# du -sh .
4.2G .
# cobbler默认是调用rsync进行同步数据
导入结束
apache显示cobbler镜像站点
http://172.18.41.133/cobbler/
cobbler-web
新建vmware虚拟机
测试用cobbler自动装机,创建方式和手动安装方式一样,注意:
- 内存大小
- 添加网络适配器
- 删除usb
- 关闭dvd开机链接
出现如下页面,正常
该界面由pxe启动文件控制
[root@ks-cobbler cobbler]# cat /var/lib/tftpboot/pxelinux.cfg/default
DEFAULT menu
PROMPT 0
MENU TITLE Cobbler | http://cobbler.github.io/
TIMEOUT 200
TOTALTIMEOUT 6000
ONTIMEOUT local
LABEL local
MENU LABEL (local)
MENU DEFAULT
LOCALBOOT -1
LABEL CentOS7-x86_64
kernel /images/CentOS7-x86_64/vmlinuz
MENU LABEL CentOS7-x86_64
append initrd=/images/CentOS7-x86_64/initrd.img ksdevice=bootif lang= kssendmac text ks=http://172.18.41.133/cblr/svc/op/ks/profile/CentOS7-x86_64
ipappend 2
MENU end
自动安装,选择第二个
装机使用的ks文件在这,cobbler生成的
创建自定义系统ks文件
超哥就是那么贴心啊,都给你准备好
创建自定义系统ks文件
超哥就是那么贴心啊,都给你准备好
CentOS7的ks文件
[root@cobbler kickstarts]# vim centos7.ks
# This kickstart file should only be used with EL > 5 and/or Fedora > 7.
# For older versions please use the sample.ks kickstart file.
# Install OS instead of upgrade
install
# Use text mode install
text
# System keyboard
keyboard us
# System language
lang en_US
# System timezone
timezone Asia/ShangHai
#Root password
rootpw --iscrypted $6$cIVuOep8khS61xi3$iNU0CiA8ANu8.8KNEmADfIVqPgcSEaC440oF.41eKin6vpyehf1QMDzjqPLYSfh1SGi8fJ2ajR3axw6jJqrvU1
# System authorization information
auth --useshadow --enablemd5
# Firewall configuration
firewall --disabled
# SELinux configuration
selinux --disabled
# Use network installation
url --url=$tree
# Clear the Master Boot Record
zerombr
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
clearpart --all --initlabel
part /boot --fstype=xfs --size=500
part swap --fstype=swap --size=2048
part / --fstype=xfs --grow --size=200
# If any cobbler repo definitions were referenced in the kickstart profile, include them here.
$yum_repo_stanza
# Network information
$SNIPPET('network_config')
# Do not configure the X Window System
skipx
# Run the Setup Agent on first boot
firstboot --disable
# Reboot after installation
reboot
%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end
%packages
$SNIPPET('func_install_if_enabled')
@core
@base
tree
nmap
wget
lftp
lrzsz
telnet
%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
sed -ri "/^#UseDNS/c\UseDNS no" /etc/ssh/sshd_config
sed -ri "/^GSSAPIAuthentication/c\GSSAPIAuthentication no" /etc/ssh/sshd_config
%end
此时可以去cobbler-web添加我们定义的ks文件模板,
复制粘贴即可,但是注意,不支持中文,所以中文注释都给删掉吧
该文件存放在linux上
[root@ks-cobbler kickstarts]# ll
total 68
-rw-r--r-- 1 root root 1211 Jul 29 16:54 CentOS-7.4-X86_64.ks
-rw-r--r-- 1 root root 115 Aug 30 2019 default.ks
-rw-r--r-- 1 root root 22 Aug 30 2019 esxi4-ks.cfg
-rw-r--r-- 1 root root 22 Aug 30 2019 esxi5-ks.cfg
drwxr-xr-x 2 root root 56 Jul 29 14:04 install_profiles
-rw-r--r-- 1 root root 1424 Aug 30 2019 legacy.ks
-rw-r--r-- 1 root root 292 Aug 30 2019 pxerescue.ks
-rw-r--r-- 1 root root 2825 Aug 30 2019 sample_autoyast.xml
-rw-r--r-- 1 root root 1856 Aug 30 2019 sample_end.ks
-rw-r--r-- 1 root root 0 Aug 30 2019 sample_esx4.ks
-rw-r--r-- 1 root root 324 Aug 30 2019 sample_esxi4.ks
-rw-r--r-- 1 root root 386 Aug 30 2019 sample_esxi5.ks
-rw-r--r-- 1 root root 386 Aug 30 2019 sample_esxi6.ks
-rw-r--r-- 1 root root 1913 Aug 30 2019 sample.ks
-rw-r--r-- 1 root root 3419 Aug 30 2019 sample_old.seed
-rw-r--r-- 1 root root 6694 Aug 30 2019 sample.seed
-rw-r--r-- 1 root root 6706 Jun 18 2019 sample.seed.28
[root@ks-cobbler kickstarts]#
配置cobbler读取自定义的ks文件
cobbler默认读取的是
sample_end.ks
改为
CentOS-7.4-X86_64.ks