windows – Chef:如何检查服务是否已安装?
我不确定在这里使用什么动作. :没有什么只是跳过资源以便它被执行,但是当他们试图对不存在的服务进行操作时,任何其他操作都会出错.
如何检测服务是否已安装并根据该信息执行操作?
我在Windows上运行,如果那是相关的.
https://github.com/opscode/chef/blob/master/lib/chef/provider/service/windows.rb
AFAIU非常直观地为您的食谱添加导入:
require 'win32/service'
然后你可以检查服务是否存在
Win32::Service.exists?(@new_resource.service_name)
瞧 – 你可以把库存(http://docs.opscode.com/essentials_cookbook_libraries.html)用于不污染食谱代码和有简单的方法service_exists?
windows – Chef:如何检查服务是否已安装?的更多相关文章
-
centos – 创建一个仅运行%post脚本以修改另一个RPM拥有的文件的RPM是否合法?
在我得到这个效果的答案之前,我们使用Chef进行类似于此的大多数RPM后配置,但是在这种情况下不想使用它,因为我们不希望在repo配置中有特殊情况只是这一个实例,我们正在尝试使用RPM来在其他地方的RPM内部封装“繁重的”安装/升级逻辑.我们希望我们自己的软件能够像其他开源软件一样运行,因为它可以安装和运行而不依赖于Chef进行基本安装,而Chef仅用于自定义.提前感谢任何建议……
-
centos – Chef-Solo“undefined方法`[]’为nil:NilClass”
我刚刚安装了一个新的CentOS6.3VM并禁用了SELinux.下面是我运行安装Ruby,ChefSolo并尝试配置VM的确切脚本:不幸的是,正如我收到的脚本运行:因此,在尝试加载节点[‘PHP’][‘version’]时看起来很窒息.这是在我的/tmp/lc-chef/cookbooks/liquidcompass/attributes/default.rb中定义的:因此看起来Chef要么没有
-
windows – Chef:如何检查服务是否已安装?
在一个配方中,我想检查是否安装了服务,以及是否通知了安装它所需的3个资源.我尝试了服务资源,它在安装时正确识别服务,但如果未安装服务则抛出异常.我不确定在这里使用什么动作.:没有什么只是跳过资源以便它被执行,但是当他们试图对不存在的服务进行操作时,任何其他操作都会出错.如何检测服务是否已安装并根据该信息执行操作?
-
ubuntu – 厨师引导给401未经授权
我正在尝试通过运行来引导新的Chef节点:刀引导-xlewis-Ngitlab–sudo但我得到以下输出:[Mon,03Sep201214:45:170000]信息:***厨师10.12.0***[Mon,03Sep201214:45:170000]信息:客户端密钥/etc/chef/client.pem不存在–注册[Mon,03Sep201214:45:170000]信息:H
-
ubuntu – 确保持续集成服务的“清洁系统”的有效方法
我们希望为我们的项目建立持续集成服务.CI服务应该控制项目生命的所有方面,包括部署.也就是说,我们希望每次迭代时CI代理都采用一个干净的系统,在那里部署我们的项目并运行测试.我们可能会从头开始编写CI服务,因为我们的生态系统很不寻常.问题是:如何为每个CI迭代有效地提供干净的平板系统?
-
使用vagrant和chef在Ubuntu中设置Windows VM
如果没有,我将如何为WindowsServer2008构建Vagrant.Box?
-
ubuntu – 为什么apt-get install要求更新nginx.conf?如何使用厨师解决这个问题?
我试图使用chef脚本安装几个与Nginx无关的软件包.但它失败了,因为它要求更新Nginx.conf和Nginx/sites-available/default.我可以选择使用厨师.因此我尝试通过运行命令sudoapt-getinstallhtop自行安装htop,并得到以下输出.然后我尝试安装已安装的cmakesudoapt-getinstallvim,我仍然遇到同样的错误.输出如下>我想了解为什么每次都会发生这种情况?因为它会阻止我的厨师脚本.>我如何使用厨师解决这个问题?Chef以非交互模式运行a
-
ubuntu – 与Chef Solo一起运行`apt-get upgrade`
我正在使用ChefSolo为Ubuntu12.04提供基于Opscode的“Bento”框的VagrantVM.当它完成配置并且我第一次使用SSH时,MOTD告诉我有包和安全更新.然后我手动运行sudoapt-getupgrade,这会在后续登录时删除该消息.有没有办法让Chef自动执行此步骤?
-
如何让Chef-Server在Ubuntu上使用Ruby 1.9?
用Ruby1.9.x的刀?
-
ubuntu – 配置管理工具(Puppet,Chef)是否能够使安装的软件包保持最新?
对于已经运行配置管理工具的人来说,这可能是一个简单的问题.配置管理工具是否是保持已安装软件包最新的正确方法?我目前运行“unattendedupgrades”让系统自动安装安全更新,但我仍然必须连接到服务器并运行aptitudeupdate&&aptitude安全升级每隔一段时间.当然,这使得服务器越多越无聊,乏味且容易出错.像Puppet或Chef这样的工具是保持已安装软件包最新的正确方法吗?您是否有人使用这些工具来避免在15台服务器上手动运行aptitude或同等产品?
随机推荐
-
static – 在页面之间共享数据的最佳实践
我想知道在UWP的页面之间发送像’selectedItem’等变量的最佳做法是什么?创建一个每个页面都知道的静态全局变量类是一个好主意吗?
-
.net – 为Windows窗体控件提供百分比宽度/高度
WindowsForm开发的新手,但在Web开发方面经验丰富.有没有办法为Windows窗体控件指定百分比宽度/高度,以便在用户调整窗口大小时扩展/缩小?当窗口调整大小时,可以编写代码来改变控件的宽度/高度,但我希望有更好的方法,比如在HTML/CSS中.在那儿?
-
使用Windows Azure查询表存储数据
我需要使用特定帐户吗?>将应用程序部署到Azure服务后,如何查询数据?GoogleAppEngine有一个数据查看器/查询工具,Azure有类似的东西吗?>您可以看到的sqlExpressintance仅在开发结构中,并且一旦您表示没有等效,所以请小心使用它.>您可以尝试使用Linqpad查询表格.看看JamieThomson的thispost.
-
windows – SetupDiGetClassDevs是否与文档中的设备实例ID一起使用?
有没有更好的方法可以使用DBT_DEVICEARRIVAL事件中的数据获取设备的更多信息?您似乎必须指定DIGCF_ALLCLASSES标志以查找与给定设备实例ID匹配的所有类,或者指定ClassGuid并使用DIGCF_DEFAULT标志.这对我有用:带输出:
-
Windows Live ID是OpenID提供商吗?
不,WindowsLiveID不是OpenID提供商.他们使用专有协议.自从他们的“测试版”期结束以来,他们从未宣布计划继续它.
-
如果我在代码中进行了更改,是否需要重新安装Windows服务?
我写了一个Windows服务并安装它.现在我对代码进行了一些更改并重新构建了解决方案.我还应该重新安装服务吗?不,只需停止它,替换文件,然后重新启动它.
-
带有双引号的字符串回显使用Windows批处理输出文件
我正在尝试使用Windows批处理文件重写配置文件.我循环遍历文件的行并查找我想要用指定的新行替换的行.我有一个’函数’将行写入文件问题是%Text%是一个嵌入双引号的字符串.然后失败了.可能还有其他角色也会导致失败.如何才能使用配置文件中的所有文本?尝试将所有“在文本中替换为^”.^是转义字符,因此“将被视为常规字符你可以尝试以下方法:其他可能导致错误的字符是:
-
.net – 将控制台应用程序转换为服务?
我正在寻找不同的优势/劣势,将我们长期使用的控制台应用程序转换为Windows服务.我们为ActiveMQ使用了一个叫做java服务包装器的东西,我相信人们告诉我你可以用它包装任何东西.这并不是说你应该用它包装任何东西;我们遇到了这个问题.控制台应用程序是一个.NET控制台应用程序,默认情况下会将大量信息记录到控制台,尽管这是可配置的.任何推荐?我们应该在VisualStudio中将其重建为服务吗?我使用“-install”/“-uninstall”开关执行此操作.例如,seehere.
-
windows – 捕获外部程序的STDOUT和STDERR *同时*它正在执行(Ruby)
哦,我在Windows上:-(实际上,它比我想象的要简单,这看起来很完美:…是的,它适用于Windows!
-
windows – 当我试图批量打印变量时,为什么我得到“Echo is on”
我想要执行一个简单的批处理文件脚本:当我在XP中运行时,它给了我预期的输出,但是当我在Vista或Windows7中运行它时,我在尝试打印值时得到“EchoisOn”.以下是程序的输出:摆脱集合表达式中的空格.等号(=)的两侧可以并且应该没有空格BTW:我通常在@echo关闭的情况下启动所有批处理文件,并以@echo结束它们,所以我可以避免将代码与批处理文件的输出混合.它只是使您的批处理文件输出更好,更清洁.