问题标签 [knife]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1818 浏览

encryption - 引导节点时出现 Chef Cookbook 编译错误

我正在使用厨师来引导一个节点。我创建了加密数据包并将节点上的密钥复制为 /etc/chef/encrypted_data_bag_secret。

当我尝试引导节点时,出现以下错误:

这是堆栈跟踪:

任何帮助或指示?

0 投票
2 回答
1197 浏览

ssl - 尝试使用刀创建 EC2 服务器时出现 SSLError

我正在尝试使用刀创建和配置一个新的 EC2 实例,但一直遇到 SSL 错误:

我正在使用 ruby​​ 2.0.0p0 从 mac (10.7) 运行它:

我相当确定我正确编译了带有 openssl 支持的 ruby​​。require 'openssl'从 irb运行返回 true。我正在使用通过自制软件安装的 OpenSSL 1.0.1e。

我也试过用 ruby​​ 1.9.3-p194 跑刀。这具有相同的结果,但有用的错误消息略少:“错误:Excon::Errors::SocketError: hostname does not match the server certificate (OpenSSL::SSL::SSLError)”。这种差异是此拉取请求的结果,它改进了错误消息:https ://github.com/ruby/ruby/pull/122 。

curl 的以下输出可能是相关的:

为了用刀成功创建 EC2 实例,我还需要配置其他东西吗?

0 投票
1 回答
86 浏览

amazon-ec2 - 刀 ec2 创建服务器日志记录

我正在使用带有运行列表的刀 ec2 创建服务器来创建服务器并引导它以供初始使用。

在我的引导过程中,我使用这里的文档运行了一个 bash 命令。此基本脚本中有回声以报告状态,这对于跟踪进度非常有用。

我看到输出的唯一时间是出现故障时。

有没有办法打开输出和/或将输出写入文件?

0 投票
1 回答
4223 浏览

attributes - 如何通过厨师食谱通过刀加载 JSON 属性?

我有一个 web 服务器,它基本上接受 knife ec2 create server 命令的输入。

在我的刀命令中,我传入

从文档中,我认为我可以在正在加载的食谱中执行此操作:

但是,git 克隆失败了,因为@@branch没有返回。或者至少厨师日志说开始输出结果:

如何加载我传递的 JSON 属性?正确的方法是什么?

编辑:

我手动输入了刀命令,并且 JSON 属性似乎使用 Ruby 哈希而不是 JSON 加载

JSON Attributes: {"branch"=>"Air"}

最后编辑:

我的命令:

sudo knife ec2 server create -x ubuntu -i ~/.ssh/key.pem -I ami-0eca6e67 -d ubuntu-12.04 -j '{ "branch" : "clone" }' -Z us-east-1a -s subnet-6827ec00 -f c1.medium -g sg-bc9d86d0 -r 'role[role]'

下面回答。

0 投票
3 回答
12625 浏览

ruby - 厨师 - 使用动态变量创建模板?

我在厨师食谱上遇到了一些挑战。我是新来的厨师,所以请多多包涵。

第 1 步:我的主厨食谱安装了 Ruby Passenger,然后将 Passenger nginx 模块与 Nginx 一起编译。

第 2 步:之后,我使用模板创建 nginx 配置文件。此配置需要乘客的位置,这取决于步骤 1 的完成情况。

问题:Chef 似乎在运行开始时编译模板。所以最终发生的是,步骤 2 实际上是在步骤 1 运行之前编译的。这意味着passenger_root 变量为空。它需要先完成第 1 步,然后才能获取passenger_root,然后运行模板。

