Foreman - 用本地镜像替换 repo

Foreman - replacing repo with local mirrors

我们使用 foreman (v1.14.1) 进行配置,我们有一个可用的 CentOS 7 安装介质用于基础 OS。 安装时它会在 /etc/yum.repos.d 中安装默认的 repos 和在线镜像,但我想用我们的本地镜像替换它。

我运行 accross this workflow (from 2012) 它使用以下代码片段遍历当前 host os 的所有媒体并设置写出一个 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 -%>

我为此 OS 设置了几个安装媒体,每个都有一个特定的 repo URI(基本、更新、附加、附加...)。

该片段在 kickstart 的 %post 安装部分被调用,但是当我想要构建 host 时,我收到以下错误:

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

我知道“@host.os.media.each”对于遍历不同的媒体是不正确的,但我该怎么做呢? 任何帮助表示赞赏:)

无法让它工作所以我只是更改了我的代码片段 "FF_repos" 以直接将 repos 定义烘焙到磁盘上相应的 repo 文件中。

我在 %post 部分添加了以下内容,然后删除默认存储库并保留我们的。

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