パッケージのダウンロード/インストール
- ダウンロードページから環境に合ったパッケージをダウンロード。
- ダウンロードしたパッケージをダブルクリックしてインストール。
Box の追加
- このあたりから任意の Box を探して URL をコピーしておく。
- Terminal で以下のコマンドを実行。
$ vagrant box add --name centos65 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
プロジェクトの作成
- プロジェクトのルートディレクトリを作成
$ mkdir -p ~/Developments/vagrant/centos65
- Vagrantfile を作成
$ cd ~/Developments/vagrant/centos65
$ vagrant init centos65
まずやること
- 新規作成した VM にはデフォルトで vagrant ユーザが存在しており、vagrant ssh コマンドによりログイン出来るようになっている。
- また、root ユーザのデフォルトパスワードは 'vagrant' に設定されているので、ログイン後に必要に応じて変更しておく。
- デフォルトでホストOS のプロジェクトルートディレクトリ (ここでは ~/Developments/vagrant/centos65) がゲストOS の /vagrant にマウントされる。
VM の初回起動
$ cd ~/Developments/vagrant/centos65
$ vagrant up
(プロンプトが返って来るまでしばらく待つ)
$ vagrant ssh
[vagrant@vagrant-centos65 ~]$ su -
Password:
[root@vagrant-centos65 ~]#
タイムゾーンを JST に変更
# cp /usr/share/zoneinfo/Japan /etc/localtime
remi リポジトリの追加
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
パッケージの最新化
# yum update
便利パッケージのインストール
# yum install colordiff wget vim-enhanced
デフォルトログインユーザの変更
vagrant ssh コマンド実行時のログインユーザはデフォルトで vagrant ユーザになっているが、
これを任意のユーザに変更したい場合は以下の手順を実行する。
- 新規ユーザ / 新規グループの作成
[vagrant@vagrant-centos65 ~]$ sudo groupadd centos
[vagrant@vagrant-centos65 ~]$ sudo useradd -g centos centos
- /etc/sudoers の設定
[vagrant@vagrant-centos65 ~]$ sudo visudo
(最下行に以下を追記)
centos ALL=NOPASSWD: ALL
- SSH キーペアの生成 (ホストOS で作業)
$ cd ~/.ssh
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxxx/.ssh/id_rsa): vagrant_rsa.key <--- 任意の秘密鍵ファイル名を入力
Enter passphrase (empty for no passphrase): <--- そのまま Enter
Enter same passphrase again: <--- そのまま Enter
Your identification has been saved in vagrant_rsa.key.
Your public key has been saved in vagrant_rsa.key.pub.
The key fingerprint is:
f8:21:d6:40:34:de:4f:a1:17:03:39:a7:af:1d:76:eb xxxxx@xxxxxx
The key's randomart image is:
+--[ RSA 2048]----+
| .+ .o+ |
| o oo..+ |
| o o+o |
| +.+ |
| + S.. |
| . o .+ . |
| .+ o . |
| . . . |
| .E |
+-----------------+
$
- SSH 公開鍵を共有フォルダにコピー (ホストOS での作業)
$ cp ~/.ssh/vagrant_rsa.key.pub ~/Developments/vagrant/centos65/
- SSH 公開鍵の登録 (ゲストOS での作業)
[vagrant@vagrant-centos65 ~]$ sudo su - centos
[centos@vagrant-centos65 ~]$ mkdir -m 700 ~/.ssh
[centos@vagrant-centos65 ~]$ cat /vagrant/vagrant_rsa.key.pub >> ~/.ssh/authorized_keys
[centos@vagrant-centos65 ~]$ chmod 644 ~/.ssh/authorized_keys
- SSH 秘密鍵の登録 (ホストOS での作業)
$ vi ~/Developments/vagrant/centos65/Vagrantfile
config.ssh.username = "centos"
config.ssh.private_key_path = "~/.ssh/vagrant_rsa.key"
プロジェクトのカスタマイズ
vagrant init でプロジェクトのルートディレクトリに作成された Vagrantfile で、以下の設定が可能になる。
ポートフォワーディング
- ホストOS の port:8080 をゲストOS の port:80 に転送する場合
config.vm.network "forwarded_port", guest: 80, host: 8080
プライベートネットワーク
- ゲストOS に 192.168.33.10 の IP を割り当てる場合
config.vm.network "private_network", ip: "192.168.33.10"
共有フォルダ
- ホストOS の ~/data ディレクトリを、ゲストOS の /vagrant_data にマウントする場合
config.vm.synced_folder "~/data", "/vagrant_data", owner:"centos", group:"centos"
VM のホスト名
config.vm.hostname = "vmhost01"
SSH ログインユーザ
config.ssh.username = "vmuser"
SSH 秘密鍵
config.ssh.private_key_path = "~/.ssh/vmuser_rsa.key"
基本操作 (とりあえずこれだけあれば困らない程度)
- VM 起動
$ vagrant up
- VM 停止
$ vagrant halt
- VM 再起動
$ vagrant reload
- VM ステータス確認
$ vagrant status
- SSH ログイン
$ vagrant ssh
- Box 追加
$ vagrant box add --name <box_name> <url>
- Box 一覧
$ vagrant box list