我在主 -> 代理模型中使用 Puppet。我的清单存储在主服务器上,作为快速测试,我puppet agent -t在代理上执行以触发 Puppet 运行。
随着时间的推移,我的清单已经变得相当大,我正在寻找只执行单个类的能力mycompany.someclass.class
我尝试了一些基于谷歌搜索的变体,但没有一个有效
傀儡代理--标签 mycompany.someclass.class 傀儡代理--标签“mycompany.someclass.class” 傀儡代理--tags Mycompany.Someclass.Class 傀儡代理-t --tags“Mycompany.Someclass.Class” 傀儡代理-t --tags Mycompany.Someclass.Class 傀儡代理--tags Mycompany.Someclass.Class puppet apply --tags mycompany.someclass.class 傀儡应用--标签Mycompany.Someclass.Class
您可以使用参数执行资源子集,--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'
...
}
Run Code Online (Sandbox Code Playgroud)
然后您只能执行myClass:
# execute agent with tags
puppet agent -t --tags mytag
Run Code Online (Sandbox Code Playgroud)
https://docs.puppet.com/puppet/4.10/lang_tags.html#restricting-catalog-runs