VagrantのBoxを作成する(とあとエラー回避) †VagrantのBOXを「複製&配布して他人と共有する」方法 | vdeep にしたがって、やってみました。 # 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 ココに情報がありました。自分が使用中のVagrantfile に、 config.vm.provider "virtualbox" do |vb| vb.customize [ "modifyvm", :id, "--uartmode1", "disconnected" ] end を追加した後、package出力することで、フルパスの記述を回避できました。。 うーん、よく分からんorz 一個のVagrantfile で複数のvmを管理する。 †# 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アドレスを設定している。 外からアクセスする †作成したvmは通常、そとの世界からアクセス出来ません*1。なので、外から繋ぐには、ポートフォワードさせます。 # 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します この記事は 現在のアクセス:2482 |