読者です 読者をやめる 読者になる 読者になる

VagrantのBoxを作成する

実践Vagrantを読んだので,実際にLinux Mint18.1(MATE)のvagrant boxを作ってみる

環境

VirtualBoxのマシン作成

設定

  1. 仮想マシンの作成
    • メモリはあとで変えられるので少なめに
    • 仮想ハードディスクを作成するにチェック f:id:MitI_7:20170304084148p:plain
  2. 仮想ハードディスクの作成
    • ファイルサイズ変えるのはめんどうなので多めに f:id:MitI_7:20170304084156p:plain
  3. ストレージ
    • isoをセットする f:id:MitI_7:20170304084211p:plain
  4. オーディオを有効化のチェックをはずす f:id:MitI_7:20170304084223p:plain
  5. USBコントローラを有効化のチェックをはずす f:id:MitI_7:20170304084229p:plain
  6. あとは仮想マシンを起動し普通に進めていく
  7. ユーザ名,パスワードはvagrantにしておく f:id:MitI_7:20170304084235p:plain

オペレーティングシステムの設定

  1. 仮想マシンを起動し,tarminalを起動
  2. sshができるようにopenssh-serverをインストール

    $ sudo apt-get update
    $ sudo apt-get install openssh-server
    
  3. sudoをパスワードなしで実行できるように以下のように設定する

    $sudo visudo
    
    • 変更前

      # Allow members of group sudo to execute any command
      %sudo   ALL=(ALL:ALL) ALL
      
    • 変更後

      # Allow members of group sudo to execute any command
      %sudo   ALL=(ALL:ALL) NOPASSWD: ALL
      
  4. 公式を参考に日本語化パッケージをインストール

    $ wget -q http://packages.linuxmint-jp.net/linuxmint-ja-archive-keyring.gpg -O- | sudo apt-key add -
    $ sudo wget http://packages.linuxmint-jp.net/sources.list.d/linuxmint-ja.list -O /etc/apt/sources.list.d/linuxmint-ja.list
    $ sudo apt-get update
    $ sudo apt-get dist-upgrade
    $ sudo apt-get install mint-gnome-ja --install-recommends
    
  5. VirtualBox Guest Additionsのインストール

    • Virtual BoxのデバイスからGuest AdditionsCDイメージの挿入を選択し実行
  6. 最終的なボックスのサイズの最小化

    • 仮想ハードディスクをゼロで埋め,ゼロで埋まったファイルを削除する
    • 下位のディスクのフラグメンテーションの問題が解決され,後で行う圧縮の効率が上がる

      $ sudo dd if=/dev/zero of=/EMPTY bs=1M 
      $ sudo rm -f /EMPTY
      
  7. その他メモ

    • insecure private keyの設定は必要ない

vagrant boxの作成

  • ここからはWindows上で行う
  • パッケージ化
    • baseにはVirtual Boxで指定した名前をいれる

      vagrant package --base linuxmint1801 --output linuxmint-18.1-mate-64bit.box
      

マシンの作成

  1. boxを追加する

    vagrant box add --name linuxmint1801 linuxmint-18.1-mate-64bit.box
    
  2. Vagrantfileの作成

    vagrant init linuxmint1801
    
  3. Vagrantfileの編集

    • private_keyを使ったssh接続ができないので,パスワードで接続できるようにする
    • 1度接続できれば鍵が自動で生成される.

      config.ssh.username = 'vagrant'
      config.ssh.password = 'vagrant'
      
  4. 起動

    vagrant up
    

参考