# vm-01. VirtualBox on Windows ________________________________________ ## 1. 概要 ________________________________________ - VMツール - Hyper-V、VM Wareと競合ソフト - 競合ソフトで1つしか有効にできない ________________________________________ ## 2. インストールと設定 ________________________________________ 1. VirtualBoxをインストール 2. 設定:VMの保存先 3. 設定:ホストキー(推奨は右Ctrl) 4. コントロールパネル - プログラム - Windowsの機能 - Hyper-Vを無効化 5. BIOSでCPU設定。いずれか有効化 - Intel Virtualization Technorogy - VMM - VT-x ________________________________________ ## 3. VMの作り方 ________________________________________ ※ 以降のVMの作成や設定は、Vagrantを使えば自動で行えるのでそちらを推奨 ________________________________________ ### 3.1. VM作成 1. VM作成 2. 任意名・Linux・Red Hat(64bit) 3. 768MB 4. 仮想HDD作成(VDI、可変、20GB) 5. 作成 6. ネットワークをBridge Adapterに設定 ________________________________________ ### 3.2. OSインストール 1. CentOS(minimum)iso 2. 日本語を選択 3. ネットワークとホスト名 - vm01.localdomain 4. ネットワークとホスト名 - 設定 - 全般 - 「この接続...自動的に接続」を有効 5. インストール開始 - rootパスワードを設定 6. インストール続行 - 再起動ボタン(完了ボタン) ________________________________________ ### 3.3. 初期設定 VMで行う ```bash # インターネット接続必要 yum -y update # /etc/DIR_COLORSを好みに調整 # DIR 01;34 → DIR 01;34;47 # OS再起動すれば表示が反映 vi /etc/DIR_COLORS # /etc/selinux/configを確認 # 有効になっていたら無効 # (SELINUX=disabled) vi /etc/selinux/config # 再起動 shutdown -r now ``` ________________________________________ ## 4. 共有フォルダ設定(Guest Additions) ________________________________________ ### 4.1. 依存プログラムをインストール ```bash yum -y install bzip2 dkms gcc gcc-c++ kernel-devel kernel-headers make ``` ________________________________________ ### 4.2. 設定とインストール 1. VMをいったん終了させる 2. 設定 - 共有フォルダ― - 追加 - ホスト側フォルダを指定 3. VMを起動 ```bash # 環境変数確認1 printenv KERN_DIR # 空欄の場合、一時適用 # export KERN_DIR=/usr/src/kernels/$(uname -r) # 環境変数確認2 printenv MAKE # 空欄の場合、一時適用 # export MAKE='/usr/bin/gmake -i' # VMウィンドウのメニューから、デバイス # > GuestEditionの挿入 # マウント、移動、実行 # 問題が発生した場合は、※を参照のこと mount /dev/cdrom /mnt cd /mnt sh VBoxLinuxAdditions.run # 共有ディレクトリのマウントを試す mount -t vboxsf -o dmode=777,fmode=777 <2で設定した名前> /mnt ``` ```bash # ※ 問題が発生した場合 # 現OSのkernel-develが必要 # yumでダメな場合は、rpm KERNEL_VERSION=\`uname -r\` KERNEL_DEVEL_EXPECTED_VERSION=kernel-devel-${KERNEL_VERSION} echo ${KERNEL_DEVEL_EXPECTED_VERSION} yum -y install wget wget "ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/6.4/x86_64/updates/security/${KERNEL_DEVEL_EXPECTED_VERSION}.rpm" rpm -ivh ${KERNEL_DEVEL_EXPECTED_VERSION}.rpm ``` ________________________________________ ## 5.ターミナル接続設定 ________________________________________ ### 5.1. sshd_config /etc/ssh/sshd_config ```ini # 明示的に設定すること PermitRootLogin yes RSAAuthentication yes PubkeyAuthentication yes RhostsRSAAuthentication no HostbasedAuthentication no PasswordAuthentication no ChallengeResponseAuthentication no ``` ________________________________________ ### 5.2. sshdサービスの再起動 ```bash systemctl restart sshd.service ``` ________________________________________ ### 5.3. ssh接続用の鍵の作成と確認 ```bash # 秘密鍵・公開鍵のセットを生成 ssh-keygen -t rsa # コピー cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys # 秘密鍵を使う側に渡す # アドレス確認 ip a ``` 秘密鍵を使ってssh接続できることを確認 ________________________________________ ## 6. ネットワーク資料 ________________________________________ ### 6.1. 設定内容 ```ini # /etc/sysconfig/network # 空 # /etc/sysconfig/network-scripts/ifcfg-enp0s3 TYPE=Ethernet BOOTPROTO=dhcp ... DEFROUTE=yes ... DEVICE=enp0s3 PEERDNS=yes PEERROUTES=yes ... # /etc/sysconfig/network-scripts/ifcfg-lo DEVICE=lo IPADDR=127.0.0.1 NETMASK=255.0.0.0 NETWORK=127.0.0.0 BROADCAST=127.255.255.255 NAME=loopback ``` ________________________________________ ### 6.2. NATとBridge Adapter VirtualBoxがどう動作するか - NAT - VMは全て別ネットワーク - L3(≒ルータ) - NATネットワーク - ホスト-ゲスト間は別ネットワーク - L3(≒ルータ) - ブリッジアダプター - 同一ネットワーク - L2(≒LANハブ) ________________________________________ ## 7. クローンを別VM化 ________________________________________ 1. MACアドレス初期化クローン 2. ホスト側共有フォルダ設定変更 3. VM > 設定 > ネットワーク > 高度 > MACをメモ 4. VM起動 5. 設定ファイル書き換え 6. ssh置き換え CentOS7.x系のネットワーク修正 ```bash vi /etc/hostname # ... ``` CentOS6.x系のネットワーク修正 ```bash vi /etc/sysconfig/network # HOSTNAME=... vi /etc/sysconfig/network-scripts/ifcfg-foo # HWADDR=.... vi /etc/udev/rules.d/70-persistent-net.rules # ... ``` sshkey ```bash cd ~ rm -f .ssh/authorized_keys rm -f .ssh/id_rsa rm -f .ssh/id_rsa.pub ls .ssh -a ssh-keygen -t rsa cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys # 秘密鍵をホスト側に渡す # mount -t vboxsf -o dmode=777,fmode=777 <設定した名前> /mnt # cp ~/.ssh/id_rsa /mnt shutdown -r now # ifconfig(CentOS6.xの場合) ip a ``` 秘密鍵を使ってssh接続できることを確認