微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用开源 puppet 运行 cmd 命令

如何解决使用开源 puppet 运行 cmd 命令

有人可以帮助我使用开源木偶吗?
我想向 Windows 客户端提供一个 jar 文件并使用命令行执行 .jar 文件
.jar 文件实际上是作为服务运行的应用程序的更新。

我对 puppet 语言不太熟悉,但会猜测这样的东西来执行 jar 文件

exec { 'jar_execution':
  command => 'cmd.exe /c java -jar foo.jar',} 

这应该是清单的一部分,看起来像这样吗?

service { 'fooservice':
  name      => foo_service,ensure    => running,enable    => true,}

file { 'foo.jar':
  path => 'C:/foo/temp/foo.jar',ensure => file,source => "puppet:///modules/foo/foo.jar",} 

exec { 'jar_execution':
  command => 'cmd.exe /c java -jar C:/foor/temp/foo.jar',} 

代理实际上是如何运行这个命令的?

解决方法

架构方面的考虑很少:

  • 在模块的 archive 历史记录中使用 archive 资源(来自 file 模块)而不是:.jar.git
  • 让其他服务(例如 Apache Archiva、Nexus 或 Artifactory 甚至 Puppet Server 本身)提供所有工件(例如二进制文件)。如果 .jar 不是由您的公司开发的,您可能希望使用权威来源并进行一些内部缓存。
  • 以一种适用于整个基础架构的全局方式命名您的资源,否则您可能会发生通知自身并产生意外结果的事件。
  • puppet 中的资源顺序无关紧要。您希望以对您有意义的方式对资源进行排序,并使用 beforeafterrequirenotify 来确保依赖性。

我建议在模块之外使用二进制文件,因为二进制文件不应该被版本化。您可能有另一个可以提供文件的服务,甚至您的 puppet 基础架构也可以提供这些包,就像它提供 puppet-agent 本身一样,无论您使用的是 Puppet OSS 还是 Puppet Enterprise。

archive { 'C:/foo/temp/foo.jar':
  source  => https://location/to/your/.jar,}

exec { 'C:/foo/temp/foo.jar':  # notice in resource name recommended to use / not \
  command     => 'cmd.exe /c java -jar C:/foor/temp/foo.jar',refreshonly => true # this one executes exec only if the file was re-downloaded (maybe it's signature has changed),or the file was removed from disk and was re-downloaded.
  onlyif      => 'test -f C:\foo\temp\foo.jar' # or some command that guards you to not run this .jar every time you run puppet
  subscribe   => Archive['C:/foo/temp/foo.jar'],notify      => Service['foo_service'] # most probably you need to restart the service after you ran the .jar,otherwise you wouldn't have added in your question.
}

service { 'foo_service':
  ensure    => running,enable    => true,}

我注意到在您的示例中,您无需在执行后删除 .jar。如果您需要,另一个 exec 命令可以删除在同一位置下载的文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。