Articles of 厨师

与厨师服务器创build食谱和angular色

我想运行: knife role create blah 我使用厨师独奏,不需要刀连接到服务器。 我只是想运行这些命令来帮助我快速预填充文件。 每次运行这些命令,它都会尝试连接到服务器。 这不会发生 knife cookbook create blah 双重效果。 更新: 我注意到数据库和环境也是如此。 我已经在其他地方读过,刀主要是用于厨师服务器API,但似乎不可能做到这一点。 它只需要保存darn文件。

如何在许多Linux服务器上编辑/ etc / shadow?

我想在大约20台Linux服务器上更改root密码。 主要是CentOS和Ubuntu。 所以我看了木偶,厨师和cfengine,但我真的不知道他们是否可以这样做,或者他们是否会为了这个任务而杀人? 有没有人有build议如何编辑许多Linux服务器上的configuration文件, /etc/shadow等等?

在Amazon EC2上托pipeRails的build议?

有很多解决scheme可以轻松在Amazon EC2上托pipeRails,如下所示 泳池派对 橡胶 亚马逊云形成 Opscode厨师 滚动你自己的 (我敢肯定其他人不知道),我很乐意提供一些指导。 这将是一个小的设置与一个MySQL数据库和两个应用服务器,然后希望从那里增长。 我想要做的最后一件事是重新发明轮子并滚动我自己的设置,所以像Poolparty和Rubber这样的解决scheme是吸引人的,但我从来没有使用过它们。 我知道也有Heroku和EngineYard,过去我都用过,但是他们只是在后台使用Amazon EC2,所以我宁愿直接使用Amazon EC2的解决scheme。 任何build议在哪个路线将是伟大的!

综合安装厨师和rvm问题

我试图弄清楚一件事情,并希望别人看到这一点。 我通过真棒综合安装在我的Ubuntu服务器(11.10)上安装了厨师。 它工作得很好。 我能够运行厨师客户端,它运行没有任何问题。 然后我安装了RVM和两个ruby – 那就是当我的问题开始时。 直接安装RVM系统后,即运行: curl -L https://get.rvm.io | sudo bash -s stable 并安装了2个ruby(设置其中一个ruby作为默认的ruby在系统上),我不能再运行厨师客户端 – 当正常的普通用户运行时,我得到了“命令未find” – 我想RVM弄乱了一些PATH所以这是原因。 我以为我会以root身份运行它,即: sudo su – chef-client 同样的结果。 然后我尝试了rvmsudo,因为它被一些人build议,但是这也没有帮助。 然后,我给了它最后一枪 – 我跑了 sudo chef-client 这工作得很好! 我真的很困惑,为什么是上面的工作,为什么运行chef -client作为根(即sudo su – ;厨师客户端)不工作。 我错过了什么吗? 我真的很感激所有的提示或解释,因为我有点失落。 我想运行chef-client作为一个守护进程作为根,我不能这样做与上面的sudo命令 – 我知道我可以设置一个用户与nopasswd,它可能会工作,但我真的很想了解什么是去这里;)

刀上传数据包与Chef :: ChefFS :: FileSystem :: OperationNotAllowedError失败

我目前正在做learn.chef.io提供的厨师教程。 在第四次研讨会上,其中一个步骤是创build一些数据包,然后使用以下方式上传: knife upload data-bags/vhosts 实际的数据包对象位于vhosts目录中的.json文件中。 当我执行该命令时,我得到的错误是: ERROR: Chef::ChefFS::FileSystem::OperationNotAllowedError: Chef::ChefFS::FileSystem::OperationNotAllowedError 这不是文件或文件系统的所有权问题,我以root身份运行,以防万一,并得到相同的错误。 干杯

重新引导主厨节点

我有一个厨师节点,引导 knife bootstrap my.example.com –ssh-user USER –ssh-password 'PASSWORD' –sudo –use-sudo-password –node-name my.example.com 如果我然后格式化节点,我怎么能让厨师再次运行? 我不想做knife client delete my.example.com因为这将删除knife node edit my.example.com所有数据knife node edit my.example.com

etcd集群设置与主厨确定初始集群状态

