前回、仮想環境簡単設定ツール「Vagrant」のインストールで仮想環境設定自動化ツール「Vagarant」のインストールを行いました。
Vagrantを使用すれば、VirtualBox上に作成する仮想環境の設定を簡略化でき、また作成時の設定をまとめたVagrantfileを使用すれば、
同じ仮想環境を何処でもいつでも再構築することができます。
今回Vagrantを使用してVirtualBox上に仮想環境を構築していきたいと思います!
VirtualBox+Vagrantで環境構築
環境
・Windows10
・VirtulBox6.0
VirtualBoxに関しては【WordPress】WordPressをDockerToolboxを使用して構築する方法でインストールを行っています。
・Vagrant2.2.4
Vagrantfileの作成
まずはVirtualBox上の仮想環境の設定ファイルであるVagrantfileを作成します。
任意のフォルダを作成し、PowerShellを起動し、作成したフォルダに移動後以下のコマンドを実行します。
1 |
vagrant init |
コマンド実行すると、フォルダにVagrantファイルが作成されるので以下のように編集します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure(2) do |config| config.vm.box = "centos/7" config.vm.network "public_network", ip: "192.168.33.10" config.vm.provider "virtualbox" do |vb| vb.name = "test_vm" vb.cpus = 2 vb.gui = true vb.memory = "2048" vb.customize [ "modifyvm", :id, "--clipboard", "bidirectional", "--draganddrop", "bidirectional", ] end config.vm.provision "docker" config.vm.provision "shell", inline: <<-SHELL sudo yum -y groupinstall "GNOME Desktop" sudo systemctl set-default graphical.target sudo localectl set-locale LANG=ja_JP.UTF-8 sudo yum -y install firefox sudo reboot SHELL end |
6行目:config.vm.box
作成する環境のOSを設定できます。
Vagarant公式のboxのカタログに作成できる環境のリストがありますので、こちらから作成したい環境を指定します。
今回は「centos/7」を指定しています。
8行目:config.vm.network
仮想環境のネットワーク設定となります。
privateとすることでホストOSとのみネットワークが有効となり、publicとすると同じLAN内の別端末からssh接続が可能です。
IPを指定することも可能です。
10行目~20行目:config.vm.provider
VirtualBox内の基本設定を変更できます。
上記Vagrantfileでは名称、CPU数を指定し、GUIを有効にしています。
また「vb.customize」オプションを使用することで、VirtualBoxマネージャで設定できる内容をVagrantfileで設定することができます。
上記Vagrantfileでは双方向のクリップボード、ドラッグ&ドロップを有効にしています。
その他様々な設定項目がありますので、必要に応じて設定を行ってください。詳細についてはこちらで確認ができます。
22~30行目:config.vm.provision
vm起動後に設定する項目となります。
上記Vagrantfileではdocker、CentOS7のデスクトップ環境であるGNOME Desktopのインストール、firefoxのインストール、言語設定やデフォルトのGUI設定などを行っています。
Vagrantfileを実行しVirtualBox上に仮想マシンを作成する
Vagrantfileが作成できたら、PowerShell上で以下のコマンドを実行します。
1 |
vagrant up |
コマンド実行後、以下の画面が立ち上がりますが、インストールが終了すると再起動がかかりますのでしばらく放置します。
再起動後、設定画面が立ち上がります。
「設定の完了」を押下すると、ログイン画面に遷移しますので、パスワード「vagrant」を入力しログインを行います。
ログイン後、以下のセットアップ画面が立ち上がりますので、こちらも任意の設定を行い、完了させます。
一応Dockerがインストールされているかも確認します。
terninalを開き、Dockerのバージョン確認コマンドを押下します。
バージョンが表示されたら環境構築はひとまず完成です。
インストール後の設定
セットアップが完了後、VM上での作業効率向上のためにホストOSとゲストOSのマウス統合と、クリップボードが活用できるようにします。
セットアップ終了後、teninalを開き以下のコマンドを実行し必要なパッケージのインストールを行います。
1 2 3 |
sudo yum upgrade sudo yum -y install kernel-devel gcc |
実行後、一度シャットダウンし、VirtualBoxマネージャの設定から光学ディスクの追加の行います。
追加時に「空のままにする」を選択し、OKを押下して仮想マシンを再度起動します。
ログインしたら、上部ツールバーの「デバイス」の「Guest AdditionsCDイメージの挿入」を押下します。
ポップアップダイヤログが表示されますので、「実行する」を押下します。
押下後、認証情報の要求がありますので、ログイン時のパスワードを入力し、「認証」を押下します。
セットアップが開始しますので、しばらく待って「Press Return to close this window...」と表示されたら、Enterを押下しセットアップ画面を閉じます。
その後、再起動を行うとマウスの統合とクリップボードが使用できるようになります!
詰まったところ
当初、Vagrantfileにboxの指定に「config.vm.box = "bento/centos-7.3"」と記述していたんですが、
その場合だとGuestAdditionsのセットアップがうまくいかず詰まりました…
その後、「config.vm.box = "centos/7"」に書き換えると問題なくセットアップが完了しました。
時間があったら詳しく調べてみたいと思います。
参考
VagrantとDockerについて名前しか知らなかったので試した