2016-09-19 4 views
0

RHELイメージが既に設定されていますが、元の設定方法はわかりません。 デフォルトでは、ローカルネットワークインターフェイスがip 192.168.50.50に設定されています。私がやろうとしているのは、Vagrantスクリプトからipを設定することです。VagrantスクリプトからRHELボックスのIPを設定する

これは何もしていないようだ。

config.vm.network "private_network", ip: "192.168.50.10" 

これは、IPアドレスを変更します:

sudo nmcli con mod bond0 ipv4.addresses 192.168.50.10/24 
service network restart 

しかし、その後明らかにベイグラントが自動的ので、に接続するためのIPアドレスを検出しません私は次のものを追加する必要があります:

config.ssh.host = LOCAL_IP 

しかし、ここに問題があります:最初はipがデフォルトのものです(.50.50)。だから私は既にconfig.ssh.host私の希望のIPに設定することはできません。 config.ssh.host行を省略すると、最初は実行されますが、その後は実行されません。vagrant sshも失敗します。

vagrant up間のVagrantスクリプトを編集せずにボックスIPを設定する方法はありますか?


編集vagrant up --debugコマンドの結果:http://pastebin.com/BTccc4NT


編集:問題は、デフォルトのボックス(Windows上で、それはC:\Users\user\.vagrant.d\boxes\nameofbox\virtualbox\Vagrantfileでだ)自体からベイグラントファイルがこれを持っていたということでしたライン:

config.vm.network "private_network", ip: "192.168.50.50", auto_config: false 
+0

通常は 'config.vm.network" private_network "、ip:" 192.168.50.10 "は何かがあるかもしれないので、IPを強制するプロビジョニングスクリプトを持っていますか?あなたは 'vagrant up --debug&> vagrant.log'を実行し、pastebinのどこかにログファイルを投稿することができます(ファイルは本当に大きくなりますが、正しいコマンドが正しく実行されれば詳細になります) –

+0

ありがとうございます。私はログを添付しました。私は今すぐ追加調査をする立場にはいないので、明日はやるつもりです。ログに192.168.50.10の文字列が表示されているのがわかりますが、実際にその意味を理解することはできません。 – trethaller

答えて

1

ハム、それsの奇妙な、それが作成されます2つのインターフェイス

あなたは、このための可能な理由は、あなたが使用しているボックスを持っているということである192.168.50.10

を持つアダプタ3に

DEBUG network: Normalized configuration: {:adapter_ip=>"192.168.50.1", :auto_config=>false, :ip=>"192.168.50.50", :mac=>nil, :name=>nil, :netmask=>"255.255.255.0", :nic_type=>nil, :type=>:static, :adapter=>2} 
INFO network: Searching for matching hostonly network: 192.168.50.50 
INFO subprocess: Starting process: ["C:/Program Files/Oracle/VirtualBox/VBoxManage.exe", "list", "hostonlyifs"] 

...... 

DEBUG network: Normalized configuration: {:adapter_ip=>"192.168.50.1", :auto_config=>true, :ip=>"192.168.50.10", :mac=>nil, :name=>nil, :netmask=>"255.255.255.0", :nic_type=>nil, :type=>:static, :adapter=>3} 
INFO network: Searching for matching hostonly network: 192.168.50.10 
INFO subprocess: Starting process: ["C:/Program Files/Oracle/VirtualBox/VBoxManage.exe", "list", "hostonlyifs"] 
あなたは192.168.50.50を持つアダプタ2のように

と特定のVagrantfileは、すでに静的アドレス上のネットワークを定義しています。

私は完全にWindowsに精通していませんが、Macではボックス定義は~/.vagrant/boxes/<yourbox>/<theprovider>/Vagrantfileです(プロジェクトのVagrantファイルではありません。これは実際にこのボックスから作成されたVMに適用されるVagrantfileです)。ファイルをチェックして、あなたはそれが

documentedとしてVagrantfileは、各レベルで異なる場所

からマージされ表示された場合は、ネットワーク設定を削除し、設定セットは、以前の値とマージされます。これは正確には設定に依存します。ほとんどの設定では、新しい設定は古い設定よりも優先されます。 しかし、ネットワークの定義などの場合、ネットワークは実際には互いに接続されています。デフォルトでは、設定がお互いに優先すると想定する必要があります。動作が異なる場合は、関連するドキュメントのセクションに記載されています。

デフォルトでは、バゲントは追加のネットワークインターフェイスを作成し、ボックスのVagrantfileからのものを置き換えません。

+0

あなたはそうです、確かにそこにハードコーディングされたIPがあります。ボックスを再パッケージ化せずにオーバーライドする方法はありますか?それらのボックスは別のチームによって管理されており、より便利になります。 – trethaller

+0

あなたはボックスフォルダからVagrantファイルを上書きすることができます。あなたのローカルで変更されます。問題はありません。ボックスを使用する他の人はあなたのローカル変更の影響を受けません。すべてがデフォルトで50.50で実行されますIP –

+0

私はこれを私のチームと共有したいと思っていますが、これをユーザーのVagrantfileで直接オーバーライドする方法があるのですか、ハードコーディングされていないボックスを再パッケージする必要があります192.168 .50.50行? (Btw、問題を解決するのを助けてくれてありがとう、私はSOが私にできるように賞金を授与します) – trethaller

関連する問題