私は、Vagrant設定にAnsible(ローカル)プロビジョナを使用しています。プロビジョナーに環境変数を渡すことをお勧めしますか?環境変数をVagrantのプロビジョナに渡します。
例えば、私はENV=development vagrant up
を実行し、Vagrantに環境変数ENV
をAnabilitiesに渡したいとします。
$ vagrant provision
==> default: Running provisioner: ansible_local...
default: Running ansible-playbook...
ERROR: Expecting property name: line 1 column 2 (char 1)
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.
:私は(たとえAnsibleでenv
変数を使用せずに)vagrant provision
を実行したときに
Vagrant.configure(2) do |vagrant|
# other configuration
vagrant.vm.provision :ansible_local do |ansible|
ansible.playbook = "ansible/server.yml"
ansible.extra_vars = {
env: ENV.fetch("ENV", "development")
}
end
end
しかし、私は以下の取得:
私はVagrant documentationから取られ、extra_vars
を使用してみましたansible.extra_vars
を削除するとこのエラーは修正されますが、私が望むものを達成できません。
それはうまくいくように見えますが、 'ENV'という環境変数を持っているのがRubyや他のどこかでひどくクラッシュしているのだろうかと思います。 'ENV.fetch(" foobar "、" development ")'を試してから、 'export foobar =" notdevelopment "'で試してみるとどうなりますか? – ydaetskcoR
@ydaetskcoR事実ですが、これは 'env:" development "'を行うと同じ結果になります。 –
ああ、そこに行くと、それは 'env'変数名がAnsibleに衝突することになるでしょう。それを別のものにしてみてください – ydaetskcoR