我使用knife-vsphere插件为厨师与我们的vSphere主机进行交互。
作为刀-vsphere插件的configuration的一部分,似乎你必须input一个明文密码,我认为这似乎是错误的。
当我在我的食谱中设置用户时,我以前通过openssl passwd -1 "plainTextPassword"
运行密码来获取哈希值,我设置为我创build用户,我不知道如果发生这种情况如果它在节点上,或者如果它在刀上。
有谁知道,如果你可以使用相同的哈希方法(或其他)本地存储我的密码让我login到vSphere或我必须把它作为纯文本?
我目前的刀rb文件如下所示:
log_level :info log_location STDOUT node_name 'a-user' client_key 'C:/Users/user/.chef/a-user.pem' validation_client_name 'chef-validator' validation_key 'C:/Users/user/.chef/chef-validator.pem' chef_server_url 'https://ourChefHost01:443' syntax_check_cache_path 'C:/Users/user/.chef/syntax_check_cache' cookbook_path [ 'C:/Work/chef/chef-repo/cookbooks' ] ssl_verify_mode :verify_peer knife[:vsphere_host]="VHost" knife[:vsphere_user]="User" knife[:vsphere_pass]="IWantThisToBeAHashIfPossiblePlease_ThanksInAdvance!" knife[:vsphere_dc]="Region_1" knife[:vsphere_insecure]=false
您无法散列密码以便稍后使用该散列进行login,因为您无法检索原始值( 哈希是单向函数)。 你正在寻找的东西是encryption 。
由于knife.rb
只是一个ruby文件,你也可以从一个环境variables中读取密码(在开始terminal会话之后你必须设置一次):
knife[:vsphere_user]="User" knife[:vsphere_pass]=ENV['VSPHERE_PASS']
这将读取您应该设置的VSPHERE_PASS
variables
export VSPHERE_PASS=mypassword
据我所知,使用厨师,没有其他的方式来存储在您的机器上encryption(我的意思是厨师仍然必须能够解密)。