1. 3 Cobbler自动化实践

在了解了Cobbler的基本使用和Cobbler的各种组件之后,在生产环境中,我们就可以灵活的运用Cobbler来完成很多自动化的工作。

1.1. 3.1 Cobbler构建私有YUM仓库

Cobbler除了用来进行自动化安装之外,最方便的一个功能就是做YUM仓库了。从此再也不用担心,在服务器无法上外网的情况下,如何使用开源工具了。而且如果你需要,Cobbler可以帮你进行同步,及时的和官方的源保持一致。

1.1.1. 3.1.1 构建OpenStack私有仓库

添加OpenStack源:

[root@linux-node1 ~]# cobbler repo add --name=openstack-queens-x86_64 \
 --mirror=http://mirrors.aliyun.com/centos/7.4.1708/cloud/x86_64/openstack-queens/ \
 --arch=x86_64 --breed=yum

对于 yum 存储库 URL,Cobbler 接受 http://、ftp://、rsync://、文件系统路径和 ssh 位置(通过使用基于私钥的身份验证)。

  • http协议 方式:只能拉取到某一软件的最新版本,无法拉取所有版本。
  • rsync协议方式:镜像方式,可以拉取提供 rsync 服务目录下的所有目录和文件。

同步仓库

[root@linux-node1 ~]# cobbler reposync

提示:OpenStack Queens的源同步完成大约在900M左右。

1.1.2. 3.1.2 构建Zabbix私有仓库

由于Zabbix官方不支持rsync的方式同步,所以只能使用http的方式同步最新版本的源。

[root@linux-node1 ~]# cobbler repo add --name=zabbix-3.4-rhel7-x86_64  \
--mirror=http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/
[root@linux-node1 ~]# cobbler repo list
   zabbix-3.4-rhel7-x86_64

同步仓库

[root@linux-node1 ~]# cobbler reposync

提示:Zabbix 3.4版本的源同步完成大约在20M左右。

1.1.3. 3.1.3 构建SaltStack私有仓库

由于SaltStack的国外源相对比较慢,所以生产会使用Cobbler构建内部源。

[root@linux-node1 ~]# cobbler repo add --name=saltstack-2018.3-rhel7-x86_64 \
 --mirror=https://repo.saltstack.com/yum/redhat/7/x86_64/2018.3

同步仓库

[root@linux-node1 ~]# cobbler reposync

提示:SaltStack 2018.3版本的源同步完成大约在50M左右。

1.1.4. 3.1.4 将私有仓库添加到Profile

[root@linux-node1 ~]# cobbler repo list
   openstack-queens-rhel7-x86_64
   saltstack-2018.3-rhel7-x86_64
   zabbix-3.4-rhel7-x86_64

将自定义的Repo添加到对应的Profile之后,我们使用该Profile安装完毕的虚拟机默认就会增加这些仓库的配置。 提示:必须执行完毕reposync之后,才能添加到Profile。多个repo之间使用空格分隔。

[root@linux-node1 ~]# cobbler profile edit --name CentOS-7.4-x86_64 \
--repos="openstack-queens-rhel7-x86_64 saltstack-2018.3-rhel7-x86_64 zabbix-3.4-rhel7-x86_64"

使用Profile CentOS-7.4-x86_64创建出来的虚拟机都会有一个cobbler-config.repo文件

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# cat cobbler-config.repo 
[openstack-queens-rhel7-x86_64]
name=openstack-queens-rhel7-x86_64
baseurl=http://192.168.56.11/cobbler/repo_mirror/openstack-queens-rhel7-x86_64
enabled=1
priority=99
gpgcheck=0


[saltstack-2018.3-rhel7-x86_64]
name=saltstack-2018.3-rhel7-x86_64
baseurl=http://192.168.56.11/cobbler/repo_mirror/saltstack-2018.3-rhel7-x86_64
enabled=1
priority=99
gpgcheck=0

[zabbix-3.4-rhel7-x86_64]
name=zabbix-3.4-rhel7-x86_64
baseurl=http://192.168.56.11/cobbler/repo_mirror/zabbix-3.4-rhel7-x86_64
enabled=1
priority=99
gpgcheck=0

1.2. 3.2 使用Cobbler自动化安装ESXi

  1. 挂载ESXI镜像并导入

首先使用Vmware Workstation挂载对应的ESXi镜像,这里使用的6.5版本。

