Chef knife创建无法创建API用户

时间:2014-09-30 22:18:58

标签: chef knife

这似乎是一件容易修复的事情,但我却无法为我创造一个新用户。我是管理仪表板的用户chef-server。我使用root用户创建了一个带有初始命令knife configure --initial的admin用户。现在,我正在尝试为名为" myuser"的本地用户创建一个api用户。例如。

所以,我这样做:

myuser@chefserver:~$ knife configure --initial
Overwrite /home/myuser/.chef/knife.rb? (Y/N)y
Please enter the chef server URL: [https://chefserver:443] 
Please enter a name for the new user: [myuser]
Please enter the existing admin name: [admin]
Please enter the location of the existing admin's private key: [/etc/chef-server/admin.pem] 
Please enter the validation clientname: [chef-validator] 
Please enter the location of the validation key: [/etc/chef-server/chef-validator.pem] 
Please enter the path to a chef repository (or leave blank): 
Creating initial API user...
Please enter a password for the new user: 
ERROR: The data in your request was invalid
Response: Field 'display_name' missing

为什么无法创建API用户?

2 个答案:

答案 0 :(得分:4)

knife configure目前无法与Chef Server 12一起使用。为Chef Server 12执行初始设置的最简单方法是使用高级WebUI功能。这对于最多25个节点是免费的,否则您应该与Chef Software查询价格。您可以使用命令行工具进行设置,但此时它没有记录,对大多数人来说并不是真的可行。

答案 1 :(得分:0)

以下评论假定您已在主服务器中为该组织创建了组织和用户。并且您将用户和组织.pem密钥复制到本地工作站,现在可以设置工作站了。

用户是管理员,组织是bwengineering,用户必须属于组织。主服务器的FQDN是master.dev

另请注意,您需要使用以下方法来接管主crt文件:

knife ssl fetch https://master.dev

确保cd进入chef-repo文件夹以完成所有这些操作。

在Chef 12中不要使用knife configure --initial。而是将参数作为标志传递。像这样:

knife configure -s https://master.dev/organizations/bwengineering/ -r ~/chef-repo --admin-client-key ~/chef-repo/.chef/admin.pem --admin-client-name admin -c ~/chef-repo/.chef/knife.rb --validation-client-name bwengineering-validator --validation-key ~/chef-repo/.chef/chef-validator.pem

在此之后将chefdk二进制文件导出到.bash_profile,然后引导您的节点。如何执行后者取决于您的节点配置。如果您可以以root身份登录,则直接使用它,否则使用--sudo标志。