cobbler自动批量安装操作系统
2018-10-31 本文已影响1人
Miracle001
环境
cat /etc/redhat-release
uname -r
getenforce
systemctl status firewalld
hostname -I
yum repolist
1
2
yum安装cobbler
yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd
cobbler依赖epel源下载
3
cobbler语法检查前先启动http和cobbler
systemctl start httpd
systemctl start cobblerd
进行语法检查
cobbler check
4
解决报错问题
解决问题1-2
# 备份
cp /etc/cobbler/settings /etc/cobbler/settings.bak
# 修改server参数的值为提供cobbler服务的主机相应的IP地址或主机名
sed -i 's/server: 127.0.0.1/server: 192.168.25.101/' /etc/cobbler/settings
# 修改next_server参数的值为提供PXE服务的主机相应的IP地址
sed -i 's/next_server: 127.0.0.1/next_server: 192.168.25.101/' /etc/cobbler/settings
解决问题3
# 修改tftp配置文件
sed -i 's#yes#no#' /etc/xinetd.d/tftp
systemctl start tftp.socket
systemctl enable tftp.socket
解决问题4
下载所需的软件包
cobbler get-loaders
ls /var/lib/cobbler/loaders/
5
解决问题5
# 启动rsync服务
systemctl start rsyncd
systemctl enable rsyncd
解决问题6
debian相关无需修改
解决问题7
# 修改安装完成后的root密码
sed -ri "/default_password_crypted/s#(.*: ).*#\1\"`openssl passwd -1 -salt 'fgq' '123456'`\"#" /etc/cobbler/settings
# 启用cobbler的DHCP管理
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/' /etc/cobbler/settings
# 防止重装
sed -i 's/pxe_just_once: 0/pxe_just_once: 1/' /etc/cobbler/settings
# 修改DHCP模板
sed -i.ori 's#192.168.1#192.168.25#g;22d;23d' /etc/cobbler/dhcp.template
# cobbler组配置文件的位置
# 修改完成之后要进行同步,否则不生效
cobbler sync
cobbler check
6
7
# 重启所有服务
systemctl restart httpd.service
systemctl restart cobblerd.service
systemctl restart dhcpd.service
systemctl restart rsyncd.service
systemctl restart tftp.socket
ss -ntl
25151--cobblerd
873--rsyncd
443/80--httpd
8
web界面访问并导入镜像
注意是https,IP地址是服务器的IP
浏览器:https://192.168.25.101/cobbler_web
账号和密码默认都是cobbler
如图9-10
9
10
在虚拟机上添加镜像
11
挂载镜像
mount /dev/cdrom /mnt/
df -h|grep mnt
12
进入web界面导入镜像
选择Import DVD
输入Prefix(文件前缀)----CentOS7.4
选择Arch(版本)--根据自己要导入的镜像来选择----x86_64
Breed(品牌)----Rad Hat based
Path(要从什么地方导入)----/mnt/
在导入镜像的时候要注意路径,防止循环导入
信息配置好后,点击run,即可进行导入
点击run后,如下图14
13
14
导入过程使用rsync进行导入的,所以看rsync三个进程消失表示导入完毕
ps -ef|grep rsync
15
点击Events,查看日志
State:如果是running--表示正在导入
16
导入后生成的文件夹
ll /var/www/cobbler/ks_mirror/
17
空白虚拟机安装centos系统
创建一台空白虚拟机,进行测试网路安装
注意:虚拟机的内存不能小于2G,网卡的配置要保证网络互通
# 启动虚拟机
启动虚拟机即可发现会有cobbler的选择界面
如下图18
选择CentOS7.4即可进行安装,安装过程与光盘安装一致,这里就不在复述。
18
安装完成
root--123456
重启网络服务(其他不用更改)
systemctl restart network
ping www.qq.com 可以访问网络
19
20
21
定制化安装操作系统
选择Distros--查看导入的镜像
点击edit
1
在内核参数中添加net.ifnames=0 biosdevname=0
目的:能够让显示的网卡变为eth0 ,而不是CentOS7中的ens33
修改完成后点击保存
2
选择Profiles,查看镜像属性
3
选择"Kickstart Templates"
再选择"Create New Kickstart File"
4
配置文件名---->CentOS-7-x86_64.cfg
添加ks文件--如下--CentOS-7 ks配置文件
创建完成后点击Save进行保存
CentOS-7 ks配置文件--参考
# Cobbler for Kickstart Configurator for CentOS 7 by fgq
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 2048
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
%end
5
自定义安装系统
选择"systems"
再选择"Create New System" 创建一个新的系统
6
定义系统信息
Name--cobbler中文件名称
Profile--选择镜像
Kickstart--选择之前定义的ks文件
7
配置全局网络信息
Hostname--主机名
Gateway--网关
Name Servers--DNS
8
配置网卡信息,eth0
需要注意,选择static静态
9
虚拟机查看或自动生成mac地址
10
以上的所有配置完成后,点击Save进行保存
cobbler web界面说明
11
开启虚拟机
12
13
安装完成后测试
注意:这方法安装
文件系统没有使用逻辑卷
不用重启,就可以ping通网络
14
eth0没有IP地址的原因是其配置文件ONBOOT=no
15
vi /etc/sysconfig/network-scripts/eth0
ONBOOT=no 把no改为yes
systemctl restart network
ip a eth0有IP地址了
image.png
cobbler常见错误
printf: write error: No space left on device
原因是虚拟机内存不足2G,将虚拟机内存调整为2G即可。(此错误只会出现在CentOS7.3之上)
[root@Cobbler ~]# cobbler sync
Traceback (most recent call last):
File "/usr/bin/cobbler", line 36, in <module>
sys.exit(app.main())
File "/usr/lib/python2.7/site-packages/cobbler/cli.py", line 662, in main
rc = cli.run(sys.argv)
File "/usr/lib/python2.7/site-packages/cobbler/cli.py", line 269, in run
self.token = self.remote.login("", self.shared_secret)
File "/usr/lib64/python2.7/xmlrpclib.py", line 1233, in __call__
return self.__send(self.__name, args)
File "/usr/lib64/python2.7/xmlrpclib.py", line 1587, in __request
verbose=self.__verbose
File "/usr/lib64/python2.7/xmlrpclib.py", line 1273, in request
return self.single_request(host, handler, request_body, verbose)
File "/usr/lib64/python2.7/xmlrpclib.py", line 1306, in single_request
return self.parse_response(response)
File "/usr/lib64/python2.7/xmlrpclib.py", line 1482, in parse_response
return u.close()
File "/usr/lib64/python2.7/xmlrpclib.py", line 794, in close
raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault 1: "<class 'cobbler.cexceptions.CX'>:'login failed'">
解决办法
systemctl restart httpd.service
systemctl restart cobblerd.service
cobbler check
参考文章:
https://blog.csdn.net/admin_root1/article/details/78911718