ホーム DoRuby vagrant で簡単に環境をつくる

vagrant で簡単に環境をつくる

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

はじめまして、bibioです。中途入社のぴちぴちです。

入社早々開発環境を作ったという流れで、ぎりぎりRubyつながりなvagrantの操作をおさらいします。

そもそもvagrantって何ですか?

VirtualBox(VMwareも使えますが確か有償)をコマンドラインから簡単に動作できるようにしたツールです。

https://www.virtualbox.org/

https://www.vagrantup.com/

ホスト環境は Macですが、Windowsでも動きます。

メリット

  • 設定ファイルは Ruby で記述されている
  • OSがインストールされた仮想イメージが簡単に利用・共有できる
  • chef の検証に便利

デメリット

  • プラグインの使い方がわかりにくい
  • 初期値のメモリが少ない(512MB)のでコンパイル中にたまに固まる

キーワード

boxOSインストール済みの仮想化ファイルprovider仮想ソフトウエアの種類

前提環境と準備

今回は VirtualBox を使います。

はじめに VirtualBox と Vagrant をダウンロードしてインストールします。

https://www.virtualbox.org/

https://www.vagrantup.com/

流れ

host $ mkdir vagrant; cd vagrant
host $ vagrant init
host $ vi Vagrantfile
host $ vagrant up
host $ vagrant ssh
guest > 

基本的にこれだけです。初回の vagrant up で chef/centos-6.5 の

BOX がダウンロードされるので時間と帯域を消費します。

また、ダウンロードしたBOXは保存されるので、次回以降 chef/centos-6.5 を

使う場合は基本的にはダウンロードされません。

upした段階で VirtualBox をたちあげると仮想マシンが生きていることが確認できます。

なお、仮想マシンは up 時に BOX から複製されるので、元のBOXは変更されません。

設定ファイルの編集

Vagrantfile という設定ファイルを編集することでカスタマイズが可能です。

最低限必要なオプションは config.vm.box だけ。

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  # CentOS 6.5 を入れる
  config.vm.box = "chef/centos-6.5"

  # プライベートネットワーク設定するとホストからアクセス
  config.vm.network "private_network", ip: "192.168.33.10"

   # 仮想マシンのカスタマイズ
   config.vm.provider "virtualbox" do |vb|
     vb.gui = false 
    # CPU2コア,メモリ1GBを割り当てる。 ioapic がないとうまく動かないみたい
     vb.customize ["modifyvm", :id, "--memory", "1024", "--cpus", "2", "--ioapic", "on"]
   end
end

ssh でログイン

初期値のホストとポートは 127.0.0.1:2222 です。

秘密鍵は $HOME/.vagrant.d/insecure_private_key です。

パスワード未設定なので気になったら自分の秘密鍵に変更してください。

ssh の設定は以下のコマンドで確認できます。

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /home/bibio/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

おまけですが、秘密鍵から公開鍵を作る方法です。

$ ssh-keygen -y -f .ssh/id_rsa

仮想マシンを停止/サスペンド/削除

操作もコマンドラインからできます。

停止
$ vagrant halt
サスペンド
$ vagrant suspend
削除

容量を圧迫するので使わなくなった仮想マシンは削除しましょう。

$ vagrant destroy

なお、BOX は削除されません。

さらにBOXの複製や共有もできますが、今回はここまで。

記事を共有

最近人気な記事