魔法使いの卵

WEBエンジニアの卵の成長記録

CentOS72(1511)x64のVagrantBoxを作った

はじめに

f:id:raichel:20160701000712p:plain

  • 作るきっかけは上記の一言です。

作業環境環境

環境 バージョン
OS XEI Capitan バージョン10.11.4
VirtualBox バージョン5.0.24
Vagrant バージョン1.8.1

入れておきたいVagrantプラグイン

目指す成果物

  • 最小構成のCentOS72(1511)x64のbox

VirtualBox仮想マシンを作成する

f:id:raichel:20160630223750p:plain

  • ハードディスクのタイプを選択し可変サイズで作成する

f:id:raichel:20160630223806p:plain

f:id:raichel:20160630223826p:plain

f:id:raichel:20160630223837p:plain

  • 読み込ませると以下になる

f:id:raichel:20160701011756p:plain

  • オーディオを有効化のチェックを外す

f:id:raichel:20160630223918p:plain

  • ネットワークのアダプター1を開きポートフォワーディングをクリックする

f:id:raichel:20160630223931p:plain

  • 1レコードを作成する(以下)

f:id:raichel:20160630223948p:plain

  • アダプター2を開きホストオンリーアダプターを選択する

f:id:raichel:20160630224001p:plain

  • ポートを開きUSBをクリックしチェックを外す

f:id:raichel:20160630224015p:plain

  • 設定後は以下になる

f:id:raichel:20160630224033p:plain

CentOS側の設定

  • CentOS7をインストールする

f:id:raichel:20160630231711p:plain

  • 言語を選択する
    • 僕はUSキーボードなのでEnglish English(United States)を選択

f:id:raichel:20160630231724p:plain

f:id:raichel:20160630231741p:plain

  • あとは以下の状態と同じ設定ができてればおk
    • できていたら右下の青いボタンをクリック

f:id:raichel:20160630231805p:plain

  • rootユーザの設定の設定

  • ユーザの設定は以下

f:id:raichel:20160630231828p:plain

  • 設定完了後は右下の青いボタンを押して再起動

f:id:raichel:20160630231848p:plain

ユーザの情報

アカウント Password グループ
root vagrant wheel
vagrant vagrant

Macのターミナルから作成した仮想マシンに接続する

ssh -p 2222 root@localhost

sudoコマンドの設定

vagrantユーザがパスワード無しでsudo実行可能とする。

  • 設定ファイルを開く
visudo
  • 設定を以下のように変更する
Defaults    requiretty

         ↓
          
# Defaults    requiretty
%vagrant  ALL=(ALL)       NOPASSWD:ALL

selinuxの無効化

  • 設定ファイルを変更する
vi /etc/sysconfig/selinux
  • 以下のように設定を変更する
# enforcingからdisabledに変更
SELINUX=disabled

firewallを停止する

systemctl stop firewalld
systemctl disable firewalld

sshの設定

  • vagrantSSHする際に使用するInsecure Private Keyを登録しておく。
mkdir /home/vagrant/.ssh
chmod 700 /home/vagrant/.ssh
curl https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub >> /home/vagrant/.ssh/authorized_keys
chmod 600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant:vagrant /home/vagrant/.ssh

パッケージマネージャーの更新

  • パッケージマネージャーを更新する
yum update -y
  • 仮想環境を再起動する
reboot

Guest Additionsインストール

  • Guest Additionsをインストールする

    1. VirtualBox(別ウィンドウで起動している)のメニューからDevicesを選択
    2. Devicesの中に Install Guest Additions CD image... をクリック
  • Guest Additionsをマウントするディレクトリを作成する

mkdir -p /mnt/cdrom
  • Guest Additionsをマウントする
mount -r /dev/cdrom /mnt/cdrom
  • VBoxLinuxAdditions.runを実行する
sh /mnt/cdrom/VBoxLinuxAdditions.run
  • 以下のエラーは関係ないので無視

Could not find the X.Org or XFree86 Window System, skipping.

  • マウントを解除する
umount /mnt/cdrom
  • 仮想ドライブからディスクを除去する
    1. VirtualBox(別ウィンドウで起動している)のメニューからDevicesを選択
    2. Devicesの中に Optical Drives をクリック
    3. Remove disk from virtual drive をクリック
    4. Force Unmount をクリック

VagrantBox作成前のお掃除

  • yumで利用したファイルのcacheを削除
yum clean all

vagrantはネットワークの設定をvagrantが行うので既存の設定ファイル等を削除する

  • ifcfg-enp0s3の削除
rm /etc/sysconfig/network-scripts/ifcfg-enp0s3
  • udevルールの削除
rm /etc/udev/rules.d/70-persistent-ipoib.rules

フラグメンテーションを解消

  • box作成時の圧縮率をあげるため
dd if=/dev/zero of=/EMPTY bs=1M
rm -f /EMPTY
  • historyを削除する
history -c

仮想マシンを終了させる

shutdown -h now

Boxを作成する前に

作業をしやすくするために行ったポートフォワーディングの設定を削除する。

f:id:raichel:20160630231901p:plain

  1. 仮想マシンの設定を開く。
  2. ネットワークのアダプター1(NAT)を選択し、「高度」の内容を展開。
  3. 下部に表示される「ポートフォワーディング」ボタンを押してメニューを表示。
  4. 作成した項目を選択してDelキーを押して削除。その後下部のOKボタンを押す。
  5. 設定画面のOKボタンを押す。

boxの作成

  • ※CentOS72(1511)x64って名前は使えないのでCentOS72x64に変更しておきます。
vagrant package --base "仮想マシンの名前" --output box名.box

今回作成したboxを使う方法は以下

  • boxを登録
vagrant box add CentOS72x64 作成したboxのディレクトリのパス/CentOS72x64.box
  • 設定ファイルの作成
vagrant init CentOS72x64
  • 起動
vagrant up
  • 接続
vagrant ssh

作るのめんどくせーからこの環境使わせろよって人向け

  • boxを登録
vagrant box add raichel/CentOS72x64
  • 設定ファイルの作成
vagrant init raichel/CentOS72x64;
  • 起動
vagrant up
  • 接続
vagrant ssh

最後に

  • 技術者なんで自分で作りました。