标签: knife

Knife SSH 找不到我的节点

knife ssh没有找到我的节点。我知道它应该可以,因为当我可以搜索它们时,我会找到它们

# knife search node name:*
2 items found

Node Name:   web_01
...

Node Name:   admin
...
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时knife ssh(我会用“调试”标志显示它)我得到

# knife ssh "node:*" "uptime" -VV
DEBUG: Using configuration from /root/.chef/knife.rb
DEBUG: Signing the request as dev
DEBUG: Sending HTTP Request via GET to ec2-xx-xx-xx-xx.compute-1.amazonaws.com:4000/search/node
FATAL: No nodes returned from search!
Run Code Online (Sandbox Code Playgroud)

(是的,主持人是正确的,我只是为帖子审查了它)。

我试过修改 QUERY 参数并且总是得到相同的结果。我试过了:

  • 节点:*
  • 角色:*
  • *
  • *:*

有任何想法吗?

chef knife

13
推荐指数
1
解决办法
1万
查看次数

厨师引导程序给予 401 未经授权

我正在尝试通过运行来引导一个新的 Chef 节点:
knife bootstrap <server ip> -x lewis -N gitlab --sudo
但我得到以下输出:
[Mon, 03 Sep 2012 14:45:17 +0000] INFO: *** Chef 10.12.0 ***
[Mon, 03 Sep 2012 14:45:17 +0000] INFO: Client key /etc/chef/client.pem is not present - registering
[Mon, 03 Sep 2012 14:45:17 +0000] INFO: HTTP Request Returned 401 Unauthorized: Failed to authenticate. Ensure that your client key is valid.
[Mon, 03 Sep 2012 14:45:17 +0000] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[Mon, 03 Sep 2012 14:45:17 +0000] FATAL: Net::HTTPServerException: …

ubuntu centos chef knife

7
推荐指数
2
解决办法
1万
查看次数

最少的 Chef 配置和部署?

我已经两次阅读了关于 Chef 的文档。我仍然无法理解它的概念,因为他们跳过了基础知识并跳转到了带有 Chef-server 的复杂部署。

使用厨师独奏和可能的刀,是否有一种简单的方法来配置服务器和部署?

我可能错了,但看起来我的食谱已经准备好了,这应该简单。

knife rackspace server create --flavor 1 --image 112
Run Code Online (Sandbox Code Playgroud)

这提供了我的服务器。我可以选择传递 --run-list "recipe[mything]",但是我在 ~/my_cookbooks 中的食谱实际上是如何到达服务器的?我必须手动转移它们吗?这似乎适得其反。

chef chef-solo knife

6
推荐指数
2
解决办法
2591
查看次数

厨师:连接被拒绝上传食谱

温柔一点,我是厨师的新手,正在尝试设置我的环境并将一些新食谱上传到我的新厨师服务器。我能够执行一些命令,并且能够访问knife bootstrap新节点,因此我很确定我的配置是正确的。

当我打开详细日志记录时,它似乎正在尝试上传到本地主机。我在我的 中设置了一个服务器knife.rb,我还尝试在 Knife 命令中使用 指定一个服务器-s,但无济于事。

$ knife cookbook upload -a
Uploading base         [0.1.0]
Uploading dovecot      [0.1.0]
Uploading postfix      [0.1.0]
/opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:762:in `initialize': Connection refused - connect(2) (Errno::ECONNREFUSED)
Run Code Online (Sandbox Code Playgroud)

使用指定服务器:

$ knife cookbook upload -a -s https://mychefserver
Uploading base         [0.1.0]
Uploading dovecot      [0.1.0]
Uploading postfix      [0.1.0]
/opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:762:in `initialize': Connection refused - connect(2) (Errno::ECONNREFUSED)
Run Code Online (Sandbox Code Playgroud)

并使用 -V:

$ knife cookbook upload -a -s https://mychefserver -V
Uploading base         [0.1.0]
Uploading dovecot      [0.1.0]
Uploading postfix      [0.1.0]
INFO: Validating ruby …
Run Code Online (Sandbox Code Playgroud)

chef knife

6
推荐指数
1
解决办法
1万
查看次数

使用 Chef 服务器部署 AWS Auto Scaling 组

例如,您可以使用 AWS CloudFormation(带有 Chef 服务器)部署一个由 Web 服务器、ELB 和 DB 组成的 Auto Scaling 组:http : //aws.amazon.com/cloudformation/aws-cloudformation-templates/

