CentOS72(1511)x64のVagrantBoxを作った
はじめに
- 作るきっかけは上記の一言です。
作業環境環境
環境 | バージョン |
---|---|
OS XEI Capitan | バージョン10.11.4 |
VirtualBox | バージョン5.0.24 |
Vagrant | バージョン1.8.1 |
入れておきたいVagrantのプラグイン
- vagrant-vbguest
目指す成果物
- 最小構成のCentOS72(1511)x64のbox
VirtualBoxで仮想マシンを作成する
- 仮想マシンの名前とメモリを設定する
- ハードディスクのタイプを選択し可変サイズで作成する
- 仮想マシンの設定を行っていく
- isoを読みこませる
- 読み込ませると以下になる
- オーディオを有効化のチェックを外す
- ネットワークのアダプター1を開きポートフォワーディングをクリックする
- 1レコードを作成する(以下)
- アダプター2を開きホストオンリーアダプターを選択する
- ポートを開きUSBをクリックしチェックを外す
- 設定後は以下になる
CentOS側の設定
- CentOS7をインストールする
- 言語を選択する
- 僕はUSキーボードなのでEnglish English(United States)を選択
- SOFTWARE
- INSTALLATION DESTINATIONの設定
- あとは以下の状態と同じ設定ができてればおk
- できていたら右下の青いボタンをクリック
- 設定完了後は右下の青いボタンを押して再起動
ユーザの情報
アカウント | 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の設定
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をインストールする
- VirtualBox(別ウィンドウで起動している)のメニューからDevicesを選択
- 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
- 仮想ドライブからディスクを除去する
- VirtualBox(別ウィンドウで起動している)のメニューからDevicesを選択
- Devicesの中に
Optical Drives
をクリック -
Remove disk from virtual drive
をクリック -
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を作成する前に
作業をしやすくするために行ったポートフォワーディングの設定を削除する。
- 仮想マシンの設定を開く。
- ネットワークのアダプター1(NAT)を選択し、「高度」の内容を展開。
- 下部に表示される「ポートフォワーディング」ボタンを押してメニューを表示。
- 作成した項目を選択してDelキーを押して削除。その後下部のOKボタンを押す。
- 設定画面の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
最後に
- 技術者なんで自分で作りました。