2016年6月11日土曜日

VirtualBox Vagrant CentOS7 Box 作りたい

※だいぶ古くなっていて以下の手順では作れない可能性が高いです。あくまで参考程度に。

いろいろ試してみようと思っても
PCの中がごちゃごちゃするのが嫌なので
VirtualBoxとVagrantを導入します。
ついでに自分でLinuxのボックス作ってLinuxの復習。

それぞれの説明。

VirtualBox
 Oracle VM VirtualBox (オラクル ブイエム バーチャルボックス)。
 x86 ベース・システム用の仮想化ソフトウェア・パッケージ。
 現在(2016年4月)、Oracle Databaseで有名なオラクルが開発を行っている。

Vagrant
 FLOSS(Free/Libre and Open Source Software)の仮想開発環境構築ソフトウェア。
 仮想マシンでの開発環境の構築を設定まで自動的に行うことができる。
 違う環境への移行も簡単(作成した仮想マシンを別のPCで再構築なんてのもできる)。

Boxファイル:
 Vagrantで作成・使用する、仮想マシンのベース(ひな形)になるイメージファイル
 今回はこれを作成します。(ベースになる環境を構築するってこと~)

ちなみにBoxファイルを公開しているサイトもあって
それを利用することもできるらしい。


ではでは、
さっそく、導入する際に行った作業やなどをメモしていきます。

----------------------------------------------------------------------

ダウンロード、インストール

VirtualBox、Vagrantのインストール(ダウンロード:VirtualBoxVagrant)

・インストールについては以下のサイトがとてもわかりやすかったです。
  Oracle VM VirtualBox をインストールする手順 (Windows 7)
  Vagrant をWindowsにインストールする手順

CentOS7.1 ISOファイルのダウンロード(ダウンロード:CentOS7Minimal)
CentOS7のインストールはVirtualBoxの設定後に行います。

VirtualBoxの設定

VirtualBoxを起動

VirtualBoxにて仮想マシンを新規作成
作成時の設定内容
  ・名前:CentOS7
  ・タイプ:Linux
  ・バージョン:Red Hat (64-bit)
  ・メモリーサイズ:2048 MB
  ・ハードディスク:仮想ハードディスクを作成する
  ・ハードディスクのファイルタイプ:VDI
  ・物理ハードディスクにあるストレージ:可変
  ・ファイルの場所とサイズ:場所はデフォルトのまま、サイズは40GB

作成した仮想マシンを右クリックして設定
 ・オーディオ  - オーディオを有効化のチェックを外す
 ・USB      - USBコントローラーを有効化のチェックを外す
 ・ネットワーク - アダプター1 - 高度 - ポートフォワーディング -
  新規ポートフォワーディングルールを追加(右上にある+マーク)
   設定内容
    名前:SSH
    プロトコル:TCP
    ホストIP:127.0.0.1
    ホストポート:2222
    ゲストIP: (空白)
    ゲストポート:22
 ・ストレージ - コントローラーIDE - 右端にあるディスクマークをクリック -
  仮想光学ディスクファイルを選択 - ダウンロードしたCentOS7のISOファイルを選択

 OKを押して保存

CentOS7を仮想マシンにインストール

仮想マシンを選択して起動をクリック
仮想マシンが起動してCentOS7のインストールが始まる
メモ:
「表示された仮想マシンの画面をクリックするとメッセージが表示される
 キャプチャ-をクリックで仮想マシン内の操作が可能になる。
 右のControlキーを押すと仮想マシンから抜けられる」

Install CentOS 7を選択してエンターキーを押下

言語設定を日本語にする。
続行をクリック

インストール先をクリック
 ローカル標準ディスクを選択
 完了をクリック

ネットワークとホスト名をクリック
 イーサネット(enpOs3)をオンにする
 完了をクリック

インストールの開始をクリック

ROOTパスワードをクリック
  パスワードを設定:vagrant
  完了を2回クリック

ユーザーの作成をクリック
  ユーザー名:vagrant
  パスワード:vagrant
  完了を2回クリック

再起動をクリック

※こっから先はTeraTermなどSSH接続用のツールを使用して作業をします。
TeraTermのインストールなどについてわからない方は以下のサイトなど参考にするといいかも。
Tera Termのインストール - Tera Termの使い方
接続するときのホストとポート番号は「VirtualBoxの設定」のネットワークで設定した
ホストIP:127.0.0.1、ホストポート:2222を指定します。
SSH接続しなくても作業はできますが、コピペなどができるのでSSH接続しての作業がおすすめ。


CentOS7の設定

sudoの設定

vagrantユーザーにsudoを許可する。

・以下のコマンドでvagrantをwheelグループに追加
 # usermod -aG wheel vagrant

・追加されたことを確認
  # id vagrant

