Cobbler+Kickstart $basearch 问题

Cobbler+Kickstart $basearch 问题

我正在使用 CentOS 6.5 和 Cobbler 2.4(来自 EPEL)。我正在尝试使用heredoc注释来创建一个存储库文件(可以工作)而不$basearch被解释。发生的情况是文件被创建,但$basearch没有被替换(例如它被删除)。

我拥有的:

%post
#raw
cat > /etc/yum.repos.d/blah.repo <<REPO
[repo]
name=repo
baseurl=http://repo.local/repo/$basearch
enabled=1
priority=99
gpgcheck=0
REPO
#end raw
%end

实际放入的内容/etc/yum.repos.d/blah.repo$basearch缺少):

[repo]
name=repo
baseurl=http://repo.local/repo/
enabled=1
priority=99
gpgcheck=0

我已经验证过的事情:

  • 我知道它不是 Cobbler 或 Cheetah,因为cobbler validateks并向cobbler profile getks ...我报告了未经修改的 kickstart 脚本(当使用#raw#end raw.
  • 我在 Cheetah 中创建了一个模板示例,它正确地显示了未转义的字符串。

我做了一些进一步的研究并发现,从第一个项目符号来看,它看起来像是$basearchkickstart 中的一个特殊变量。对于如何在不使用curl获取文件或显式定义架构的情况下解决此问题,是否有任何建议?为了简单起见,我想将其保留在 kickstart 文件中。

答案1

问题是我必须转义#rawand#end raw因为它是由 bash 解释的。

%post
#raw
cat > /etc/yum.repos.d/blah.repo <<REPO
[repo]
name=repo
baseurl=http://repo.local/repo/\$basearch
enabled=1
priority=99
gpgcheck=0
REPO
#end raw
%end

相关内容