工头 - 用本地镜子替换回购

时间:2018-03-02 18:08:01

标签: ruby erb theforeman

我们使用foreman(v1.14.1)进行配置,我们为基本操作系统提供了一个可用的CentOS 7安装介质。 安装时确实在/etc/yum.repos.d中使用在线镜像安装默认存储库,但我想用本地镜像替换它。

我跑过this workflow (from 2012) 它使用以下代码片段迭代当前主机操作系统的所有媒体,并设置写出repo定义。

<% @host.os.media.each do |media| -%>
[<%= media.name.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '') %>]
name=<%= media.name %>
baseurl=<%= @host.os.medium_uri @host, media.path %>
enabled=1
gpgcheck=0
<% end -%>

我为此操作系统设置了多个安装媒体,每个安装媒体都有一个特定的repo URI(Base,Updates,Plus,Extras ...)。

在kickstart的%post install部分中调用该片段,但是当我想构建主机时,我收到以下错误:

Failure parsing Kickstart default: The snippet 'FF_repos' threw an error: 
undefined method 'media' for Operatingsystem::Jail (Redhat).

我理解“@ host.os.media.each”不适合迭代不同的媒体,但我怎么能这样做呢? 任何帮助表示赞赏:)

1 个答案:

答案 0 :(得分:0)

无法让这个工作,所以我只是改变了我的片段&#34; FF_repos&#34;直接将repos定义烘焙到磁盘上相应的repo文件中。

我在%post部分添加了以下内容,然后删除默认的repos并离开我们的。

rm -f /etc/yum.repos.d/*
<%= snippet("FF_repos") %>