Help us understand the problem. What is going on with this article?

Vagrant

More than 5 years have passed since last update.

パッケージのダウンロード/インストール

INSTALLING VAGRANT

  • ダウンロードページから環境に合ったパッケージをダウンロード。
  • ダウンロードしたパッケージをダブルクリックしてインストール。

Box の追加

BOXES

  • このあたりから任意の Box を探して URL をコピーしておく。
  • Terminal で以下のコマンドを実行。
$ vagrant box add --name centos65 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box

プロジェクトの作成

PROJECT SETUP

  • プロジェクトのルートディレクトリを作成
$ 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"

プロジェクトのカスタマイズ

VAGRANTFILE

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
haru
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away