Dav*_*ler 4 postgresql chef-infra vagrant
我是厨师的新手,我正在尝试解释文档.我已将opscode postgresql配方添加到我的chef-solo环境中.postgresql似乎安装和启动就好了,但不幸的是我无法登录到服务器,使其几乎无法使用.
文档提到了这一点:
使用chef-client时,以下节点属性存储在Chef服务器上.因为chef-solo根本没有连接到服务器或保存节点对象,所以要在chef-solo运行中保持密码,必须在使用的json_attribs文件中指定它们.例如:
{
"postgresql": {
"password": {
"postgres": "iloverandompasswordsbutthiswilldo"
}
},
"run_list": ["recipe[postgresql::server]"]
}
Run Code Online (Sandbox Code Playgroud)
但是,我不知道"json_attribs"文件是什么.配方本身不包含这样的文件,我尝试使用谷歌搜索,没有结果.我也尝试创建这样一个文件并将其粘贴在我的目录结构中的随机位置,但当然这不起作用.
并且通过"没有工作",我的意思是我带来了流浪汉,ssh'ed,并尝试"psql -U postgres -W",然后输入我创建的密码...但总是得到一个身份验证错误.另请注意,我理解我为密码提供的值(例如,代替上面示例中的"iloverandompasswordsbutthiswilldo")应该是密码的MD5哈希值,而不是明文,这就是我提供的内容.
由于您正在使用Vagrant,因此您应该在Vagrantfile中添加类似以下内容的config.vm.provision :chef_solo do |chef|内容(也存在一个或多个chef.add_recipe调用):
config.vm.provision :chef_solo do |chef|
# other stuff... like: chef.add_recipe "postgresql::server"
chef.json = {
"postgresql" => {
"password" => {
"postgres" => "iloverandompasswordsbutthiswilldo"
}
}
}
end
Run Code Online (Sandbox Code Playgroud)
该chef.json散列是所有的节点特定的属性去其交给厨师,独奏流浪运行期间提供,看不到的地方流浪文档以获取更多信息.