如何在Puppet中使用yumrepo添加Docker存储库?

时间:2018-01-18 03:21:12

标签: puppet

根据Docker文档,此命令添加了yum存储库列表:

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

我想让Puppet为我做这件事,所以我希望这会有效:

yumrepo { "docker":
    descr => 'docker',
    baseurl => 'https://download.docker.com/linux/centos/docker-ce.repo',
    enabled => 1
}

但是,这不起作用。

不幸的是,yum-config-manager中使用的URL包含name / baseurl / enabled / gpgcheck / gpgkey条目的完整列表,其中yumrepo只期待其中一个。那么,有没有办法用一个yumrepo命令或其他命令在docker URL中添加整个条目列表?

2 个答案:

答案 0 :(得分:0)

Docker说明中的URL是要在系统上安装的.repo文件的URL。 此类文件的内容Yumrepo资源的属性描述的内容。应用Yumrepo资源涉及管理存储库描述文件的内容,而不是通过yum-config-manager或其他方式从其他地方获取外部文件。

你有很多选择,但这里有一些更可能的选择:

  • 从docker.com获取指定文件,将其存储在模块的files目录中,并通过File资源在目标节点上安装和管理它。

  • 在某个也有Puppet的节点上安装repo文件,并使用puppet resource命令获取结果的Yumrepo资源的Puppet DSL表示。把它们放在主人的合适课堂上。

答案 1 :(得分:0)

或者,您可以在 docker-ce.repo 内达到峰值并编写适当的 yumrepo 配置:

[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

进入:

yumrepo { 'docker-ce-stable':
   name     => 'Docker CE Stable',
   baseurl  => 'https://download.docker.com/linux/centos/$releasever/$basearch/stable',
   enabled  => 1,
   gpgcheck => 1,
   gpgkey   => https://download.docker.com/linux/centos/gpg',
}

看起来很简单,可以通过 docker-ce.repo 或其他工具从 sed 文件生成一次。

相关问题