文章目录
- 环境准备
- 关闭防火墙,selinux,配置网络源
- 使用阿里源
- 安装相关软件包,并启动服务
- 修改配置文件
- 下载缺失文件
- 启动rsync,设置开机自启动,修改配置文件,添加密码
- 重新启动cobler,检查配置
- 再次查看防火墙,修改相关配置文件
- 导入镜像
- 创建ks部署脚本
- 编辑ks脚本
- 检查语法是否错误
- 同步cobbler,重新启动服务
- 新建一台虚拟机
环境准备
- 使用NAT链接模式,勾选dhcp自动分配,在网卡配置文件中修改为dhcp自动获取IP,开机自启动,重启网络服务可以ping通百度
关闭防火墙,selinux,配置网络源
[root@bad ~]# systemctl stop firewalld //关闭防火墙
[root@bad yum.repos.d]# cd /etc/yum.repos.d/
//获取163网络源
[root@bad yum.repos.d]# curl -o 163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1572 100 1572 0 0 457 0 0:00:03 0:00:03 --:--:-- 457
[root@bad yum.repos.d]# ls
163.repo yum.repo
[root@bad yum.repos.d]# sed -i 's/\$releasever/7/g' 163.repo //替换版本号为当前系统的主版本号
[root@bad yum.repos.d]# sed -i 's/^enabled=.*/enabled=1/g' 163.repo //启用163.repo源
[root@bad yum.repos.d]# yum install -y epel-release //下载网络源
//安装cobbler及相关软件包
[root@bad yum.repos.d]# yum -y install httpd dhcp tftp python-ctypes cobbler
使用阿里源
[root@bad ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
--2019-11-28 05:07:03-- http://mirrors.aliyun.com/repo/epel-7.repo
。。。
100%[=====================================>] 664 --.-K/s in 0s
2019-11-28 05:07:03 (152 MB/s) - ‘/etc/yum.repos.d/epel.repo’ saved [664/664]
安装相关软件包,并启动服务
[root@bad ~]# yum -y install cobbler cobbler-web pykickstart debmirror httpd dhcp tftp-server xinetd syslinux rsync
[root@bad ~]# systemctl start httpd //启动http服务
[root@bad ~]# systemctl enable httpd //设置开机自启动
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'
[root@bad ~]# systemctl start cobblerd //启动cobbler
[root@bad ~]# systemctl enable cobblerd //设置开机自启动
ln -s '/usr/lib/systemd/system/cobblerd.service' '/etc/systemd/system/multi-user.target.wants/cobblerd.service'
修改配置文件
//修改server的ip地址为本机的ip
[root@bad ~]# sed -i 's/^server: 127.0.0.1/server: 192.168.10.24/' /etc/cobbler/settings //修改server的ip地址为本机的ip
//修改tftp的ip地址为本机ip
[root@bad ~]# sed -i 's/^next_server: 127.0.0.1/next_server: 192.168.10.24/' /etc/cobbler/settings //修改tftp的ip地址为本机ip
//开启tftp
[root@bad ~]# sed -i '/disable/s/yes/no/g' /etc/xinetd.d/tftp
下载缺失文件
[root@bad ~]# systemctl restart cobblerd //重新启动cobbler
[root@bad ~]# systemctl restart httpd //重新启动httpd
[root@bad ~]# cobbler get-loaders //下载缺失的文件
task started: 2019-11-28_054701_get_loaders
task started (id=Download Bootloader Content, time=Thu Nov 28 05:47:01 2019)
path /var/lib/cobbler/loaders/README already exists, not overwriting existing content, use --force if you wish to update
。。。
path /var/lib/cobbler/loaders/grub-x86_64.efi already exists, not overwriting existing content, use --force if you wish to update
*** TASK COMPLETE ***
如果下载缺失文件失败,尝试以下步骤,并重新启动cobbler和http
yum -y install syslinux //安装引导加载程序
cp /usr/share/syslinux/menu.c32 /var/lib/cobbler/loaders/
cp /usr/share/syslinux/pxelinux.0 /var/lib/cobbler/loaders/
启动rsync,设置开机自启动,修改配置文件,添加密码
[root@bad ~]# systemctl start rsyncd //启动rsync
[root@bad ~]# systemctl enable rsyncd //设置开机自动启动
ln -s '/usr/lib/systemd/system/rsyncd.service' '/etc/systemd/system/multi-user.target.wants/rsyncd.service'
[root@bad ~]# openssl passwd -1 -salt "$RANDOM" '123' //生成加密密码
$1$25895$eKsGdiCzUnpI95DNkOgkN. //加密的密码
[root@bad ~]# vim /etc/cobbler/settings //将随机密码写入配置文件中
重新启动cobler,检查配置
[root@bad ~]# systemctl restart cobblerd //重新启动cobbler
[root@bad ~]# ss -antl //查看已开启的端口
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:59998 *:*
LISTEN 0 5 127.0.0.1:25151 *:*
LISTEN 0 64 *:2049 *:*
。。。
[root@bad ~]# 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.
以上两个问题可以忽略
Restart cobblerd and then run 'cobbler sync' to apply changes.
[root@bad ~]# reboot //重启
再次查看防火墙,修改相关配置文件
[root@bad ~]# systemctl status firewalld //查看防火墙是否关闭
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled)
Active: inactive (dead)
//配置cobbler dhcp 修改cobbler配置文件,让cobbler控制dhcp
[root@bad ~]# sed -i '/^manage_dhcp/s/0/1/g' /etc/cobbler/settings
[root@bad ~]# sed -n '/^manage_dhcp/p' /etc/cobbler/settings
manage_dhcp: 1
[root@bad ~]# vim /etc/cobbler/dhcp.template //配置dhcp
subnet 192.168.10.0 netmask 255.255.255.0 {
option routers 192.168.10.24;
option domain-name-servers 192.168.10.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.10.100 192.168.10.254;
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
[root@bad ~]# systemctl restart cobblerd //重启服务
[root@bad ~]# cobbler sync //完成sync同步配置
task started: 2019-12-14_103711_sync
task started (id=Sync, time=Sat Dec 14 10:37:11 2019)
running pre-sync triggers
。。。
running python trigger cobbler.modules.scm_track
running shell triggers from /var/lib/cobbler/triggers/change/*
*** TASK COMPLETE ***
[root@bad ~]#
导入镜像
[root@bad ~]# netstat -anulp | grep dhcp //检查dhcp是否正常
udp 0 0 0.0.0.0:67 0.0.0.0:* 2329/dhcpd
[root@bad ~]# mount /dev/cdrom /mnt/ //挂载光驱
mount: /dev/sr0 is write-protected, mounting read-only
[root@bad ~]# cobbler list //查看cobbler镜像列表
distros:
Centos-7-x86_64
profiles:
Centos-7-x86_64
systems:
。。。
创建ks部署脚本
//创建kickstarts自动安装脚本
[root@bad ~]# cobbler import --path=/mnt --name=Centos-7 --arch=x86_64
task started: 2019-12-14_104002_import
task started (id=Media import, time=Sat Dec 14 10:40:02 2019)
Found a candidate signature: breed=redhat, version=rhel6
。。。
creating new profile: Centos-7-x86_64
associating repos
checking for rsync repo(s)
checking for rhn repo(s)
checking for yum repo(s)
。。。
looking for /var/www/cobbler/ks_mirror/Centos-7-x86_64/addons/ResilientStorage/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/Centos-7-x86_64/addons/ResilientStorage/repodata
*** TASK COMPLETE ***
编辑ks脚本
//编辑此文件,把以下内容写入到文件中
[root@bad ~]# vim /var/lib/cobbler/kickstarts/Centos-7-x86_64.ks
install
keyboard 'us'
rootpw --iscrypted $1$m1pE0DG6$vALBphGGynqvUzfJaWZ6U1
url --url="$tree"
lang en_US
firewall --disabled
auth --useshadow --passalgo=sha512
graphical
firstboot --disable
selinux --disabled
network --bootproto=dhcp --device=eth0
network --bootproto=dhcp --device=eth1
reboot
timezone Asia/Shanghai
bootloader --location=mbr
zerombr
clearpart --all --initlabel
part /boot --asprimary --fstype="ext4" --size=200
part swap --fstype="swap" --size=1024
part / --fstype="ext4" --grow --size=1
%packages
@base
@core
@compat-libraries
@debugging
@development
@gnome-desktop
@X Window System
%end
检查语法是否错误
[root@bad ~]# cobbler validateks //检查语法是否错误
task started: 2019-12-14_105811_validateks
task started (id=Kickstart Validation, time=Sat Dec 14 10:58:11 2019)
----------------------------
osversion: rhel7
checking url: http://192.168.10.24/cblr/svc/op/ks/profile/Centos-7-x86_64
running: /usr/bin/ksvalidator -v "rhel7" "http://192.168.10.24/cblr/svc/op/ks/profile/Centos-7-x86_64"
received on stdout:
received on stderr:
*** all kickstarts seem to be ok ***
*** TASK COMPLETE ***
[root@bad ~]# cobbler profile list //查看当前cobbler有哪些配置文件
Centos-7-x86_64
//修改profile将我们新建的ks文件设为默认的kickstarts安装文件
[root@bad ~]# cobbler profile edit --name Centos-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/Centos-7-x86_64.ks
//配合网卡名称为传统网卡名称eth0
[root@bad ~]# cobbler profile edit --name Centos-7-x86_64 --kopts='net.ifnames=0 biosdevname=0'
[root@bad ~]# cobbler profile report //配合网卡名称为传统网卡名称eth0
Name : Centos-7-x86_64
TFTP Boot Files : {}
Comment :
DHCP Tag : default
Distribution : Centos-7-x86_64
Enable gPXE? : 0
Enable PXE Menu? : 1
。。。
同步cobbler,重新启动服务
[root@bad ~]# cobbler sync //同步cobbler
task started: 2019-12-14_110250_sync
task started (id=Sync, time=Sat Dec 14 11:02:50 2019)
running pre-sync triggers
。。。
running python trigger cobbler.modules.manage_genders
running python trigger cobbler.modules.scm_track
running shell triggers from /var/lib/cobbler/triggers/change/*
*** TASK COMPLETE ***
[root@bad ~]# systemctl restart xinetd //重新启动超级守护进程
[root@bad ~]# systemctl restart cobblerd //重新启动cobbler
[root@bad ~]# systemctl restart httpd //重新启动http
[root@bad ~]# ss -antl //查看已经开启的端口
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:48189 *:*
LISTEN 0 5 127.0.0.1:25151 *:*
。。。
[root@bad ~]#
新建一台虚拟机
以上内容均属原创,如有不详或错误,敬请指出。
本文作者:
坏坏
本文链接: https://blog.csdn.net/qq_45668124/article/details/106360368
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!