我尝试将步骤 2 代码包装在 a 中,ruby_block但这不起作用:undefined methodChef::Resource::RubyBlock` 的模板'。

不知道在这里做什么,或者对于这样的事情,厨师的最佳做法是什么?

提前致谢,

伦纳德

0 投票
1 回答
1822 浏览

debian - 厨师服务器>异常:NoMethodError:未定义的方法“保存”#运行“刀配置-i”时

不确定这个问题是否已得到解决,或者我是否做错了什么。查看当前票证,并没有看到同样的错误。

我正在遵循 Opscode wiki 提供的“在 Debian 或 Ubuntu 上使用软件包安装 Chef 服务器”的安装指南:http: //wiki.opscode.com/display/chef/Installing+Chef+Server+on+Debian+或+Ubuntu+使用+包

安装似乎很顺利,直到我到达“配置命令行客户端”部分。我从我的用户主目录运行'knife configure -i'并输入以下内容:

...我收到以下错误:

运行 'knife configure -i' 时,-VV 选项似乎不适用于 -i 选项

当我使用 -VV 命令运行教程中的下一个命令时,我收到:

我猜这是来自拒绝运行的“knife config -i”。我在这里做错了什么?我错过了什么?

0 投票
1 回答
1862 浏览

chef-infra - Vagrant and Knife Solo(或任何其他非 Vagrant Chef Env)的最佳常见工作流程?

离开 Chef 一段时间后,我目前正在回到它来满足我所有的服务器需求。几年前我已经使用了一段时间并且很喜欢它,但最近让其他人做了操作部分。

但是我仍然在努力寻找一个非常好的开始设置(本地 Vagrant+Chef)来进行开发。单独使用 Vagrant 是一件轻而易举的事,超级容易使用,并且在其上开发服务器设置相当快。但是一旦我不得不离开 Vagrant 进行实际部署,它就会再次变得烦人。我不能总是使用 Vagrant 盒子,但有时在某个地方使用 Rackspace 甚至是实际的硬件盒子。

现在我这样做如下:

针对 Vagrant 进行开发,尽量减少 Vagrantfile 中的实际配置

  • 主要使用角色,并为我的常用环境预定义默认属性
  • 仅在 Vagrantfile 中指定节点特定属性
  • 在步骤之间直接从 VirtualBox 手动快照运行 vagrant 配置,以避免一直从头开始重新构建

暂存并实际部署服务器:

将 Rackspace Cloud(至少暂存)与 Knife Solo 一起使用

  • 从 Web 界面创建 Rackspace 服务器以通过(roo@ip 和密码)为所有服务器提供一致的第一个配置步骤
  • 将公钥身份验证添加到服务器,因此不再需要密码
  • 为新服务器添加本地节点配置,复制 Vagrantfile 中定义的内容
  • 使用刀单独准备+引导服务器

这已经不是那么糟糕了,但仍然有一些有时很烦人的小故障:

  • 来自 VirtualBox 的 Vagrant 手动快照(我还没有找到任何可用的插件)
  • 节点配置和 Vagrantfile 之间的冗余(可能让 Vagrantfile 解析节点配置并以这种方式使用值)
  • Vagrant 和 Knife Solo 之间的引导不一致(如果我弄清楚如何将它添加到 Vagrant (*1),可能会为两者使用一个通用脚本)

除此之外,我不得不遗憾地发现,厨师的食谱已经广泛地成长为一个由不相容和固执己见的人工制品组成的丛林。有时甚至很难使用默认配方进行基本设置。我有点惊讶,很多基础知识都几乎没有涵盖:

让 sshd+iptables 的组合工作我花了一天的时间研究,然后仍然修改默认模板以使其工作 - 虽然我希望它成为几乎所有服务器的起点。此外,似乎没有任何默认的厨师用户工作流程。到目前为止,我发现的所有内容要么以 root 身份运行,要么需要进行相当多的修改。最后但并非最不重要的一点是,厨师(在 ubuntu 12.04 上)仍然使用 ruby​​ 1.8.7,它在短短几个月内就即将结束。

可能是我只是没有找到合适的资源来涵盖我目前仍在努力或满意的所有要点,但似乎仍有很多方法可以改进它。

那么 vagrant + chef 如何在真实环境中(不仅仅是本地虚拟盒子)为您工作,还有哪些需要注意的陷阱?

似乎在本地通过 vagrant 进行所有自动引导变得非常棒,但是一旦超出范围,事情就会变得非常混乱。如果人们也使用类似这样的设置可以给我一些关于如何解决上述问题的指示,我会很高兴。我不介意付出一些努力来让它像我期望的那样运行,但也许我已经走错了部分,只是让自己更加困难,实际上需要这样做;)

现在简短的总结是:Vagrand+ChefSolo (KnifeSolo) 非常棒,但要正常工作,整个引导部分需要我们在应用食谱之前切换为自定义部分以获得适当的系统基础 - 这些需要小心从丛林中挑选出来。

进展/更新说明

(*1): 刚刚想通了,纯粹靠运气,很明显可以在一个 Vagrantfile 中添加多个供应机制:

由于首先执行 shell,我可以将它用作 Vagrant 服务器的自定义准备,同时仍然使用 Chef-Solo 进行实际设置。耶。最后仍然必须看看这会有多有用,但现在有一个缺失的步骤可以使流程保持一致。

0 投票
4 回答
2918 浏览

ruby - 启动刀配置命令时出错

我尝试开始使用 chef,所以我在笔记本电脑(操作系统:OSX 10.8)上使用 ruby​​ 2.0.0-p0 安装了 chef gem,但是当我尝试“knife configure”时,我得到了这个消息:

0 投票
1 回答
7866 浏览

ssh - 刀 SSH 属性不起作用

knife ssh我被命令弄糊涂了。根据文档,-a如果您的节点没有设置 FQDN 或 ipaddress 属性,则可以传递标志。此外,如果您想覆盖这些属性。我正在运行它以knife ssh在本地 VM 上进行测试:

我收到的错误:

致命:找到 1 个节点,但没有建立连接所需的属性。尝试使用 --attribute 设置另一个属性以打开连接。

我正在运行Chef 11.4.0

0 投票
2 回答
758 浏览

debugging - 使用 Chef,我如何输出它使用的 Knife.rb 设置?

我正在使用厨师刀并得到

查看项目的knife.rb,看起来食谱路径是正确的。我如何输出刀命令认为食谱路径是什么以及它认为从哪里获得该值?