プログラミング素人のはてなブログ

プログラミングも電気回路も専門外の技術屋の末端が勉強したことや作品をアウトプットするブログ。コードに間違いなど見つけられたら、気軽にコメントください。 C#、Python3、ラズパイなど。

VirtualBoxとVagrantでUbuntuの仮想環境を作る

最近無料開放で話題のN予備校のプログラミングコース「【2020年度】プログラミング入門 webアプリ」コースを始めました。

コースの詳細は他の方の記事を参照ください。
note.com
jun-networks.hatenablog.com

このコースでは開発環境としてWindows/Mac上に仮想環境を構築し、その中のUbuntuを使います。

個人的に、プログラミングはこれまで5年ほど独学でやってましたがLinuxにもっと触ってみたい、と思っていたのですが仮想環境については抵抗があって始められないでいました。
このコースでは、その辺も含めて丁寧に説明されているので始めてみました。

ここでは、Windowsで仮想環境を作ってUbuntuにLogin出来るところまでを整理しておきます。

仮想環境の作成

事前にViartualBoxをインストールしている人の事例を調べてみると、開発を進めていくうちにその容量は20GB以上になるということで、大きめのMicroSDを用意してその中で構築することにしました。Cドライブに構築したものを、後々移動するということもできるようですが、せっかくなので初めからMicroSDに構築しました。最近のMicroSDのヴォリュームゾーンは64~128GBぐらいですので、この辺の安いものを選択しました。

第2章「準備しよう」の2項 「LinuxというOS」の部分に書かれているものを基本としています。

Chocolateyをインストールします。
chocolatey.org
f:id:s51517765:20200411203920j:plain
公式サイトからリンクを取得してPowerShellでインストールします。
すべて、PowerShellは管理者権限で実行するのが望ましいらしいです。
f:id:s51517765:20200411204150j:plain

ViartualBoxとVagrantをインストールします。
N予備校の講座では、PowerShellからインストールするようになっていますが、インストーラをダウンロードしても多分同じだと思います。
kekaku.addisteria.com

一応、今回構築されたVersionを書いておきます。

Vagrant 2.2.7
VirtualBox Version: 6.0

VirtualBoxが仮想環境を構築するフォルダを変更しておきます。
memories.zal.jp

Windowsを再起動します。

Ubuntuをインストール

ここではMicroSD(Dドライブ)にvagrant\ubuntu64_18というフォルダを作成し、その中に構築します。
・仮想環境を構築したい場所に移動し、
Ubuntuをインストールし、
・仮想環境の設定をし、
Ubuntuを起動します。

$cd D:\vagrant\ubuntu64_18
$vagrant box add ubuntu/bionic64 --box-version 20200130.1.0
$vagrant init ubuntu/bionic64
$vagrant up

ここで、私のPC(HP Envy360)では仮想環境が無効化されていたため、Errorが発生しました。

Stderr: VBoxManage.exe: error: Not in a hypervisor partition (HVP=0) (VERR_NEM_NOT_AVAILABLE).
VBoxManage.exe: error: AMD-V is disabled in the BIOS (or by the host OS) (VERR_SVM_DISABLED)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole

このようなときはBIOSから仮想化を有効にする必要があります。
HPのPCでは起動時にF10を押してBIOSに入ります。
support.hp.com

SSHUbuntuに接続

講座ではSSHターミナルとして、RLoginを使うようになっていますが、私は使い慣れたTeratermを使うことにしました。
kmiya-culti.github.io
s51517765.hatenadiary.jp

SSHで接続するための情報を確認します。

$cd D:\vagrant\ubuntu64_18
$vagrant ssh-config

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2200  
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile D:/vagrant/ubuntu64_18/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

TeratermVagrantのIPに接続します。
f:id:s51517765:20200411210024j:plain
f:id:s51517765:20200411210044j:plain
ID:vagrant
Password:vagrant
です。
秘密鍵は、

D:\vagrant\ubuntu64_18\.vagrant\machines\default\virtualbox\private_key

を指定します。
Portが2222だったり2200だったりしますので、都度合わせる必要があります。

これでUbuntuSSH Loginできたはずです。
早速Ubuntuを使ってみます。

$sudo apt update
$sudo apt install bsdgames
$tetris-bsd

f:id:s51517765:20200411211011p:plain
Teraterm上でテトリスが動きました。

仮想環境のフォルダを変更した場合はこの時点で、1GBぐらいの容量が出来てる場所が意図通りか確認しておきましょう。

まとめ

N予備校のプログラミングコース「【2020年度】プログラミング入門 webアプリ」コースを始めました。
Windows上ではPowerShellを基本的に使用し、UbuntuSSHTeratermを使って操作します。
PowerShellは管理者権限で起動します。

以下に仮想環境の開始・終了の仕方を書いておきます。
仮想環境の開始
$vagrant up

TeratermUbuntuに接続
id :vagrant
pass :vagrant
portは2222だったり2200だったりします。
秘密鍵virtualBoxのフォルダのprivate_keyを指定します。

Ubuntu の終了
$exit

仮想環境の終了
$vagrant halt