タイトルのような環境を構築します。ホストOSはWindows10です。

目次

  1. 環境
  2. VagruntBoxのダウンロード
  3. ネットワーク設定
    1. とりあえずバージョンアップしてみる
    2. VirtualBoxのネットワーク設定
    3. ドメインを設定する
    4. ポートフォワーディング
  4. プロセッサー数を変更する
  5. ターミナルで接続する
  6. Ubuntuの初期設定
    1. パッケージリストの更新
    2. パッケージの更新
    3. sysv-rc-confのインストール
    4. vimのインストール

環境


  • Windows 10
  • VirtualBox 5.0.2
  • Vagrunt 1.7.4 1.8.4
  • Ubuntu 16.04

VirtualBoxとかVagrantとかのインストール等については割愛します。

VagruntBoxのダウンロード


ダウンロードと言ってよいのかどうかわかりませんが、VagruntBoxはネットにコロコロ転がっているのでそれを利用します。ただ、野良VagruntBoxを使うのは怖いのでChef社が配布しているものを使います。

※初めHashiCorpと書いてたのですが間違ってました。ただ、Chef社のものもGitHubにコードは上がっていますし信用できる配布元だと思います。

適当にディレクトリを作って、そこでcmdから上記リンク先に記載されているコマンドを実行します。
具体的には下記の通り。

1
vagrant init bento/ubuntu-16.04

終わったら、次のコマンド。
初回はBoxのダウンロードがはじまります。

1
vagrant up --provider virtualbox

で、これがメチャクチャ時間かかった…3時間くらい…会社でやったら一瞬だったので、油断してたんだけど…

ネットワーク設定


ここまで終わったら、次にネットワークの設定を行います。今回は家で使うだけなので、private networkで構築。Vagrantfileの次の個所のコメントを外します。

1
config.vm.network "private_network", ip: "192.168.33.10"

メモリのところも外します。メモリは1024MBで設定します。これは、今後入れる予定の「GitLab」の動作要件を満たすためです。何を動かすかにもよりますが、DBとか動かさないのであれば512MBでも動作します。

1
2
3
4
5
6
7
  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 = "1024"
end

後はvagrant upで起動するだけ…

1
2
3
4
5
6
7
8
9
10
11
12
13
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Configuring and enabling network interfaces...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

/sbin/ifdown eth1 2> /dev/null

Stdout from the command:

Stderr from the command:

mesg: ttyname failed: Inappropriate ioctl for device

エラーがでました…ダメでしたね…
正確には起動しているものの、前述で設定したIPで接続できません。

とりあえずバージョンアップしてみる

Vagrantを1.7.4 → 1.8.4 にあげたらあっさり解決しました。
原因はこのIssueっぽい。つい先日なおってますね。

ちなみに、SSH command responded with a non-zero exit statusとかで調べたら原因を解説してる記事とかが結構出てきます。下記のサイトがかなり詳しく説明してくださってます。(記事は古いですが、おそらく同じ原因です。)

参考サイト

【解決した】VagrantでCentOS7のVMを作ったらネットワーク設定でコケた(固定IP割り当てに失敗)

VirtualBoxのネットワーク設定

これで、puttyから192.168.33.10で接続すれば…というわけにはいかなかった。
VirtualBox側でも設定する必要があります。今回はホストオンリーアダプターを設定。

詳しくは下記のサイトが参考になります

よく使うVagrantfileの設定のまとめ

ドメインを設定する

ドメインを設定するには次一行を追加します。
今回はlocal.mygrantという名前にします。

1
config.vm.hostname = "local.mygrant"

次に、hostsファイルに次の一行を足します。
hostsファイルの場所はC:\Windows\System32\drivers\etcです。

1
192.168.33.10     local.mygrant

hostsファイルはそのままでは保存できないので、一回別の場所で編集してからコピーして上書き保存します。

ポートフォワーディング

他のマシンからゲストOSにアクセスしたりするにはポートフォワーディングを使います。
例えば下記の設定だと、ホストOSの8080番にアクセスするとゲストOSの80番が表示されます。

1
config.vm.network "forwarded_port", guest: 80, host: 8080

会社とかで他のマシンのゲストOSにアクセスする場合とかに使うと思います。

プロセッサー数を変更する


プロセッサー数を変更するには前述のメモリ設定を行ったところに次の一行を追加します。
なお、デフォルト(何も指定しない)場合は1です。

1
2
3
4
5
6
7
8
  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 = "1024"
vb.cpus = "2" //これを追加する
end

ターミナルで接続する


ここまでくればターミナルで192.168.33.10ポート22で接続できるはずです…
私はputty使ってます。

ちなみに、IPを割り当てない場合は127.0.0.1ポート2222で接続できます。
ログイン、パスワードはともにvagrantです。

Ubuntuの初期設定


とりあえず、以下だけやりました。

パッケージリストの更新

1
$ sudo apt-get update

パッケージの更新

1
$ sudo apt-get upgrade

sysv-rc-confのインストール

Ubuntuではchkconfigがないのでその代わりです。

1
$ sudo apt-get install sysv-rc-conf

vimのインストール

普段vimを使っているのでVimを入れます。
なお、vimをインストールするとvi実行時にvimが起動するようになります。

1
$ sudo apt-get install vim

以上です。
さてと、入れたいもの入れてみますか。