在ubuntu下使用puppet添加repo密钥

时间:2016-02-12 17:39:10

标签: puppet

我需要使用puppet为一堆ubuntu主机添加一个apt存储库密钥。

这样的声明是否会起作用?

 exec {"add apt key for elastic":
        command => "/usr/bin/curl https://packages.elasticsearch.org/GPG-KEY-elasticsearch | /usr/bin/apt-key add -",
     }

感谢

2 个答案:

答案 0 :(得分:0)

是的,这应该可以,但是每当你重新运行Puppet时,这也会应用相同的配置。

来自exec docs

  

exec资源中的任何命令都必须能够运行多次而不会造成伤害 - 也就是说,它必须是幂等的。 exec有三种主要的幂等方式:

     
      
  • 命令本身已经是幂等的。 (例如,apt-get update。)
  •   
  • exec有一个onlyif,除非或创建属性,这会阻止Puppet运行命令,除非满足某些条件。
  •   
  • exec有refreshonly => true,只允许Puppet在更改其他资源时运行命令。 (请参阅下面有关刷新的说明。)
  •   

答案 1 :(得分:0)

如果我真的需要,我会尝试只使用高管。其中一个原因是你必须编写exec代码,以便它只在你想要的时候运行。相反,您可以使用apt模块。这只会将密钥放在主机上(如果它尚不存在)。资源受到傀儡控制,因此不会在后续运行中添加:

  include apt

  apt::key { 'elasticsearch':
    id      => '46095ACC8548582C1A2699A9D27D666CD88E42B4',
    options => 'https://packages.elasticsearch.org/GPG-KEY-elasticsearch',
  }