我正在写厨师脚本来设置一个etcd集群。 节点列表(包括它们的IP)将在chef脚本中硬编码(作为一个属性),并使用静态引导将它们传递给etcd –initial-cluster和–initial-cluster-state新参数。 因此,厨师脚​​本使用这些参数调用etcd,他们将设置集群,并在将来的运行(例如重启)忽略这些 – 初始集群参数。 首次设置,这个效果很好。 现在假设我想稍后向etcd集群添加一个新节点。 我首先添加另一个节点到厨师属性的硬编码列表中,并引导新节点。 当脚本调用etcd时,– initial-cluster参数也将包含附加节点,但是etcd要求使用–initial-cluster-state而不是–initial-cluster-state new来调用。 所以我需要一个单独的厨师脚本来添加新节点,而不是启动前几个节点。 这对我来说似乎不是一个好的解决办法。 一个解决scheme的第一个想法是在厨师脚本中区分大小写。 我们保留初始节点的IP的单独的硬编码列表。 如果自举节点属于初始集,则会使用–initial-cluster-state new ,否则将使用–initial-cluster-state 。 但是,当初始节点中的一个死亡时,这不起作用。 当删除并重新引导它时,它将获得与以前相同的IP(将其限定为初始节点),并尝试使用–initial-cluster-state new连接到群集。 如果etcd中有某种自动识别会自动select–initial-cluster-state参数,那就太好了。 但据我所知,etcd不提供这个。 推荐使用大厨设置etcd群集的方法是什么?

如何在bootstrap上指定chef-client设置?

我试图通过刀引导节点。 执行: knife bootstrap user@server-1 -P XXX –sudo -N java-server-1 我在节点端的client.rb中find了一堆属性 ,我想在bootstrap中指定它。 是否有可能从工作站的刀Bootstrap做到这一点? 看起来这种操作没有提供。 另外,find了一个有用的食谱: 厨师客户端

为什么在执行'run_list add','run_list remove'和'rackspace server delete'时会出现'undefined method'exception?

[最初发布到opscode论坛,没有回应] 我正在testing一个免费的主办服务器帐户和多个子命令与“意外的错误”失败。 也许我的版本和服务器版本不兼容? 操作系统:Ubuntu 12.04LTS 本地厨师:10.12.0(通过gem安装) 本地Ruby:1.8.7 此外,工作站机器已经被手动configuration,但是我一直在尝试的客户机是使用Rackspace插件启动的(使用“刀架空间服务器创build…”)。当与主厨聊天时,问题命令似乎失败服务器,但是,在它曾经试图修改客户端之前,所以我不相信这是问题的存在。 '刀架空间服务器创build'启动的虚拟服务器正常启动,但用刀删除失败。 如果我在创build服务器时在run_list中包含配方,则会将配方正确添加到run_list。 如果我稍后尝试添加它或删除那里的服务器初始化,那些命令失败。 下面是一些相关命令的输出(带有堆栈跟踪): https://gist.github.com/7100ada3fd6690113697

如何在公共VPC中引导刀片来引导EC2实例?

我不太了解路由和子网和vpc,我从来没有用过我的旧AWS账户。 在我的新AWS账户中,我启动了一个新的Amazon Linux AMI实例(ami-043a5034)。 它连接到的安全组包括允许端口22.VPC设置都是默认的,我认为这意味着它应该像没有VPC的“传统”风格的EC2configuration一样工作。 我正在使用刀-EC2gem版本0.8.0。 我的刀子创build命令是这样的(区域和其他设置由knife.rb指定) knife ec2 server create -r 'role[webserver]' -I 'ami-043a5034' -E development -G 'web-security-group' -N 'webserver1' 我也试过了 knife ec2 server create -r 'role[webserver]' -I 'ami-043a5034' -E development -g 'sg-abcdef12' -N 'webserver1' –associate-public-ip –subnet subnet-abcdef12 –server-connect-attribute public_ip_address 无论有没有服务器连接属性参数 一旦它创build了实例,它就停留在“等待sshd”(没有句点)。 我能够从terminalSSH和新的实例,以及亚马逊提供的Java工具,所以我知道它是公开的,但我不知道如何让刀/厨师正确连接完成引导新的实例。 我从哪说起呢? 我是否需要一个弹性IP,还是可以使用任何公共IP分配?