Top / Vagrant / TIPS集

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します


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / Vagrant / TIPS集

現在のアクセス:91


*1 vagrant sshとかのコマンドのぞく

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-04-26 (木) 20:54:21 (80d)