Cobbler⾃定义仓库
Cobbler会将指定的repo仓库里的.rpm包下载到本地,通过Cobbler安装的系统会在本地生成对应的.repo文件,里面的地址内容指向Cobbler的IP地址

实现该功能需要在:/etc/cobbler/settings下的参数为yum_post_install_mirror: 1 但是cobbler默认开启

1.添加 repo
这里以zabbix-3.4来演示

[root@Cobbler ~]# cobbler repo add \
--name=zabbix-3.4_CentOS7 --mirror=https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/  \
--arch=x86_64 \
--breed=yum

#或者同步本地仓库 

[root@Cobbler ~]# cobbler repo add --name=local-ftp-base \ --mirror=ftp://10.0.0.202/centos7/base/

2.同步 repo

#Cobbler自动将*.rpm包下载到本地/var/www/cobbler/repo_mirror/
[root@Cobbler ~]# cobbler reposync
[root@Cobbler ~]# ll /var/www/cobbler/repo_mirror/
drwxr-xr-x 5 root apache 4096 Jan  7 11:03 zabbix-3.4

3.添加 repo 到对应的 profile

#查看repo列表(已添加)
[root@Cobbler ~]# cobbler repo list
zabbix-3.4_CentOS7

#http协议 
[root@Cobbler ~]# cobbler profile edit --name=CentOS-7-x86_64 --repos=zabbix-3.4_CentOS7

#本地ftp 
[root@Cobbler ~]# cobbler profile edit --name=CentOS-7-x86_64 --repos=local-ftp-base

#注意:如果存在多个repo,需要在多个repo包名之间空格分割,
cobbler profile edit --name=CentOS-7-x86_64 --repos="zabbix-3.4 saltstack-2018.3"

4.修改 kickstart ⽂件 (添加到 %post %end 中间)

%post 
systemctl disable postfix.service
$yum_config_stanza  #在安装系统就会调用该变量为系统添加repo
%end

5.添加定时任务, 定期同步repo

echo "00 3 * * * /usr/bin/cobbler reposync --tries=3 --no-fail" >> /var/spool/cron/root

# --tries repo同步失败的尝试次数
# --no-fail 当前repo同步失败也不会影响到其它repo同步

可以将同步的结果重定向到一个log文件中便于查看:
00 3 * /usr/bin/cobbler reposync --tries=3 --no-fail" &>/var/log/cobbler_sync.log

  1. 在自动化装机的时候,cobbler会在新装的机器上添加一个新的repo源会指向cobbler的地址