はじめに
最近、業務でvagrantを触る機会があり、
なんとなく調べて、とりあえず手順をメモしてコマンドを叩いていましたが、
(さすがにvagrant up
で起動?するのかなくらいはわかります)
せめて何が起きてるのかくらいは知らないとまずそうだなと思い、せっかくなので色々調べてみました。
注意:現時点では、あくまでも情報の整理が目的です。ご了承ください。
参考
以下の記事がわかりやすかったので、これらを元に作成しています。(`・ω・´)
vagrantのできること
- 仮想環境(開発環境)をファイルとして配布、共有できる。
- 機能拡張や、仮想環境のコマンド操作が可能。
vagrantを使ってみる
ダウンロード
下記のサイトから、VagrantとVirtualBoxを簡単にダウンロードできます。
https://www.vagrantup.com/downloads.html
https://www.virtualbox.org/
※VitualBoxは仮想マシンを管理できるソフトのこと
vagrant init 〜作業用ディレクトリでVagrantfileを作成〜
vagrant init
によって、ディレクトリにVagrantfileという設定ファイルが作成されます。
Vagrantfileってなに?
- VMを立ち上げる際のconfigやprovisionを記述するファイルのこと。
- Vagrantfileはデフォルトで多くの設定がコメントアウトされている。
- Vagrantfileは、ひとつのプロジェクトに最低ひとつ必要。
- Rubyで書かれている。
※ちなみにVMとは、Virtual Machine(仮想機械)の略。
Vagrantfileの設定
〜超基本的な設定〜
# Vagrantfile
Vagrant.configure("2") do |config|
# ボックス名を設定。設定したボックスのOSがインストールされる
config.vm.box = "chef/centos-6.6"
# ホスト(PC)からVMにアクセスできるプライベートIPを設定
# VM上でアプリを作ったときに、PCのブラウザからこのIPアドレス(192.168.33.10)を使ってアクセスできる
config.vm.network "private_network", ip: "192.168.33.10"
# 共有フォルダの設定(PCとVMでファイルを共有できる)
# ホストのsync_folderとVMの/home/vagrant/sync_folderをNFSで共有する
config.vm.synced_folder "./sync_folder", "/home/vagrant/sync_folder", type: "nfs"
end
引用:http://ruby-rails.hatenadiary.com/entry/20150719/1437249020#vagrant-setting
Vagrantfileを設定(編集)すればできること
VMを立ち上げる際のboxの指定
IP、ポートの設定
VM立ち上げ時に、自分で書いたシェルスクリプトを走らせる
VM立ち上げ時に、Chef-Soloを実行し開発環境を整える
複数のVMを立ち上げられるようにする
etc...
引用:Vagrantの重要ファイル「Vagrantfile」の読み込みとその周りの挙動をちょっと細かく追ってみた
とりあえずいろいろできる!(`・ω・´)
VM・イメージ(box)を指定
【Vagrant】VirtualBoxにBoxファイルを追加する
ここがわかりやすいです。(`・ω・´)
vagrant up 〜VM(仮想マシン)を起動する〜
Vagrantfileの設定内容が読み込まれて、
VirtualBoxに仮想マシンが作成され、
その上にボックスのOS(例)CentOS 6.4)がインストールされます。
vagrant status 〜VirtualBoxのVMの状態を確認〜
こんな感じで、VMの状態を確認できます。
Current machine states:
default running (virtualbox)
The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.
vagrant ssh 〜仮想マシンにログイン〜
成功するとvagrantアカウントでログインした状態となります。
もしパスワードを聞かれる場合は、vagrant
と入力します。
vagrant halt 〜仮想マシンの停止〜
最後にVagrantのVMを使わないときはCPUやメモリの消費を抑えるために留めておくらしいです。
vagrantの仮想環境でrootユーザーになるには
(2018/06/26追記)
cd [vagrantのある場所。([]は不要)]
vagrant ssh
cd /vagrant/
su root
今後、Vagrantを触っていく機会も増えるかも?なので、
タイミングのいい時に追記していけたらと思います。(`・ω・´)
ご指摘などありましたら、コメントくださると幸いです。