・sudo の設定ファイルを開く
  # visudo
  (/etc/sudoers が開かれる)

・設定ファイルを編集
  ## Allows people in group wheel to run all commands
  %wheel  ALL=(ALL)  ALL (コメントされている場合はコメントを外す)

  ## Same thing without a password
  %wheel   ALL=(ALL)   NOPASSWD: ALL (コメントされている場合はコメントを外す)

 「Defaults               requiretty 」の次の行に以下を追加する。
 Defaults:vagrant    !requiretty

  保存して閉じる

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

不要サービスの停止・無効化

ひとまず参考にしたサイト通りに、サービスを無効化します。
(firewalldはもともとなかった・・)

全サービスの一覧表示(qを入力して一覧からコマンドラインに戻れる)
 # systemctl list-units --type service

状態確認
 # systemctl status postfix
停止
 # systemctl stop postfix
無効化
 # systemctl disable postfix
状態確認
 # systemctl status postfix 

SELinuxの無効化

いろいろ厄介らしいのでSELinuxを無効化。
# vi /etc/selinux/config

以下の行を変更
 変更前) SELINUX=enforcing
 変更後) SELINUX=disabled

既存パッケージのアップデート

# yum -y update

追加パッケージのインストール

# yum -y groupupdate "Development Tools"
# yum -y install man-pages-ja wget vim-enhanced

# reboot
(再起動されるので再度ログイン)

VirtualBox Guest Additionsのインストール

VirtualBoxの実行中仮想マシンのメニューから、
[デバイス] > [Guest Additions のCDイメージを挿入...]を選択し、
以下の手順でインストールする。
  # mkdir /media/cdrom
 # mount -r /dev/cdrom /media/cdrom
 # sh /media/cdrom/VBoxLinuxAdditions.run
  yesを応答する。
 # umount /media/cdrom

----トラブルシューティングメモ----
 実行中に[失敗](FAILED)が出てなかなか正常にインストールできなかった。
 ログなどいろいろ調べた結果、 以下のサイトで実施している
 トラブルシューティングの内容を実行したら正常にインストールできました。
 VirtualBox/クリップボードの共有

 【実施した内容】
  ls で確認したkernelのバージョンと
  uname -r で確認したkernelのバージョンが同じことを確認
   # ls /usr/src/kernels/<kernelバージョン>
     # uname -r

  違った場合は以下を実施する  
   # yum remove -y kernel-devel kernel-headers gcc
   # yum install -y kernel-devel-`uname -r` kernel-headers-`uname -r` gcc

  .bashrcファイルの末尾に以下の行を追記する。
   # vi ~/.bashrc
    export KERN_DIR=/usr/src/kernel/`uname -r`
  .bashrcの再読み込み
   # . ~/.bashrc
  インストールの再実施
   # sh /media/cdrom/VBoxLinuxAdditions.run

yum のキャッシュ削除

# yum clean all

シャットダウン

# shutdown -h now

ボックスの作成

コマンドプロンプトを起動(ファイル名を指定して実行のところでcmdを入力して実行すると出てくるよ)

vagrant package --base <仮想マシン名> package.boxを実行してboxファイルを作成。
 > vagrant package --base CentOS7 package.box
 >dir package.box

※package.boxは実行した時の場所(フォルダ)に作成されるので移動してから行う

ボックスをVagrantに登録

vagrant box add --name <Vagrantでのボックス名> package.box
 > vagrant box add --name centos7 package.box
 > vagrant box list
centos7が表示され追加されていることを確認。

ボックスを使ってみる

好きな場所にフォルダを作成します。(VirtualBox上での名前になります。日本語は使わないほうが無難かな?)
今回はCドライブの直下にVagrantフォルダを作成して、
その下に各仮想マシン用のフォルダを作成して管理しようと思います。

作成したらコマンドプロンプトで作成したフォルダに移動。
 > cd C:/Vagrant/testVagrant

vagrant init <Vagrantでのボックス名>を実行して仮想マシン用の設定ファイルを作成。
> vagrant init centos7

実行場所にVagrantfileが作成されます。

以下のコマンドで仮想マシンの起動(初回実行時は仮想マシンの作成)
 > vagrant up

以下のコマンドでSSH接続用のホスト名、ポート番号、ユーザ名が表示されます。
 > vagrant ssh

SSH接続する。


以上です。
これで多分できるはず!
新しいことを気軽に試せるっていいですよね。

おわり。



以下は参考にさせてもらったページ

 ・systemctlコマンド
  6.2. システムサービスの管理
・VagrantでBox作成
  Vagrantコマンド
・その他
  Tera Termのインストール - Tera Termの使い方
  VirtualBox/クリップボードの共有


0 件のコメント:

コメントを投稿