0
Rubyを使用したことはありませんでしたが、これはいくつかの例を見ていればまっすぐになりました。迷惑メールファイルと外部設定 - 何が間違っていますか?
vmconfig.yml:
server:
hostname: mydomain.com
Vagrantfile:
require 'yaml'
vmconfig = YAML.load_file('vmconfig.yml')
Vagrant.configure(2) do |config|
config.vm.box = "debian/contrib-jessie64"
config.vm.provision "shell", inline: <<-SHELL
apt-get update
hostname vmconfig["server"]["hostname"]
config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
end
ホスト名がVMが建物を終了したとき(べき設定ファイルに)設定されていません?値をハードコードすると、それはうまく動作しますか?
string interpolationが更新応答をありがとうとそれを行う必要があるが、私は見ての例のいずれもT思えない理由として非常に興味がありますo補間された文字列を使用する(https://stackoverflow.com/a/26394449/897075)これはまさに私がやろうとしていることです。私は認めなければならないが、文字列の補間はひどく見えるが、それはトリックを行うように見えた - しかし、今私は理由を理解しようとしている?これらすべての例と私の考え方とは何が違うのですか? –
私はちょうど理由を考え出したと思うかもしれません...私が見た例はconfig.vm.XXXを使っています - 私の悪い:) –
それは同じではありません - 私の最初のコードスニペットが文字列補間、 yamlファイルを読むことによって直接期待されるホスト名を取得します。 2番目の部分では文字列補間が必要ですが、テキスト全体(この場合はSHELL文字列変数)内でスクリプト全体が実行されるので、ホスト名部分がyamlとその変数から読み取られなければならないちょうどいくつかのランダムなテキスト –