但是,您最初需要创建一个 CF 模板,是否可以仅使用 Chef Server 和 Knife 来完成?我们不想过多依赖 CloudFormation,而且 ( http://www.opscode.com/ ) 上的托管 Chef 服务器似乎能够做到这一点。

任何开源替代品?

谢谢。

chef amazon-web-services knife

5
推荐指数
1
解决办法
3647
查看次数

使用 Knife 上传所有内容

假设您有一个标准的 Chef 存储库,其目录如下:

cookbooks
data_bags
environments
roles
Run Code Online (Sandbox Code Playgroud)

有没有办法一次性全部上传?否则你必须这样做:

knife cookbook upload -a
knife data bag from file data_bags/*.json
knife environment from file environments/*.rb
knife role from file roles/*.json
Run Code Online (Sandbox Code Playgroud)

也许有第三方工具可以做这种事情?

chef knife

5
推荐指数
2
解决办法
8279
查看次数

为什么“knife data bag from file”在厨师服务器上找不到现有的json文件?

概括:

我遇到了“文件中的刀数据包”问题,其中刀无法识别从远程 git 存储库中提取的 .json 数据包文件。

背景:

我目前正在尝试从厨师单独使用过渡到厨师服务器,同时使用来自我们远程 git 存储库的食谱、数据包和其他厨师信息。

我目前已经提取了我们的 git 存储库的副本,并在 Knife.rb 中设置了食谱路径和数据包路径。我还加载了食谱,进行了调整等。

细节:

当尝试通过执行“从文件文件夹文件添加刀具数据包”来加载我们的 .json 数据包时,它看起来一直有效,直到我执行“刀具数据包列表”并显示为空白。所以我决定尝试在最后添加编辑选项以查看正在加载的内容(如果有)。这是我得到的错误:

knife data bag from file local_settings test.json -e nano
ERROR: Could not find or open file 'test.json' in current directory or in 'data_bags/local_settings/test.json'
Run Code Online (Sandbox Code Playgroud)

数据包文件确实存在,在适当的位置,在一个经过测试的工作 json 文件中。我有时也收到一条错误消息,提示“无法打开数据包“local_settings”。

我显然希望将数据包路径保留在适当的 git repo 文件夹中,以便能够在更集中的位置(我们的 git repo,而不是厨师服务器)跟踪更改。

任何正确方向的解决方案、建议或指示都值得赞赏。

automation provisioning chef knife

5
推荐指数
1
解决办法
9561
查看次数

Chef - 没有密码的 SSH

执行时:

knife bootstrap {{IP}} --ssh-user centos --ssh-password '' \
--sudo --use-sudo-password --node-name node1 \
--run-list 'recipe[learn_chef_httpd]'
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ERROR: Net::SSH::AuthenticationFailed: Authentication failed for user centos@{{IP}}@{{IP}}
Run Code Online (Sandbox Code Playgroud)

我正在尝试连接到没有密码的 centos 用户,因为我想使用 SSH-Key Auth。

我试过传递一些排列:

knife bootstrap {{IP}} -x centos -i .chef/james-chef-validator.pem  --sudo  --run-list 'recipe[learn_chef_httpd]'
Run Code Online (Sandbox Code Playgroud)

都没有成功...

如果使用 -VV 运行:

...

DEBUG: allowed methods: publickey,gssapi-keyex,gssapi-with-mic
DEBUG: none failed
DEBUG: trying publickey
DEBUG: connecting to ssh-agent
ERROR: could not connect to ssh-agent
ERROR: all authorization methods failed (tried none, publickey)
ERROR: Net::SSH::AuthenticationFailed: Authentication failed for user  centos@{{IP}}@{{IP}} …
Run Code Online (Sandbox Code Playgroud)

chef knife

5
推荐指数
1
解决办法
1万
查看次数

如何配置 Knife 和 EC2 以从命令行创建新实例?

我正在使用 Amazon EC2 创建实例。我在这里阅读:在 EC2 的刀文档中,我需要设置:

# EC2:
knife[:aws_access_key_id]     = "Your AWS Access Key"
knife[:aws_secret_access_key] = "Your AWS Secret Access Key"
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试从我的 Knife.rb 中的 AWS 控制台设置安全凭证时,我得到一个

ERROR: You did not provide a valid 'AWS SSH Key Id' value.
Run Code Online (Sandbox Code Playgroud)

而且,当我创建一个新的“密钥对”时,我得到了一些 .pem 文件,这也让我感到困惑。

如何设置我的刀和 EC2 以创建新节点?

chef amazon-ec2 amazon-web-services knife

4
推荐指数
2
解决办法
1万
查看次数

如何用刀创建 EC2 实例?

我能够通过以下方式使用刀访问 AWS:http : //www.agileweboperations.com/amazon-ec2-instances-with-opscode-chef-using-knife

现在,我得到了一个几乎可以工作的刀命令:

$ knife ec2 server create -r "role[base]" -I ami-c1aaabb5  -f t1.micro -S knife -i ~/.ssh/knife.pem --ssh-user ubuntu --region eu-west-1 -Z eu-west-1a
Run Code Online (Sandbox Code Playgroud)
实例 ID:i-xxxxxx
口味:m1.small
图片:ami-399ca94d
地区:eu-west-1
可用区:eu-west-1a
安全组:默认
标签:{"姓名"=>"i-xxxxxx"}
SSH 密钥:刀

等待服务器......................
公共 DNS 名称:ec2-xxxxxx.eu-west-1.compute.amazonaws.com
公网IP地址:yy.yy.yy.yy
私有 DNS 名称:ip-xxxxxxx.eu-west-1.compute.internal
私有IP地址:zz.zz.zz.zz

等待 sshd ......................................

但是现在我超时了。有什么想法/建议如何创建准备好进行 Chef 配置的 EC2 实例?

谢谢!

chef amazon-ec2 amazon-web-services knife

4
推荐指数
1
解决办法
1664
查看次数