Articles of 厨师

如何让厨师重新加载全球path

我正在设置一个简单的厨师食谱来安装一个二进制应用程序。 在Ubuntu或者CentOS中没有这个软件包,所以我写了一个配方, 从源代码下载tar 从tar中提取内容 创build一个将app_home添加到全局$ PATH的bash脚本(它需要是全局的) 重新加载$ ​​PATH,以便当前login的用户可以在shell命令中引用它 我很好,第3步,但我不能让厨师重新加载$ ​​PATH。 我已经尝试在.bash_profile以及/etc/profile.d/放置新的导出PATH = $ PATH:/ path / to / app / bin ,但是没有成功。 如果我退出shell,并重新ssh我正确地看到PATH,但从来没有在同一个会话,当我跑sudo chef-client 。 有什么办法,厨师可以自动touch或重新加载PATH,使当前login的用户可以使用它?

主目录不是通过添加用户资源与主厨创build的

在一个stream浪的盒子精确64(Ubuntu的12.04) 使用Chef创build用户资源时,不会创build主目录: 我的食谱: user "myuser" do supports :manage_home => true shell "/bin/bash" home "/home/myuser" comment "Created by Chef" password "myencryptedpassword" system true provider Chef::Provider::User::Useradd action :create end 当我authentication时: $ su – myuser Password: No directory, logging in with HOME=/ 更新 – 对于precise64(Ubuntu 12.04 64位)的解决方法 directory "/home/myuser" do owner "myuser" group "myuser" mode 00755 action :create […]

使用Chef食谱将多行添加到configuration文件

我试图创build一个厨师食谱来追加多个行(20-30)到一个特定的configuration文件。 我知道推荐的模式是改变整个configuration文件,而不是只追加到一个文件,但我不喜欢这种方法有多种原因。 到目前为止唯一的解决scheme是使用cookbook_file ,然后使用bash资源来做: cat lines_to_append >> /path/configfile 显然这不能正常工作,因为它会一遍又一遍地附加文件,每次运行chef-client。 我不得不创build一个小bash脚本来检查一个特定的string, 如果没有find ,附加到文件。 但这似乎打败了使用厨师的目的。 一定会有更好的办法。 一个有前途的解决scheme是来自OpsCode社区的线上食谱 。 它旨在解决这个确切的问题。 不幸的是,function是不完整的,越野车,代码只是一个快速入侵。 远不是一个坚实的解决scheme。 我评估的另一个select是augeas 。 看起来非常强大,但它会为系统增加一个抽象层。 矫枉过正,就我而言。 鉴于这是任何系统pipe理员最明显的任务之一,厨师有什么简单而美丽的解决scheme,我没有看到? 编辑:这是我迄今为止如何解决: cookbook_file "/tmp/parms_to_append.conf" do source "parms_to_append.conf" end bash "append_to_config" do user "root" code <<-EOF cat /tmp/parms_to_append.conf >> /etc/config rm /tmp/parms_to_append.conf EOF not_if "grep -q MY_IDENTIFIER /etc/config" end 它的作品,但不知道这是推荐的厨师模式。

厨师厨师validation。安全

嗨,我正在异地设置一个使用厨师的机器集群。 如果其中一台机器被盗,攻击者可以通过拥有chef-validator.pem对我的厨师服务器或其他节点造成什么样的损害? 还有什么东西可以通过厨师进入? 谢谢!

将自定义厨师推送作业添加到Windows白名单

我正在尝试将推送作业添加到pushy-client的Windows白名单中。 当我使用刀进行search时,它会在Windows节点的白名单中显示自定义作业。 当我尝试运行它时,作业立即失败,在Windows端,它说该命令不在白名单中。 我在GitHub中发现这个问题: Windows推送服务无法加载白名单 我想知道是否有人有解决方法,如何解决这个问题的build议,或者知道我的代码在哪里,我可以猴子补丁。

厨师10:如何使用remote_file或类似从Windows共享中获取文件?

我正在尝试使用remote_file来cachingWindows共享上的大型软件包的本地副本。 这是怎么做的? 我无法使用基于驱动器号的path,基于UNC的path或file: URL。

厨师如何创buildWindows服务?

我有一个jar文件,我想在Windows上作为服务运行,但是我不相信创buildWindows服务在Chef中是受支持的: CHEF-3865 Chef用户如何向他们pipe理的Windows机器添加新的服务? 电源shell? 我的jar文件是Jenkins Swarm Plugin,我使用Chefdynamic创build新的swarm slave。

Windowsconfigurationpipe理

有没有像这样的* nix世界有窗户的工具? 我正在寻找像厨师或木偶这样的东西。 我已经find了cfEngine,但它仍然看起来非常以nix为中心。 理想情况下,它将是开源的,并由命令行驱动。 这个想法是把自动化的基础设施与基于Windows的服务器结合在一起。 我们目前的IT部门不允许非Windows服务器。

厨师:我如何检查服务是否安装?

在一个配方中,我想检查一下是否安装了一个服务,如果它没有通知安装它所需的3个资源。 我尝试了服务资源,该服务资源在安装时正确识别服务,但是如果服务未安装,则会引发exception。 我不确定在这里使用什么行动。 :没有任何东西只是跳过资源,以便执行,但是当其他任何操作尝试对不存在的服务执行操作时都会出错。 如何检测服务是否已安装并根据这些信息采取行动? 我在Windows上运行,如果这是相关的。

来自Mac OS X工作站的刀引导窗口winrm失败

从我的Mac OS X工作站运行命令行knife bootstrap windows winrm ec2box.amazonaws.com -r 'role[web]' -x Administrator -P 'mypassword'生成以下输出。 从Windows工作站运行它,命令成功运行。 有没有额外的步骤,我需要采取让我的Mac OS X工作站通过WinRM正确沟通? 我在亚马逊的Windows Server 2012 AMI上使用它。 它在我的terminal上打印#39 ,而不是堆栈溢出的人工制品。 WARNING: Could not load IOV methods. Check your GSSAPI C library for an update WARNING: Could not load AEAD methods. Check your GSSAPI C library for an update Bootstrapping Chef on ec2box.amazonaws.com […]