#topicpath
----

#contents



** VagrantのBoxを作成する(とあとエラー回避) [#ab1dd863]

[[VagrantのBOXを「複製&配布して他人と共有する」方法 | vdeep>http://vdeep.net/vagrant-package]] にしたがって、やってみました。

 # vagrant package default --output hogehoge.box
とすることで、自分が使用しているイメージををBox化できる。Box化したファイルはネット上のBoxと同様に、
 # vagrant box add hogehoge_vm /xxx/xxx/hogehoge.box
などとパス指定で、自分のVagrantに入れることが可能。



ただし、
 # vagrant init ubuntu/xenial64
したヤツから派生したOSイメージは、なぜかエラーに。。エラーを見ると、
ubuntu-xenial-16.04-cloudimg-console.log ってファイルを出力しようとしたけど、そこにパスがないよと怒られてコケてる。。よくよくみてみると、
 ~/.vagrant.d/boxes/hogehoge_vm/0/virtualbox/box.ovf
のところにフルパスが確かに書いてある。。

ググってみると、回避するには、

[[Get rid of ubuntu-xenial-16.04-cloudimg-console.log | Betacloud Solutions>https://betacloud.io/get-rid-of-ubuntu-xenial-16-04-cloudimg-console-log/]]

ココに情報がありました。自分が使用中のVagrantfile に、
 config.vm.provider "virtualbox" do |vb|
   vb.customize [ "modifyvm", :id, "--uartmode1", "disconnected" ]
 end
を追加した後、package出力することで、フルパスの記述を回避できました。。

うーん、よく分からんorz


** 一個のVagrantfile で複数のvmを管理する。 [#h34b474a]
  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://vagrantcloud.com/search.
  config.vm.box = "ubuntu/xenial64"
 
  config.vm.define :agent001 do | agent001 |
    agent001.vm.hostname = "agent001"
    agent001.vm.network :private_network, ip: "192.168.33.11"
  end
 
  config.vm.define :agent002 do | agent002 |
      agent002.vm.hostname = "agent002"
      agent002.vm.network :private_network, ip: "192.168.33.12"
  end
こんな感じでできる。

 # vagrant up で両方起動し、
 # vagrant ssh agent001 とかでそれぞれのvmにログイン出来る。
さらに、それぞれのサーバが通信出来るよう、内部で利用可能なIPアドレスを設定している。


**外からアクセスする [#la4ae1b9]
作成したvmは通常、そとの世界からアクセス出来ません((vagrant sshとかのコマンドのぞく))。なので、外から繋ぐには、ポートフォワードさせます。
  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
  # NOTE: This will enable public access to the opened port
  config.vm.network "forwarded_port", guest: 80, host: 8888
コレで、127.0.0.1:8888にアクセスすると80ポートへport forwardingします


----
この記事は
#vote(おもしろかった,そうでもない)

#comment

#topicpath

SIZE(10){現在のアクセス:&counter;}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS