Windows の VirtualBox の Vagrant で ubuntu/xenial64 の環境を構築する手順

追記(2018/10/12)

今読むととてもレガシーなことしているので参考の参考程度にしてください。


Windows で VirtualBox を使い、SSH クライアントとして Poderosa 4 や Tera Term や WinSCP を使うことを想定しています。boxはubuntu/xenial64を用います。

ユーザー「ubuntu」でログイン

注意

以下の「初めてのログインをする」部分の記述は、boxにbento/ubuntu-16.04を使った場合には正しくありません。boxにbento/ubuntu-16.04を使った場合、「鍵のみ」ではなく、ユーザ名とパスの組み合わせはvagrant:vagrantで入れました(2017/04/24 現在)。

初めてのログインをする

  • ユーザ名は ubuntu です
  • 鍵のみです
  • 鍵は、Vagrantfile が置いてある場所を基準にして .vagrant/machines/default/virtualbox/private_key にあります*1

root でパスワードログインができるようにする*2

$ sudo passwd root
$ sudo sed -i -e "s/PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config
-> PermitRootLogin prohibit-password の部分を
-> PermitRootLogin yes に修正
$ sudo service sshd restart
$ exit
-> root でパスワードを用いてログインできる

root 用の SSH の鍵を作る*3

Vagrantfileconfig.vm.synced_folderを適切に設定していないと、Windows とのファイルの受け渡しができませんので注意です。

# ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa
-> パスフレーズは空っぽ
# mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
# cp ~/.ssh/id_rsa /vagrant
-> Vagrantfile がある Windwos のフォルダに id_rsa が持ってこられたのでこれを SSH ログイン時の鍵としましょう

root は password ではログインできないように元に戻す

先ほど編集した操作と逆の操作です。

$ sudo sed -i -e "s/PermitRootLogin yes/PermitRootLogin prohibit-password/g" /etc/ssh/sshd_config
-> PermitRootLogin yes の部分を
-> PermitRootLogin prohibit-password に修正
$ sudo service sshd restart
$ exit

タイムゾーン変更(JST)

# timedatectl set-timezone Asia/Tokyo

apt-get update しておく

# apt-get update

日本語化

# apt-get install -y language-pack-ja language-pack-ja-base
# update-locale LANG=ja_JP.UTF-8
# source /etc/default/locale

入れていくもの(重複もありますがお好みで)

# apt-get upgrade -y
# apt-get install -y manpages-ja manpages-ja-dev
# apt-get install -y build-essential
# apt-get install -y emacs
# apt-get install -y apache2
# apt-get install -y mysql-server
# apt-get install -y sqlite3 libsqlite3-dev
# apt-get install -y software-properties-common
# apt-get install -y wget curl zip unzip git
# apt-get install -y php
# apt-get install -y php-mysql php-dev php-curl php-fpm php-xml php-mbstring libapache2-mod-php 
# apt-get install -y default-jre

上記を全てまとめて入れるのは以下で。

# apt-get install -y manpages-ja manpages-ja-dev build-essential emacs ruby ruby-dev bundler apache2 mysql-client mysql-server sqlite3 php software-properties-common wget curl zip unzip git python php-mysql php-dev php-curl php-fpm php-xml php-mbstring libapache2-mod-php nodejs default-jre

Itamaeる

手順が固まったら Itamaeる といいかもしれませんね。

(参考)日本語環境確認

# locale
LANG=ja_JP.UTF-8
LANGUAGE=
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=

*1:vagrant ssh-config コマンドでわかります

*2:推奨はされません

*3:sudo で作る方が簡単です

Powered by はてなブログ