Help us understand the problem. What is going on with this article?

Windows10 + Vagrant + Ubuntu16.04 で環境構築

More than 1 year has passed since last update.

Ⅰ. 目的

LANからアクセス可能なUbuntu16.04の仮想環境を作成します。
仮想マシンへのログインは公開鍵認証を用い、パスワード認証は禁止とします。

Ⅱ. 環境

  • Windows10
  • Vagrant 1.9.3
  • VirtualBox 5.1.18
  • Ubuntu 16.04

Ⅲ. 使用するツールのインストール

1. VirtualBox

Download VirtualBoxでインストーラを取得します。
Windows環境にインストールするので Windows hosts のリンクをクリックし、インストーラをダウンロードします。

2. Vagrant

Download Vagrantでインストーラを取得します。
Windows環境にインストールするので「Windows」ラベルの下にある Universal (32 and 64-bit) のリンクをクリックし、インストーラをダウンロードします。

3. PuTTY

Download PuTTYでインストーラを取得します。
Windows環境にインストールするので「MSI (‘Windows Installer’)」ラベルの下にあるインストーラ(32bit,64bitいずれかを選択)のリンクをクリックし、インストーラをダウンロードします。

Ⅳ. Vagrant環境構築

1. Vagrant用のフォルダを作成

Vagrant用に任意のフォルダを作成します。
このフォルダにはVagrantの設定ファイルなどを格納します。
今回は C:\vagrant フォルダを作成しました。

2. UbuntuのBoxの入手と初期化

ⅰ. 作成したフォルダに移動してコマンドプロンプトを起動
ⅱ. Vagrantの初期化

以下のコマンドで行います。

C:\vagrant> vagrant init bento/ubuntu-16.04

Boxファイルは chef/bento で公開されているものを使用させていただきます。

ⅲ. BoxのダウンロードとVagrant起動

以下のコマンドで行います。

C:\vagrant> vagrant up --provider virtualbox

イメージのダウンロードと仮想マシンの起動が行われます。

3. 作成した環境にSSH接続

コマンドプロンプト上で vagrant ssh コマンドを打つと、以下の画面が表示されます。

Host: 127.0.0.1
Port: 2222
Username: vagrant
Private key: C:/vagrant/.vagrant/machines/default/virtualbox/private_key

puttyなどで上記の接続先にアクセスし、ログインできることを確認します。
初期設定では username, password ともに vagrant です。

4. 設定ファイルの編集

起動を確認後、以下のコマンドで仮想マシンを止めて設定ファイルを編集します。

C:\vagrant> vagrant halt

ここまでの作業で作成し、コマンドプロンプトを動かしていた場所 C:\vagrant フォルダ内に Vagrantfile というファイルがあるので、メモ帳などで開きます。

ⅰ. ネットワーク設定(固定IPアドレス割当)

public_network の行のコメントアウトを外すことで、ホスト以外からもアクセスすることができます。
コメントアウトを外すだけだと、DHCPでIPアドレスが変更されてしまうので、固定IPを設定しています。
今回は 192.168.1.111 を仮想マシンに割り当てることとします。

  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
   config.vm.network "public_network", ip: "192.168.1.111"
ⅱ. VirtualBoxメモリ、CPU数変更

メモリとCPU数も変更します。
vb.memory がメモリ、 vb.cpus がCPU数です。

  # Provider-specific configuration so you can fine-tune various
  # backing providers for Vagrant. These expose provider-specific options.
  # Example for VirtualBox:
  #
   config.vm.provider "virtualbox" do |vb| ← ココのコメントアウトを解除
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
     vb.memory = "2048"
     vb.cpus = "2"
   end ← ココのコメントアウトも解除

Ⅴ. Ubuntuの設定変更

1. ユーザを作成

vagrant ユーザでログインするのは好ましくないので、ユーザを作ります。
以下のコマンドを入力し、パスワードなど諸々の情報を入れてユーザを作成します。

$ sudo adduser user_name

2. sudo 権限付与

以下のコマンドで作成したユーザにsudo権限を付与します。

$ gpasswd -a user_name sudo

3. 公開鍵ログイン環境構築

ⅰ. .sshフォルダ作成

以下のコマンドでユーザのホームディレクトリの配下に .ssh フォルダを作成し、アクセス権を変更します。

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
ⅱ. authorized_keys作成

以下のコマンドで authorized_keys ファイルを作成し、アクセス権変更します。

$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
ⅲ. 鍵ペア作成

PuTTYgen で鍵ペアを作成します。
大まかな流れは以下です。

  1. 鍵のbit数を選択
  2. アプリの上部の四角い枠内でグリグリとマウスカーソルを動かす
  3. プログレスバーが100%まで行くと鍵生成が完了
  4. さっきまでグリグリしていたところに公開鍵が表示されるので、コピーしてメモ帳などに貼り付ける

詳細な作成方法はPuTTYgenで公開鍵/秘密鍵を作成するをご参照ください。
(丁寧な説明をしてくださっている、外部サイトに飛びます)

ⅳ. authorized_keys編集

以下のコマンドで authorized_keys を編集します。

$ vi /home/user_name/.ssh/authorized_keys

i でインサートモードに入り、右クリックで貼り付けて :wq で保存して閉じます。

ⅴ. sshd設定の変更(rootログイン禁止、公開鍵認証許可)

/etc/ssh/sshd_config に設定が記載されています。
編集前には以下のようにしてバックアップを取ります。

$ cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.orig

以下のコマンドで設定ファイルを編集します。

$ sudo vi /etc/ssh/sshd_config

以下の行を編集し、:wqで保存して閉じます。
PermitRootLogin no ← rootログイン禁止
PubkeyAuthentication yes ← 公開鍵認証許可

編集完了後、以下のコマンドでssh再起動をします。

$ sudo service ssh restart
ⅵ. puTTyで鍵認証を設定

PuTTYのログインで公開鍵を使う設定を行います。
大まかな流れは以下です。

  1. PuTTY のSSH認証のオプションに秘密鍵を登録する
  2. Pagent に登録する(登録すると便利)

詳細な設定方法は公開鍵認証によるSSH接続 - PuTTYの使い方をご参照ください。
(丁寧な説明をしてくださっている、外部サイトに飛びます)

ⅶ. sshd設定変更(パスワードログインの禁止)

鍵認証によるログインに成功後、以下のコマンドで設定ファイルを編集します。

$ sudo vi /etc/ssh/sshd_config

以下の行を編集し、:wqで保存して閉じます。
PasswordAuthentication no ← パスワード認証禁止

編集完了後、以下のコマンドでssh再起動をします。

$ sudo service ssh restart

Ⅵ. トラブルシューティング

1. vagrant up 時に guest additions 警告が表示される

vagrant-vbguestを使用して対応します。

ⅰ. インストール

以下のコマンドでインストールします。

C:\vagrant> vagrant plugin install vagrant-vbguest
ⅱ. 使用方法

以下のコマンドを実行します。

C:\vagrant> vagrant vbguest

コンソールに情報が表示され、しばらくするとguest additionsの更新が完了します。
更新完了ののち、以下のコマンドで再起動を行ってエラーが起きないことを確認します。

C:\vagrant> vagrant halt
C:\vagrant> vagrant up

Ⅶ. 参考にさせていただいたリンク

watame
主に自分の備忘録を記載しています。間違いなどあれば指摘いただけると嬉しいです!
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした