質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

3回答

3575閲覧

Vagrant 途中から複数サーバ構成にする方法

kuma3

総合スコア60

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

1クリップ

投稿2016/05/08 14:38

編集2016/05/09 05:40

Vagrantで当初VM1台で稼働させていましたが2台目も稼働させる必要が出ました。
フォルダを分けたくないのでVagrantfileの設定で2台稼働に対応したいのですが途中から2台稼働にする方法がわかりません。
最初から2台稼働にする方法はネットと検索すれば沢山出てくるのでわかっております。

現状のVagrantfileの設定

Vagrant.configure(2) do |config| config.vm.box = "opscode-centos-6.5" config.vm.network "forwarded_port", guest: 80, host: 8080 config.vm.network "forwarded_port", guest: 3000, host: 3030 config.vm.network "private_network", ip: "192.168.33.10", virtualbox__intnet: "fluentd_net" end

サーバのホスト名は次のコマンドでfooに設定しています。

vagrant ssh-config —host foo >> ~/.ssh/config

ホスト名がfooなので試しにVagrantfileを次のように修正してみる

Vagrant.configure(2) do |config| config.vm.box = "opscode-centos-6.5" config.vm.define "foo" do |foo| foo.vm.network "forwarded_port", guest: 80, host: 8080 foo.vm.network "forwarded_port", guest: 3000, host: 3030 foo.vm.network "private_network", ip: "192.168.33.10", virtualbox__intnet: "fluentd_net" end end

リスタートできるか試してみるvagrant restart

==> foo: VM not created. Moving on...

fooというVMは作られていないと表示されてしまう。
最初から複数台をVagrantfileで設定する方法はたくさん見つかりますが、途中から作る場合は見つかりませんでした。

アドバイス等頂けると助かります。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

普通に「Vagrant 複数台」で検索すると山ほど記事が出てきますが、
それではダメだったのでしょうか?

もっと別に試行錯誤した跡とかあれば記載してみてください。

投稿2016/05/08 14:49

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuma3

2016/05/08 15:03

最初から複数台を立てる記事は沢山出てきますが途中から立てる場合の記事がなくダメでした。 試行錯誤した結果を追記しました。
miyabi-sun

2016/05/08 16:14

ありがとうございます! Vagrantfileはサーバー構成のあるべき姿を書くものなので、 構成の変更に着目するとVagrantの詳しい動きを知らないと無理そうですね… 申し訳ないのですが、私にはちょっと荷が重いです。 しかし、Vagrantは今の仮想マシンのスナップショットを何時でもBOXとして保存出来ますので、 必要ならばBOXに保存しておき「vagrant destroy」でサーバーを破棄、 再度「vagrant up」を使って破壊して復旧という事は楽に出来ます。 ちなみに「vagrant restart」は既に立ち上がっているサーバーをリスタートするものなので、fooサーバーを追加したのならば「vagrant up」を使ってみてはどうでしょうか? 「vagrant up foo」とすれば良かったと調べた記事に載ってました。
kuma3

2016/05/09 05:56

やはり途中からconfig.vm.define :fooしてvagrant upしてしまうと新しいサーバを立てようとしてしまいますね。同じipアドレス、ポートなので作成できないとエラーとなります。 BOXで保存できるんですねこの方法も検討してみますがもしかしたら方法知っている人がいるかもしれないのでもうしばらく待ってみます。 ありがとうございました。
guest

0

ベストアンサー

VM が 1 台の場合は default という名前になっているので下記のようにしてみたらいかがでしょうか?

ruby

1Vagrant.configure(2) do |config| 2 config.vm.box = "opscode-centos-6.5" 3 4 config.vm.define "default" do |cfg| 5 cfg.vm.network "forwarded_port", guest: 80, host: 8080 6 cfg.vm.network "forwarded_port", guest: 3000, host: 3030 7 cfg.vm.network "private_network", ip: "192.168.33.10", virtualbox__intnet: "fluentd_net" 8 end 9 10 config.vm.define "foo" do |cfg| 11 cfg.vm.network "forwarded_port", guest: 80, host: 8081 12 cfg.vm.network "forwarded_port", guest: 3000, host: 3031 13 cfg.vm.network "private_network", ip: "192.168.33.11", virtualbox__intnet: "fluentd_net" 14 end 15 16end

投稿2016/05/09 14:00

ngyuki

総合スコア4514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuma3

2016/05/09 14:17

できました! ありがとうございます。 1台の時はdefaultという名前が自動的についているとは盲点でした。
guest

0

仮想マシンを2台にするというのはこういうイメージですか?
fooサーバ(仮にApache) と barサーバ(仮にRails)
すでに他の回答にありますが、方法は沢山ネット上に転がっています。
ネット上の方法と見比べてVagrantfileに書かれている内容をよく考えてみましょう。
また、fooサーバ と barサーバのホスト名とプライベートipの紐付けはhostsファイルで行います。

Vagrant.configure(2) do |config| config.vm.define :foo do | server_foo | server_foo.vm.box = "opscode-centos-6.5" server_foo.vm.network "private_network", ip: "192.168.33.10" server_foo.vm.network "forwarded_port", guest: 80, host: 8080 end config.vm.define :bar do | server_bar | server_bar.vm.box = "opscode-centos-6.5" server_bar.vm.network "private_network", ip: "192.168.33.20" server_bar.vm.network "forwarded_port", guest: 3000, host: 3030 end end

投稿2016/05/08 16:10

bleurouge

総合スコア161

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuma3

2016/05/09 05:46

これと同じことをまず1台でやってみてうまくいかなかったです。
bleurouge

2016/05/09 11:45 編集

エラーメッセージは以下で同じということでしょうか? > ==> foo: VM not created. Moving on... そもそもですが、既存のVMとの関連が切れてしまっていませんか? VagrantとVirtualBoxの関連付けをしているファイルはありますか? [Vagrantfileのパス]/.vagrant/machines/default/virtualbox/id こちらの記事が参考になります。 http://gyagya1111.blogspot.tw/2015/05/vagrantvirtualbox.html また、既存boxを利用しての仮想環境の追加は Vagrantfile の編集後、vagrant up [追加環境名] でできたはずです。 まずは、boxファイルの関連を確認してみてください。
kuma3

2016/05/09 14:22

回答ありがとうございます。 ngyuki様の回答で解決することできましたがリンク等今後の参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問