MacにVagrantでLinux(Ubuntu)を入れてSSHで接続する方法

みなさんこんにちわ!

みなさんは仮想環境ってご存知でしょうか?

仮想環境とは簡単に言えば【1つのPCの中に複数のOSを入れる】というものです。

仮想環境を使えば

MacにWindowsを入れる

WindowsにLinuxを入れる

なんていうことも出来てしまいます!

仮想環境を使うと、「普段はデザインをやっているからMacを使うけど、たまーにOfficeソフトを使いたい…でもそのために別のPCを買うのはなぁ…」とか「サーバーがLinuxで動いているから、開発環境でもLinux使いたい!」といった状況に柔軟に対応できるようになります!

ワンポイント用語解説

OS:パソコンはあくまでも「すんごい性能のただの計算機」。パソコンだけでは何かを動かすことはできない。OSはパソコンの計算力を使って、アプリを起動したり、画面を表示したり、音を出したりしてくれる

仮想環境:一つのPCでもう一つのPCを仮想的に構築すること。複数のOSを使い分けれる

Linux:OSの一種。サーバー向けのものや軽量のものなど様々な種類(ディストリビューション)がある

Ubuntu:UNIXからLinux、Debianと派生してDebianを元に作られたOSのこと

MacでLinuxを使うには?

仮想環境を構築する流れは「VirtualBoxとVagrantインストール、それらを使って仮想環境を構築、その中にUbuntuをインストール」の様な感じになります!

仮想環境構築ツール(VirtualBox)のインストール:ここからダウンロード(Macなら、VirtualBox 5.2.XのOS X hosts Intel Macs)してインストール

VirtualBoxの操作を簡単にしてくれるツール(Vagrant)のインストール:ここからダウンロードしてインストール

完了したらターミナルでの作業になります!

# 「ubuntu」というディレクトリを作成して、そこに移動
$ mkdir -p ~/vagrant/ubuntu
$ cd ~/vagrant/ubuntu

# vagrantを実行してUbuntuをダウンロードした後、仮想環境にインストール
# 10分程度かかる
$ vagrant box add ubuntu/xenial64 https://vagrantcloud.com/ubuntu/boxes/xenial64/versions/20170929.0.0/providers/virtualbox.box

# インストール完了後、仮想マシンの設定ファイルを作成
$ vagrant init ubuntu/xenial64

# 仮想環境のUbuntuを起動
$ vagrant up

これでMacへのLinux(Ubuntu)のインストールが完了しました!

インストールしたUbuntuにはSSHで接続して操作を行なっていきます!

ワンポイント用語解説

コンソール:コンソールを「普通の 1 つのアプリケーション」として考えてはいけない。「コンソールを操作する」のではなく、「コンソールで他のアプリケーションを操作していく」

カレントディレクトリ:現在開いているディレクトリ。コンソールで入力するコマンドは基本的にカレントディレクトリを操作するものが多い

ホームディレクトリ:「~(チルダ)」の記号が示すパス

SSH:Secure Shellの略。暗号や認証の技術を利用して安全に、外部のコンピューターと通信する仕組みのこと

macとUbuntuをSSHで接続

MacにはSSHのクライアントが標準で入っているため、vagrantのコマンドですぐに接続することが可能です!

vagrant up後にvagrant sshで接続可能です。

vagrant upは仮想環境の電源を入れるような意味のコマンドで、これをしなければ当然SSHでの接続はできないので注意してください。

ちなみに、SSHでの接続を切断はexit、仮想環境を終了はvagrant haltで出来ます。

vagrantの基本的な使い方についてはこちらを参考にしました→Vagrantの使い方

接続が完了したら、Ubuntuを日本語化しましょう!

# Ubuntuを日本語化
$ sudo locale-gen ja_JP.UTF-8
$ echo export LANG=ja_JP.UTF-8 >> ~/.profile
$ source ~/.profile

共有フォルダを利用できるようにしてみる(winだとやり方が違うので注意)

仮想環境は、普段使用しているPCとは切り分けられているため、ファイルなどをみるときには、いちいち仮想環境を起動させる必要があります。

また、本記事ではPCの処理能力を落とさないように、UbuntuはGUIで操作しておりますので、コマンドを入力してコンソールからファイルを確認しなければなりません。

そこで、この手間を省くためにMacとUbuntuの共有ディレクトリを作成していきます。

# ubuntuフォルダの中にworkspaceフォルダを作成
$ cd /Users/{Macのログイン名}/vagrant/ubuntu
$ mkdir workspace

/Users/${あなたのMacログイン名}/vagrant/ubuntu/Vagrantfileをエディターで開く

47行目前後にあるコメントがない行に
config.vm.synced_folder "./workspace", "/home/${Ubuntuのユーザ名}/workspace"を追加

※pwdコマンドを入力した際に/home/ubuntuと入力された環境の場合、ユーザ名はubuntuである。

vagrantを再起動させる

cd ~/vagrant/ubuntu
vagrant reload
vagrant ssh

これでUbuntuのworkspaceディレクトリとMacのworkspaceディレクトリが同期されました!

お疲れ様でした!