
我想停止一个服务,执行一个Powershell脚本,然后使用Puppet重新启动服务。 下面的代码不起作用,因为My Service被定义了两次。
service { 'My Service': ensure => 'stopped',require => Package['Install Go Agent'] } exec { 'Do Stuff': command => '...',provIDer => powershell,require => Service['Go Agent'] } service { 'My Service': ensure => 'started',require => Exec['Install Go Agent'] }
实质上我的Powershell脚本是设置windows服务的用户名和密码,可悲的是,你不能使用Puppet。
如何使用Puppet文件资源在目录上赋予不同的权限而不是文件?
我如何为puppet安装一个全球定制的提供商?
告诉Puppet只在registry项不存在的情况下运行安装
如何将linux命令输出存储到puppet中的一个variables中
HIEra和类之间的依赖关系
木偶不是程序性的
首先,你正在以程序的方式思考这个问题。 木偶不是一种程序语言。 它定义了你的最终状态。 你想要定义什么时候执行exec应该幂运行,并有服务订阅它。
如何
这与包/文件/服务类似,在文件更改时刷新(重新启动)服务。 一个很好的阅读是在https://docs.puppetlabs.com/puppet/latest/reference/lang_relationships.HTML和http://www.puppetcookbook.com/posts/restart-a-service-when-a-file-changes .HTML 。
package { 'My Package': ensure => latest,} exec { 'Do Stuff': command => '...',#onlyif/unless => '...',#make it IDempotent #refreshonly => true #make it IDempotent provIDer => powershell,require => Package['My Package'] } service { 'My Service': ensure => 'started',require => Exec['Do Stuff'] }
您一定需要确保PowerShell不会每次都运行, 只有在刷新的情况下才能运行,或者通过仅使用if或if的检查来运行。
windows细节
所以现在的windows细节。 在windows上,与linux不同,您不能简单地替换和/或更新锁定的文件。 因此,执行程序需要检测服务是否存在,关闭它,然后进行更新。 在你的情况下,你也可能需要它来创建服务,如果它不存在。 您也可以在不关闭服务的情况下更新凭据。
木偶定义了希望的状态
exec不需要做的一件事就是将服务置于启动状态。 这总是由服务资源处理。 该服务将检测到它没有运行,并在需要时自行启动。 如果由于定义关系的方式而导致exec['Do Stuf']运行,它也会重新启动。
木偶的未来
现在,你应该注意木偶的东西!
PUP-5477 – windows服务提供商应该能够创建和销毁服务
PUP-1289 – 能够管理windows服务的用户帐户和密码
您可以订阅,投票和评论这些。 当我们知道用户和客户有什么问题时,它可以帮助我们确定工作的优先顺序。
总结以上是内存溢出为你收集整理的使用Puppet启动和停止服务全部内容,希望文章能够帮你解决使用Puppet启动和停止服务所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)