4

私はシェフに不慣れで、ドキュメントを解釈しようとしています。chef-solo環境にopscodepostgresqlレシピを追加しました。postgresqlは正常にインストールおよび起動するようですが、残念ながらサーバーにログインできず、サーバーがほとんど使用できなくなります。

ドキュメントにはこれが記載されています:

chef-clientを使用すると、次のノード属性がChefサーバーに保存されます。chef-soloはサーバーに接続したり、ノードオブジェクトを保存したりしないため、chef-soloの実行間でパスワードを保持するには、使用するjson_attribsファイルでパスワードを指定する必要があります。例えば:

{
  "postgresql": {
    "password": {
      "postgres": "iloverandompasswordsbutthiswilldo"
    }
  },
  "run_list": ["recipe[postgresql::server]"]
}

ただし、「json_attribs」ファイルが何であるかはわかりません。レシピ自体にそのようなファイルが含まれていないので、グーグルで試しましたが、結果が得られませんでした。また、そのようなファイルを作成して、ディレクトリ構造のランダムな場所に貼り付けようとしましたが、もちろんそれは機能しませんでした。

そして、「動作しなかった」とは、vagrantを起動し、sshで接続し、「psql -U postgres -W」を試し、作成したパスワードを入力したことを意味します...しかし、常に認証エラーが発生します。また、パスワードに提供する値(たとえば、上記の例の「iloverandompasswordsbutthiswilldo」の代わりに)は、プレーンテキストではなくパスワードのMD5ハッシュであると想定されていることを理解しているため、これを提供しました。

4

1 に答える 1

7

Vagrant を使用しているため、次のようなものを Vagrantfile のセクションに追加する必要がありますconfig.vm.provision :chef_solo do |chef|(1 つ以上の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

ハッシュは、すべてのchef.jsonノード固有の属性が移動する場所であり、Vagrant によって実行されるプロビジョニング中にchef-solo に渡されます。詳細については、 Vagrant のドキュメントを参照してください。

于 2013-03-08T14:44:53.220 に答える