Vagrantで複数台の仮想マシンを立ち上げて、それぞれにsshアクセスできるようにするまでの方法です。
Vagrantのインストールと使い方と基本的な使い方についてはVagrantのインストールと使い方を先に参照します。
複数台立ち上げる方法は、公式サイトのMulti-Machineを参照します。
ポートフォワードの設定は、公式サイトのForwarded Portsを参照します。
環境
macOS Sierra 10.12.6
Vagrant 2.0.0
複数台立ち上げる場合のVagrantfile
今回はアプリケーションサーバ2台と、DBサーバ1台の合計3台を用意したいと思います。 Vagrantfileの内容を以下のようにします。 gusetにはsshの22版、hostは3台が被らないようなポート番号を指定します。
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "bento/centos-7.3"
config.vm.define "app1" do |app|
app.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2223
end
config.vm.define "app2" do |app|
app.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2224
end
config.vm.define "db" do |db|
db.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2225
end
end
3台を一度に立ち上げたり、終了したりする場合は、何も指定せず普通にコマンドを打ちます。
$ vagrant up
$ vagrant halt
特定の1台だけを操作したい場合は、仮想マシン名を指定してコマンドを打ちます。
$ vagrant up app1
$ vagrant halt app1
VirtualBoxマネージャーを開けば、3台の仮想サーバが立ち上がっている様子をUI上で確認することもできます。
$ virtualbox
sshの設定
vagrant ssh-config app1
を打つと、app1のssh設定が表示されます。
$ vagrant ssh-config app1 --host app1
Host app1
HostName 127.0.0.1
User vagrant
Port 2223
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/misa/myVagrant/centos73/.vagrant/machines/app1/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
app1のssh設定を~/.ssh/config
に追加しておきます。
$ vagrant ssh-config app1 --host app1 >> ~/.ssh/config
app1にsshでアクセスできるようになります。
$ ssh app1
app2とdbもsshで接続できるように追加しておきます。
$ vagrant ssh-config app2 --host app2 >> ~/.ssh/config
$ vagrant ssh-config db --host db >> ~/.ssh/config
以上です。