我们将在AWS / EC2 VPC上部署我们的应用程序基础架构(主要是Windows和一些Linux组件)。 我们将使用厨师来处理供应和pipe理。 但是,与Linux机器不同的是,Windows机器没有内置的SSH,并且被迫使用其他的身份validation方法来获得pipe理员权限。 自动授予我们的Chef服务器访问Windows的最佳方式是什么? 我发现的一些方法: 在实例的用户数据脚本中包含默认密码 这似乎不安全,然后再次,这些计算机在VPC的私有子网内 设置一个域控制器服务器来pipe理所有的计算机 研究应该认为,pipe理EC2上的Windows域可能会令人头疼,因为可能会随机丢失EC2机器。 这对于pipe理将经常添加/移除的机器的凭证来说似乎也是不必要的开销。
我正在使用chef file资源删除Windows机器中%systemroot%\system32path中的文件。 资源块如下, file 'Delete_File' do path 'C:\\Windows\\System32\\my.dll' action :delete end 我已经确保在调用file资源块之前停止使用此dll Windows服务。 但是在chef-client运行结束时,文件仍然没有被删除。 所以,我假设一些访问权限设置完成这个工作。 任何指针都会有帮助。
我已经在Ubuntu Server 14.04上安装了Chef服务器。 下载Chef包(chef_11.12.8-2_amd64.deb)后,我跑了sudo dpkg -i chef_11.12.8-2_amd64.deb 。 The package seems to have installed properly. The output was: (Reading database … 62460 files and directories currently installed.) Preparing to unpack chef_11.12.8-2_amd64.deb … Unpacking chef (11.12.8-2) over (11.12.8-2) … Setting up chef (11.12.8-2) … Thank you for installing Chef! 当我进入下一步是sudo chef-server-ctl reconfigure ,告诉我chef-server-ctl找不到。 我认为没有什么我应该做的,使chef-server-ctl实用程序可用。 不要担心回答太明显。 我是一个Windows开发人员,而不是一个Linux系统pipe理员,所以可能有一些非常简单,我错过了
我正尝试在Ubuntu 12.04.5 64位上安装厨师(chef-server_11.0.4-1.ubuntu.12.04)。 安装后,当我运行“chef-server-ctl reconfigure”得到下面的错误。 让我知道如何安装它。 [2014-12-20T14:16:10+05:30] ERROR: Running exception handlers [2014-12-20T14:16:10+05:30] ERROR: Exception handlers complete Chef Client failed. 2 resources updated [2014-12-20T14:16:10+05:30] FATAL: Stacktrace dumped to /opt/chef-server/embedded/cookbooks/cache/chef-stacktrace.out [2014-12-20T14:16:10+05:30] FATAL: Mixlib::ShellOut::ShellCommandFailed: execute[/opt/chef-server/embedded/bin/chpst -u chef_server -U chef_server /opt/chef-server/embedded/bin/rabbitmqctl wait /var/opt/chef-server/rabbitmq/db/[email protected]] (chef-server::rabbitmq line 80) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '2' […]
你将如何configuration虚拟机,以便它会自动注册厨师服务器? 我知道我可以使用刀引导,但是如果你一次启动几十个服务器,那么这是非常乏味的。 厨师文档说使用chef-client -j /etc/chef/file.json并将其与您的client.rb和validation.pem文件一起烘焙到映像中。 然而,这仍然需要ssh进入机器运行chef-client命令。 有没有更自动化的方式来做到这一点? 其他人如何一次提供数千台机器? 更新 我联系了Chef支持,他们说你可以通过以下方式启动厨师。 将/usr/bin/chef-client到/etc/rc.local文件,并确保在/ etc / chef中有一个client.rb和validatation.pem文件 使用厨师客户食谱来pipe理厨师和控制初始化脚本。 他们还说,厨师客户端不是作为守护进程运行的。 相反,只有在需要进行收敛时才能运行。 (这似乎与文档相矛盾。) 这些解决scheme虽然引入了新问题 1.如果您将其添加到rc.local文件中,您将有重复的厨师客户端进程运行2.您需要运行厨师以pipe理厨师食谱的厨师。 那么您如何清理并注销节点,以便拍摄快照?
我正在使用Packer和厨师独奏提供程序构buildVirtualBox机器。 有没有办法从虚拟机内部重新运行厨师,因为食谱更新,而无需重新运行packer build ?
我使用厨师刀来创buildEC2服务器(从而创build新节点)。 我可以正确地从一个给定的单个angular色开始,但是我无法获得命令行参数对于节点的run_list中的多个angular色。 如何在命令行中为新创build的节点指定多个angular色(不在编辑器中编辑节点JSON,如此处所示)?
厨师/傀儡是pipe理各个主机configuration的好工具,但是当主机之间存在依赖关系时,它们似乎略有下降。 例如,我想有一个Web服务器configuration,试图启动一个应用程序,但只有当数据库已经启动(在另一台主机上)。 是否有一些类似的工具,允许指定跨越主机的configuration,还是有一些额外的厨师或傀儡,使这成为可能?
我一直在网上查找人们在使用厨师/ capistrano调整网站时使用的做法,并且没有在这方面find太多的程序信息,所以我想在这里问。 我们在服务器上以有限的方式使用厨师,我们正在使用capistrano进行部署。 由于各种原因,我们不会使用厨师部署资源来部署我们的应用程序。 我们将使用厨师引导应用程序服务器来扩展我们的网站。 从我可以收集什么我会做的是引导与应用程序服务器angular色的节点,然后运行,帽部署。 这将与一些自定义脚本与ruby和雾gem。 cap HOSTFILTER:ip.add.ress.here production deploy 我的问题是: 其他人在扩展网站和部署时使用的一些常见方法是使用厨师进行部署 主机filter是完成这个最好的方法吗? 我应该重新部署到所有节点时,缩放而不是单一的节点? 任何其他gotchas /等赞赏。
我正尝试使用Chef Solo和下面的食谱来安装Maven 3: http://community.opscode.com/cookbooks/maven Cookbook默认安装了Maven 2,第一次运行它时,它按照预期安装了Maven 2。 后来我修改了我的solo.json文件,如下所示: { "maven": { "version": "3" }, "run_list": [ "recipe[java]", "recipe[maven]" ] } 但厨师没有更新到版本3的Maven。我不知道这是否是因为我错误地指定覆盖属性,或者如果有一些其他问题。 我用这个作为参考: http://wiki.opscode.com/display/chef/Chef+Solo#ChefSolo-JSON%2CAttributesandRecipes 谢谢。