我在主人中使用Puppet - >代理模型。我的清单存储在主服务器上,作为快速测试,我在代理上执行puppet agent -t
以触发Puppet运行。
随着时间的推移,我的清单变得非常大,我正在寻找只执行一个课程的能力mycompany.someclass.class
我尝试了一些基于谷歌搜索的变体,但没有一个有效
puppet agent --tags mycompany.someclass.class puppet agent --tags "mycompany.someclass.class" puppet agent --tags Mycompany.Someclass.Class puppet agent -t --tags "Mycompany.Someclass.Class" puppet agent -t --tags Mycompany.Someclass.Class puppet agent --tags Mycompany.Someclass.Class puppet apply --tags mycompany.someclass.class puppet apply --tags Mycompany.Someclass.Class
答案 0 :(得分:2)
您可以使用--tags
参数执行资源子集,就像您在问题中提到的那样。但是,您首先必须在要为该标记执行的资源中设置关联标记。如果只想执行一个类,则可以为该类设置标记,并将该标记指定为--tags
的参数,以仅执行该类。
https://docs.puppet.com/puppet/4.10/lang_tags.html
在这种情况下,标签功能对你来说比元参数更有用。
https://docs.puppet.com/puppet/4.10/lang_tags.html#the-tag-function
# You can use the tag function inside a class definition or defined type to assign tags to the surrounding container and all of the resources it contains
class myClass {
tag 'mytag'
...
}
然后,您只能执行myClass
:
# execute agent with tags
puppet agent -t --tags mytag
https://docs.puppet.com/puppet/4.10/lang_tags.html#restricting-catalog-runs
答案 1 :(得分:0)
如果您不想标记所有资源,也可以使用类名称作为标记来运行代理。
为统一单位提供注意事项:这不是一张免监狱的卡,即使您仅应用了其中一些,有关该节点的所有类仍必须干净地编译。