ようやくVagrantを使ってみる。いつの間にかVMWareって下火になってたの?
以下をインストール
- VirtualBox https://www.virtualbox.org/wiki/Downloads
- VirtualBox Extension Pack https://www.virtualbox.org/wiki/Downloads *1
- Vagrant https://www.vagrantup.com/
Boxファイルを追加
イメージファイルみたいなものが配布されているらしい。 A list of base boxes for Vagrant - Vagrantbox.es 以下、DOSのコマンドプロンプトで
$ vagrant box add ARTACK/debian-jessie https://atlas.hashicorp.com/ARTACK/boxes/debian-jessie
このときの名称の、ARTACK/debian-iessieは固定らしくて、変更するとダメだった。でも、他のboxでは名称変更を許してるのもあった。このあたりは、boxのメタデータにでも入ってるんだろう。
最小サイズのDebianが欲しかったのでこちらをadd Debian Jessie 8.1.0 Release x64 (Minimal, Guest Additions 4.3.26))
追加できたことを確認
$ vagrant box list ARTACK/debian-jessie (virtualbox, 8.1.0)
適当なフォルダを作って、そこで展開する。
仮想イメージをコピー
$ vagrant init ARTACK/debian-iessie
仮想マシンを起動
$ vagrant up
sshで接続
どうもデフォルトでは、
host: 127.0.0.1 port: 2222 login: vagrant password: vagrant root: vagrant
で接続できる。んだけど、これって複数マシンを起動したい場合はどうするんだろう・・・。 VMWareだとネットワークセグメント変えてたんだけど、それはそれで結構面倒だった記憶あって、デモそのおかげでマシン内ネットワークとか組めてたりで、ただ開発環境だけならこれでいいのかもと思ったり。Vagrantって特に開発環境の共有っぽいのが目的らしく、それだと127.0.0.1使うのが正義よね。。。
接続用のSSHキーを作成
$ vagrant ssh
これ、何をやってるのか最初わからず、すっ飛ばしてたんだけど、単にsshで接続するってこと。
なんか、vagrant up時に「 default: Warning: Authentication failure. Retrying...」ってエラーが出続けて起動はしてるんだけど不思議で、なんだろうと思ったら Vagrant で作った VM にやってはいけない2つのこと - Qiitaによると、
使用する box ファイルにもよるのかもしれませんが、vagrant up や vagrant halt 等のコマンドは内部的に「公開鍵認証による VM への SSH 接続」を行っているようです。その際に使用している秘密鍵のありかは、VM が立ち上がっている状態で vagrant ssh-config すると確認できます。
ということ。
んー、でも起動できてるしhaltも効くしな・・・と思ってたけど、とりあえず気持ち悪いのでvagrantユーザで仮想マシンにログインしてssh-keygenした後に $vagrant ssh-config で表示されるプライベートキーの置き場にssh-keygenで作ったプライベートキーをおき、仮想マシン側の /home/vagrant/.ssh/authorized_keys に公開鍵を設置。sshクライアントは・・・・cygwinで $vagrant sshするとログインできた。
同様に、cygwinで $vagrant up/halt もエラーなくできていることを確認。
ついでにsambaでファイル共有まで
ググるとVagrantfileをいじって、config.vm.synced_folderをどうこうして~ってあるんだけど、どうもうまくいかない。。。。しかも、なんかsmb遅いとか85%くらいしか信頼性無いとか書かれてて、あわわわ。。。
もーええわーと、ホストのIPアドレスを変更ネットワークアダプタ見て
ネットワークセグメントが192.168.56.1なので、
config.vm.network "private_network", ip: "192.168.56.10"
ってVagrantfileを変更。これでvagrant upするとゲストのIPアドレスが変わってる。。。これは便利。*2
あとは
- ゲストOSにsambaインストール
- root@debian:~# pdbedit -a vagrant でvagrantユーザー追加*3
- /etc/samba/smb.conf の[global]でsecurity = user、[home]で read only = no / create mask = 0644 / directory mask = 0755 に変更
- /etc/init.d/smb restart
であとはWindowsから
ってアクセスして、ID: WORKGROUP\vagrant PASS: vagrantでオッケー。普通のsambaだからカバレッジも100%近いと思うんだけどなぁ。