VagrantでオリジナルBoxを作成する Ubuntu編
はじめに
開発環境を作成する要件があり、前より気になっていた
Vargrantを使用して、環境構築を行いたいと思う。
VagrantのBOXはいろいろ配布されていますが、信頼性については疑問である。
よって、自前でオリジナルBOXを作成する。
今回は、Ubuntu Server 16.04.2 LTSを使って進める。
準備
- VirtualBox
- Ubuntu ISOイメージ ISO
- Vagrant
仮想マシンの新規作成
以下の設定値で、仮想マシンを新規作成する。
項目 | 設定値 | 備考 |
---|---|---|
名前 | Ubuntu Server 16.04.2 LTS | 自由に |
タイプ | Linux | |
バージョン | Ubuntu(64-bit) | |
メモリ | 4096 | 適宜変更 |
ハードディスク | 仮想ハードディスクを作成する | |
ファイルの場所 | デフォルト 適宜変更 | |
ファイルサイズ | 256.0GB | 適宜変更 |
ハードディスクのファイルタイプ VDI | 適宜変更 | |
物理ハードディスクにあるストレージ | 可変サイズ | 適宜変更 |
OSのインストール
Ubuntuなので、preseedで自動インストールを行うのがスマートだが
今回は手動で以下設定値で、インストールを進める。
光学ドライブに、ダウンロードしたisoを選択し、VirtualBoxを起動する。
ネットワークの設定
Teratermでアクセスする為、VirtualBoxのネットワークを変更する。
インストールした「Ubuntu」を選択し、設定メニューを表示する。
NATネットワークのポートフォワーディングルールとして以下を設定する。
1 2 |
新規追加->ホストポートに2222、ゲストポートに22を入力 |
OSの追加設定
リポジトリの変更
apt-getの利用リポジトリを日本のサーバに変更する
1 2 |
sudo sed -i.bak -e "s%http://us.archive.ubuntu.com/ubuntu/%http://ftp.jaist.ac.jp/pub/Linux/ubuntu/%g" /etc/apt/sources.list |
OSの更新
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<br /># 更新 sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade # 再起動する # 不要なパッケージの削除 sudo apt-get clean sudo apt-get autoremove # 不要なlinux-imageパッケージの削除 # imageの確認 dpkg -l 'linux-image-*' # 現在のカーネル uname -r # 不要なlinux-imageパッケージの一括削除 dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge |
Vagrant設定
ユーザの作成
vagrantが操作できるようにユーザを作成。パスワードは「vagrant」ととした。
1 2 3 |
useradd -m vagrant passwd vagrant |
SSHの設定
vagrantで必要なsshの設定を行う。公開鍵が無いとupした場合、エラーになる。
1 2 3 4 5 6 7 |
mkdir /home/vagrant/.ssh chmod 700 /home/vagrant/.ssh cd /home/vagrant/.ssh curl -k -L -o authorized_keys 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' chmod 600 /home/vagrant/.ssh/authorized_keys chown -R vagrant:vagrant /home/vagrant/.ssh |
sudoの設定
vagrantユーザがsudoコマンドをパスワードなしで使用できるようにする。
1 2 3 4 |
sudo visudo #追加 vagrant ALL=(ALL) NOPASSWD: ALL |
vagrant package --base "Ubuntu Server 16.04.2 LTS"
vagrant box add --name UbuntuSRV16.04.02 ubntu160402.box
vagrant box add box名 boxファイル: ローカルにボックスファイルをダウンロードする
vagrant box list: box一覧確認
vagrant init box名: Vagrantfileの作成
vagrant up: VagrantfileからVMを起動する
vagrant status: 起動しているVM一覧確認
vagrant halt: VM停止
vagrant destroy: VM削除
vagrant ssh: 簡単にSSHログイン出来る