1

Ubuntuで実行されるクックブックを書いています。デフォルトユーザーのホームにディレクトリを作成します。

directory "/home/<default-user>/my-directory" do
  owner <default-user>
end

問題は、このデフォルト ユーザーが環境によって異なることです。

  • Vagrantを使用して仮想マシンで実行するとvagrantになります。
  • また、 EC2インスタンスで実行する場合はubuntuです。

この種の問題を解決するための良い習慣は何ですか? そして、それを行う方法は?

ありがとうございました!

4

2 に答える 2

1

ユーザーを属性にして、環境に応じて設定します。

directory "/home/#{node[:my_app][:default_user]}/my-directory" do
  owner node[:my_app][:default_user]
end

次に、attributes/default.rbファイルで:

default[:my_app][:default_user] = 'ubuntu'

そしてあなたのVagrantfile

Vagrant.configure("2") do |config|
  config.vm.provision "chef_solo" do |chef|
    # ...

    chef.json = {
      "my_app" => {
        "default_user" => "vagrant"
      }
    }
  end
end

これにより、デフォルトのユーザーが に設定されますubuntuが、Vagrant VM で実行するとオーバーライドされます。

于 2013-10-09T14:13:20.560 に答える