基于Centos7系统部署cobbler批量安装系统

前言

cobbler是一个能够实现批量安装系统的Linux应用程序。它有别于pxe+kickstart,cobbler能够实现同个服务器批量安装不一样操做系统版本python

系统环境的准备及下载cobbler

1、系统环境

能够用任何模式来使用,不过要注意在局域网使用桥接容易出现DHCP分配IP换乱的问题,这里咱们使用仅主机模式linux

[root@localhost network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:0d:4d:fc brd ff:ff:ff:ff:ff:ff
    inet 192.168.5.3/24 brd 192.168.5.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe0d:4dfc/64 scope link 
       valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:0d:4d:06 brd ff:ff:ff:ff:ff:ff
    inet 169.254.12.2/16 brd 169.254.255.255 scope link ens37   #这是仅主机模式下的网卡
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe0d:4d06/64 scope link 
       valid_lft forever preferred_lft forever

我使用了两块网卡,不过我这里只使用仅主机模式的网卡 ——169.254.12.2redis

2、关闭安全服务

不关闭防火墙没法链接shell

[root@localhost ~]# systemctl stop firewalld                   #关闭防火墙
[root@localhost ~]# setenforce 0                               #关闭selinux

 

 

3、下载cobbler及其所需服务程序

 

[root@songqi ~]# yum install cobbler dhcp tftp-server xinetd syslinux httpd -y

cobbler:核心程序不用多解释vim

dhcp:负责分配客户端IP,由于客户端没有IP,因此须要dhcp服务centos

tftp(Trivial File Transfer Protocol,简单文件传输协议):是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。安全

xinetd:xinetd已经取代了inetd,而且提供了访问控制、增强的日志和资源管理功能,已经成了Red Hat 7 和 Mandrake 7.2的Internet标准超级守护进程bash

syslinux:syslinux是一个功能强大的引导加载程序,并且兼容各类介质。它的目的是简化首次安装Linux的时间,并创建修护或其它特殊用途的启动盘。它提供pxelinux这个文件,pxelinux.0引导文件引导vmlinux和initrd两个启动文件服务器

httpd:可使别的主机能够从服务端获取镜像包网络

 

yum 安装须要下面两个源

[epel]
name=epel
enabled=1
gpgcheck=0
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/

[centos]
name=centos base
enabled=1
gpgcheck=0
baseurl=http://mirrors.163.com/centos/7/os/x86_64/

配置相关服务

第一步、配置dhcp服务

必须提早打开否则后面会报错

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf 

subnet 169.254.12.0 netmask 255.255.0.0 {
  range 169.254.1.20 169.254.2.30;
  default-lease-time 600;
  max-lease-time 7200;
  filename "pxelinux.0";                    #加入pxelinux引导程序
}                   

 

第二步、配置tftp

安装tftp服务器须要安装xinetd

 

 

[root@localhost ~]# vim /etc/xinetd.d/tftp 

# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        disable                 = no                #把yes改成no 表示开机自启
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -B 1380 -v -s /var/lib/tftpboot
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

第三步、启动cobbler、httpd

[root@localhost ~]# systemctl restart cobblerd
[root@localhost ~]# systemctl restart httpd

第四步、检查cobbler配置

[root@ken ~]# cobbler check
The following are potential configuration items that you may want to fix:

1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or
kickstarting features will not work.  This should be a resolvable hostname or IP for the boot server
as reachable by all machines that will use it.
2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something
other than 127.0.0.1, and should match the IP of the boot server on the PXE network.
3 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders'
to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have
installed a *recent* version of the syslinux package installed and can ignore this message entirely. 
Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32,
elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
4 : enable and start rsyncd.service with systemctl
5 : debmirror package is not installed, it will be required to manage debian deployments and repositories
6 : The default password used by the sample templates for newly installed machines (default_password_crypted
in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt '
random-phrase-here' 'your-password-here'" to generate new one
7 : 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

能够看到有7个错误,须要一一排错

 

5、排错

问题1.(文中红字标识错误位置)在 /etc/cobbler/setting中

cobbler文件默认是127.0.0.1本地回环地址,须要更改成提供cobbler服务的ip地址169.254.12.2,在384行

384 server: 169.254.12.2

 

问题2.(文中红字标识错误位置)在 /etc/cobbler/setting中

netx_server也是默认本地127.0.0.1回环地址,须要修改成提供cobbler服务的ip地址 一样是169.254.12.2,在272行出

272 next_server: 169.254.12.2

问题3.(能够忽略)

若想解决,直接运行 cobbler get-loaders便可

问题4.未启动rsync

启动rsync并让其开机自启

[root@songqi ~]# systemctl restart rsyncd
[root@songqi ~]# systemctl enable rsync

问题5.直接忽略

 

问题6.更改密码

[root@songqi ~]# openssl passwd -1 -salt "123" "123456"
$1$123$7mft0jKnzzvAdU4t0unTG1

把新生成的密码填写进 /etc/cobbler/setting,也就是  $  后面的加密数据

101 default_password_crypted: "$1$123$7mft0jKnzzvAdU4t0unTG1"

问题7.一样忽略

 

第六步、重启服务并检查

[root@songqi ~]# systemctl restart cobblerd
[root@songqi ~]# cobbler sync
Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.
[root@songqi ~]# cobbler check
The following are potential configuration items that you may want to fix:

1 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or,
if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux
package installed and can ignore this message entirely. Files in this directory, should you want to support all architectures,
should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these
requirements.
2 : debmirror package is not installed, it will be required to manage debian deployments and repositories 3 : 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.

更改完毕

补充:若是出现 selinux enable 错误提示,关闭防火墙仍无效果时可重启系统即可解决

第七步、挂载光盘并进行数据导入

1.挂载光盘

[root@songqi ~]# mount /dev/cdrom  /mnt

2.导入数据(耐心等待)

[root@songqi ~]# cobbler import --path=/mnt --name="centos7.5"
task started: 2019-03-13_001927_import
task started (id=Media import, time=Wed Mar 13 00:19:27 2019)
Found a candidate signature: breed=redhat, version=rhel6
Found a candidate signature: breed=redhat, version=rhel7
Found a matching signature: breed=redhat, version=rhel7
Adding distros from path /var/www/cobbler/ks_mirror/centos7.5:
creating new distro: centos7.5-x86_64
trying symlink: /var/www/cobbler/ks_mirror/centos7.5 -> /var/www/cobbler/links/centos7.5-x86_64
creating new profile: centos7.5-x86_64
associating repos
checking for rsync repo(s)
checking for rhn repo(s)
checking for yum repo(s)
starting descent into /var/www/cobbler/ks_mirror/centos7.5 for centos7.5-x86_64
processing repo at : /var/www/cobbler/ks_mirror/centos7.5
need to process repo/comps: /var/www/cobbler/ks_mirror/centos7.5
looking for /var/www/cobbler/ks_mirror/centos7.5/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/centos7.5/repodata
*** TASK COMPLETE ***

 

 

distro : 发行版, 就是咱们安装什么版本的linux操做系统的名称 一会咱们会导入一个 distro.
   profile : 相似于一个 配置文件,相似于你的 bash_profile, 里面包含你能够添加 kernel 参数,对应的kickstart 文件 以及 此profile 对应的 distro 等等.

查看distro

[root@songqi ~]# cobbler distro list
centos7.5-x86_64

查看profile

[root@songqi ~]# cobbler profile list
centos7.5-x86_64

 第八步、准备kickstart

在root目录下找到ks文件,并移动到/var/lib/cobbler/kickstarts/到目录下更名为ks.cfg

[root@songqi ~]# mv anaconda-ks.cfg /var/lib/cobbler/kickstarts/ks.cfg
[root@songqi ~]# vim /var/lib/cobbler/kickstarts/ks.cfg
[root@songqi ~]# cat /var/lib/cobbler/kickstarts/ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
url --url=http://192.168.182.128/cobbler/ks_mirror/centos7.5/  #这里须要更改成repodata所在的http地址
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --device=ens33 --ipv6=auto --no-activate
network  --hostname=localhost.localdomain

# Root password
rootpw --iscrypted $6$7zu1wIUDgBGEFV1Y$KsLVeaGmyN92.QHr1fqKdTqPu8PDmd8K9V/s3Ru8NxE53NZz4gQKsmP6K0udcXVvDtponekICYUwBD7tYZJqU/
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel

%packages
@^minimal
@core

%end

%addon com_redhat_kdump --disable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

第九步、自定义profile

[root@songqi ~]#  cobbler profile add --distro=centos7.5-x86_64 --name=centos7.5_songqi --kickstart=/var/lib/cobbler/kickstarts/ks.cfg
[root@songqi ~]# cobbler sync
task started: 2019-03-13_002724_sync
task started (id=Sync, time=Wed Mar 13 00:27:24 2019)
running pre-sync triggers
cleaning trees
removing: /var/www/cobbler/images/centos7.5-x86_64
removing: /var/lib/tftpboot/pxelinux.cfg/default
removing: /var/lib/tftpboot/grub/images
removing: /var/lib/tftpboot/grub/efidefault
removing: /var/lib/tftpboot/images/centos7.5-x86_64
removing: /var/lib/tftpboot/s390x/profile_list
copying bootloaders
copying distros to tftpboot
copying files for distro: centos7.5-x86_64
trying hardlink /var/www/cobbler/ks_mirror/centos7.5/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/centos7.5-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/centos7.5/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/centos7.5-x86_64/initrd.img
copying images
generating PXE configuration files
generating PXE menu structure
copying files for distro: centos7.5-x86_64
trying hardlink /var/www/cobbler/ks_mirror/centos7.5/images/pxeboot/vmlinuz -> /var/www/cobbler/images/centos7.5-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/centos7.5/images/pxeboot/initrd.img -> /var/www/cobbler/images/centos7.5-x86_64/initrd.img
Writing template files for centos7.5-x86_64
rendering TFTPD files
generating /etc/xinetd.d/tftp
processing boot_files for distro: centos7.5-x86_64
cleaning link caches
running post-sync triggers
running python triggers from /var/lib/cobbler/triggers/sync/post/*
running python trigger cobbler.modules.sync_post_restart_services
running shell triggers from /var/lib/cobbler/triggers/sync/post/*
running python triggers from /var/lib/cobbler/triggers/change/*
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 ***

第十步、查看删除

查看profile

[root@ken ~]# cobbler profile list
   centos7.5-x86_64
   centos7.5_ken

删除原有profile

[root@ken ~]# cobbler profile remove --name=centos7.5-x86_64
[root@ken ~]# cobbler profile list
   centos7.5_ken

cobbler自动化安装测试

新建一个虚拟机,须要和cobbler服务器所在同一个虚拟网络中即与咱们上面设置的cobbler服务器的主机模式。内存须要3个G以上。

选择第咱们自定义的包便可进行自动化安装。

 

相关文章
相关标签/搜索