我不太了解路由和子网和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分配?
我在虚拟机上创build了一个厨师服务器(192.168.0.21)。 服务器在https上运行良好(这是opscode站点的最后一个版本)。 knife user list (和其他列表命令)运行良好,返回正确的结果(所有的用户/节点/客户端,新用户显示就好了)。 当我试图上传一个食谱到服务器,我得到这个错误: networking错误:getaddrinfo:名称或服务未知检查您的刀具configuration和networking设置 或者这个更长的错误: 错误:networking错误:getaddrinfo:名称或服务未知检查您的刀具configuration和networking设置/opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763: initialize': getaddrinfo: Name or service not known (SocketError) from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763:in打开'从/opt/chef/embedded/lib/ruby/1.9.1/net /http.rb:763:in block in connect' from /opt/chef/embedded/lib/ruby/1.9.1/timeout.rb:69:in timeout from /opt/chef/embedded/lib/ruby/1.9 .1 / timeout.rb:100:在/ opt / chef / embedded / lib / ruby中timeout' from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763:in连接timeout' from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763:in /1.9.1/net/http.rb:756 do_start' from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:745:in开始/从/ opt / chef /embeddeddo_start' from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:745:in […]
我刚刚设立了一个新的厨师环境,因为我正在扩大我对厨师的知识。 我有一个在EC2上设置的密钥对,我有我的刀子configuration设置。 当我尝试产生一个服务器,节点被创build,但刀不能ssh进入它。 这是我的knife.rb (这是回购之外): current_dir = File.dirname(__FILE__) log_level :info log_location STDOUT node_name "mynode" client_key "/Users/me/.chef/my.pem" validation_client_name "my-validator" validation_key "/Users/me/.chef/my-validator.pem" chef_server_url "https://api.opscode.com/organizations/myorg" cache_type 'BasicFile' cache_options( :path => "/Users/me/.chef/checksums" ) cookbook_path ["/Users/me/git/chef/cookbooks"] knife[:aws_access_key_id] = "yadayadyada" knife[:aws_secret_access_key] = "blahblahblah" knife[:identity_file] = "/Users/me/.ssh/knife.pem" knife[:aws_ssh_key_id] = "knife" 这是我的刀子命令: knife ec2 server create -r "role[whatever]" -I ami-09470539 –subnet subnet-03e44866 -f […]
执行时: knife bootstrap {{IP}} –ssh-user centos –ssh-password '' \ –sudo –use-sudo-password –node-name node1 \ –run-list 'recipe[learn_chef_httpd]' 我收到以下错误: ERROR: Net::SSH::AuthenticationFailed: Authentication failed for user centos@{{IP}}@{{IP}} 我试图连接到没有密码的centos用户,因为我想使用SSH-Key Auth。 我曾尝试通过一些排列组合: knife bootstrap {{IP}} -x centos -i .chef/james-chef-validator.pem –sudo –run-list 'recipe[learn_chef_httpd]' 一切都没有成功… 如果运行-VV: … DEBUG: allowed methods: publickey,gssapi-keyex,gssapi-with-mic DEBUG: none failed DEBUG: trying publickey DEBUG: connecting to ssh-agent ERROR: […]
我能够通过以下方式访问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 实例ID:i-xxxxxx 味道:m1.small 图片:ami-399ca94d 地区:欧洲西部1 可用区域:eu-west-1a 安全组:默认 标签:{“Name”=>“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 …………………………….. 但现在我得到一个超时。 任何想法/build议如何创build一个EC2实例准备厨师供应? 谢谢!
我正在玩Amazon EC2创build实例。 我正在读这里: 在这里EC2的刀具文件 ,我需要设置: # EC2: knife[:aws_access_key_id] = "Your AWS Access Key" knife[:aws_secret_access_key] = "Your AWS Secret Access Key" 现在,当我尝试从我的knife.rb中的AWS控制台设置安全证书时,我得到了一个 ERROR: You did not provide a valid 'AWS SSH Key Id' value. 而且,当我创build一个新的“密钥对”时,我会得到一些.pem文件,这也使我感到困惑。 我如何设置我的刀和EC2创build一个新的节点?
概要: 我遇到了一个问题:“刀子数据包来自文件”,刀不能识别从远程git仓库中取出的.json数据包文件。 背景: 我目前正尝试从厨师独奏使用过渡到厨师服务器,同时使用远程git仓库中的食谱,数据包和其他厨师信息。 我目前已经拉下了我们的git repo的副本,并在knife.rb中设置了cookbookpath和数据包path。 我也装了食谱,做了调整等等 细节: 当试图加载我们的.json数据包时,通过执行“从FOLDER FILE文件添加刀子数据包”,它看起来像它的工作,直到我做“刀数据包列表”,它出现空白。 所以我决定尝试在最后添加编辑选项来查看正在加载的内容,如果是的话。 这是我得到的错误: 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' 数据包文件确实存在于正确的位置,在一个经过testing的工作json文件中。 我有时也得到一个错误,说“无法打开数据包”local_settings“。 我显然希望将数据包path保存在适当的git repo文件夹中,以便能够跟踪更集中的位置(我们的git repo,而不是厨师服务器)中的更改。 任何解决scheme,build议或指针在正确的方向表示赞赏。
例如,您可以使用AWS CloudFormation(与Chef服务器)部署由Web服务器,ELB和数据库组成的Auto Scaling组: http : //aws.amazon.com/cloudformation/aws-cloudformation-templates/ 但是,您最初需要创build一个CF模板,是否可以只使用Chef Server和Knife? 我们不希望太依赖CloudFormation,似乎( http://www.opscode.com/ )上的主办Chef服务器能够这样做。 任何开源的替代? 谢谢。
假设你有一个标准的Chef仓库,目录如下: cookbooks data_bags environments roles 有办法一次上传吗? 否则,你必须这样做: knife cookbook upload -a knife data bag from file data_bags/*.json knife environment from file environments/*.rb knife role from file roles/*.json 也许有第三方工具来做这种事情?
我已经阅读了厨师的文档两次。 我仍然无法围绕它的概念,因为他们跳过基础知识,并跳转到与厨师服务器复杂的部署。 使用厨师独奏和可能刀,是否有一个简单的方法来configuration服务器和部署? 我可能是错的,但似乎与我的食谱准备,这应该是非常简单的。 knife rackspace server create –flavor 1 –image 112 这提供了我的服务器。 我可以select传递–run-list“recipe [mything]”,但是我的烹饪书在〜/ my_cookbooks中如何实际上在服务器上? 我必须手动转移它们吗? 这似乎适得其反。