[root@linux-node1 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
[root@linux-node1 ~]# cobbler import --path=/mnt --name=ESXi6.5 --arch=x86_64
  1. 会自动生成distros和profiles
[root@linux-node1 ~]# cobbler list
distros:
   CentOS-7.4-x86_64
   ESXi6.5-x86_64

profiles:
   CentOS-7.4-x86_64
   ESXi6.5-x86_64
  1. 查看kickstart文件
[root@linux-node1 ~]# cobbler profile report --name ESXi6.5-x86_64
Name                           : ESXi6.5-x86_64
TFTP Boot Files                : {}
Comment                        : 
DHCP Tag                       : default
Distribution                   : ESXi6.5-x86_64
Enable gPXE?                   : 0
Enable PXE Menu?               : 1
Fetchable Files                : {}
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart                      : /var/lib/cobbler/kickstarts/sample_esxi6.ks
Kickstart Metadata             : {}
Management Classes             : []
Management Parameters          : <<inherit>>
Name Servers                   : []
Name Servers Search Path       : []
Owners                         : ['admin']
Parent Profile                 : 
Internal proxy                 : 
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Repos                          : []
Server Override                : <<inherit>>
Template Files                 : {}
Virt Auto Boot                 : 1
Virt Bridge                    : xenbr0
Virt CPUs                      : 1
Virt Disk Driver Type          : raw
Virt File Size(GB)             : 5
Virt Path                      : 
Virt RAM (MB)                  : 512
Virt Type                      : kvm
  1. 使用Cobbler安装ESXi

首先需要同步一下

[root@linux-node1 ~]# cobbler sync
  1. 创建虚拟机进行实验。

1.3. 3.3 定制化服务器安装

1.3.1. 3.3.1 自动化安装流程梳理

  1. 采购设备送到机房。
  2. 机房同事,开机,插电验收,验收完毕。
  3. 进行CMDB资产录入。提供机器位置和MAC地址列表(供应商也可以提供)
  4. 调用IPMI开机,Cobbler API安装操作系统。
  5. 安装完毕,启动后,自动启动SaltStack。然后剩下的以SaltStack为核心了。

说明: 服务器网卡必须支持PXE功能 定制化 至少有这么几个:网络配置,Hostname 这些 注意: 如果不定制化,网卡通过PXE启动后,会出现一个菜单供人选择用哪个配置(其实就是Profile的名字)而且每个安装源 都有自己的默认KS文件,超过时间后,会指定使用默认的 KS文件 进行安装本文主要讨论 自动化一键部署,所以必须要做定制化 这部分的操作 主要通过 cobbler system 来实现

1.3.2. 3.3.2 Cobbler获取安装进度

后面有章节介绍如何通过Cobbler API来调用Cobbler,在开始进行系统定制安装之前,我们可能有一个需求就是需要想知道安装进度。针对于基于Redhat的Linux发行版的系统安装程序叫做Anaconda,Cobbler提供了对Anaconda的监控,从而获取安装进度。

  1. 开启Anaconda监控
[root@linux-node1 ~]# vim /etc/cobbler/settings
anamon_enabled: 1

重启Cobbler

[root@linux-node1 ~]# systemctl restart cobblerd
  1. 查看Kickstart文件确保对应的snippet存在
%pre
$SNIPPET('pre_anamon')

%post
$SNIPPET('post_anamon')
  1. 进行系统安装后,会在/var/log/cobbler/anamon/下创建对应的System目录
[root@linux-node1 ~]# tree /var/log/cobbler/anamon/
/var/log/cobbler/anamon/
└── cobbler-api-test
    ├── anaconda.log
    ├── boot.log
    ├── dmesg
    ├── ks-post.log
    ├── ks-pre.log
    ├── messages
    ├── program.log
    ├── storage.log
    └── sys.log

1 directory, 9 files

1.3.3. 3.3.3 Cobbler system定制安装

Cobbler system是Cobbler提供的可以用来进行系统定制的模块,我们可以通过Cobbler system来定制待安装服务器的IP地址、主机名等操作。

  1. 添加一个主机
[root@linux-node1 ~]# cobbler system add --name=linux-node3 --mac=00:50:56:3F:84:4F \
--profile=CentOS-7.4-x86_64 --ip-address=192.168.56.110 --subnet=255.255.255.0 \
--gateway=192.168.56.2 --interface=eth0 --static=1 --hostname=new.devopsedu.com \
--name-servers="192.168.56.2" \
--kickstart=/var/lib/cobbler/kickstarts/CentOS-7.4-x86_64-Cobbler.cfg
  • --name=linux-node3 #设置一个主机名称
  • --mac=08:00:27:67:A0:BB #设置对应的MAC地址
  • --profile=CentOS-7.4-x86_64 #设置需要安装的操作系统
  • --ip-address=192.168.56.13 #设置一个静态IP地址
  • --subnet=255.255.255.0 #设置子网掩码
  • --gateway=192.168.56.2 #设置网关
  • --interface=eth0 \ 设置网卡
  • --static=1 设置静态IP
  • --dns-name=linux-node3.example.com #设置dns name
  • --hostname=linux-node3.example.com #设置主机名
  • --netboot-enabled=true #设置网络启动
  • --name-servers="192.168.56.2" #设置DNS域名服务器

  • 查看主机

[root@linux-node1 ~]# cobbler system list
   linux-node3

下面,我们来启动虚拟机,进行自动化安装,不再出现选择的菜单,直接安装你制定的操作系统。

Copyright © 赵班长@新运维社区 2019 all right reserved,powered by Gitbook该文件修订时间: 2021-11-28 14:53:32

results matching ""

    No results matching ""