93
95

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vagrantの便利機能メモ

Posted at

『入門Chef Solo』1周読んだ後に、ドットインストール「Vagrant入門」を学習して知った便利機能についてメモ

##1.共有フォルダ

Vagrantの初期化を行ったディレクトリが、仮想OSとの共有フォルダになっている

#Vagrantの初期化を行ったフォルダ
$ pwd
/var/root/centos

#ファイル一覧
$ ls
.vagrant     Vagrantfile  provision.sh

#仮想OSにログイン
$ vagrant ssh

#下記、フォルダが共有フォルダになっている
$ cd /vagrant/

#Vagrantfileがあることがわかる
$ ls
provision.sh  Vagrantfile

#試しにファイルを作成してみる
$ sudo touch test

#仮想OSをログアウト
$ logout

#ホスト側で作成したファイルを確認できた
$ ls
.vagrant     Vagrantfile  provision.sh test

##2.Provisioning
Provisioningで、仮想マシンが立ち上がったあとに実行される処理を指定できる
講義内でも言われてたがChefと機能が被りそうだけど、
プロジェクト内に既存のセットアップシェルなどがあれば、こっちのがお手軽そうではある

####(1)起動時にシェルを実行する
Vagrantfileに以下、設定を追加する
 config.vm.provision :shell, :inline => "コマンド"

#編集
$ vi Vagrantfile
〜中略〜
  # Every Vagrant virtual environment requires a box to build off of.
  config.vm.box = "centos"
  config.vm.provision :shell, :inline => "echo hello world" ← 追加
〜中略〜

#仮想OS起動
$ vagrant up
〜中略〜
[default] -- /vagrant
[default] Running provisioner: shell...
[default] Running: inline script
hello world ← コマンドが実行された

###(2)ファイルを読み込ませる
Vagrantfileに以下、設定を追加する
 config.vm.provision :shell, :path => "ファイルパス"

#ファイル作成
#学習内容通り、Apacheインストールから起動まで
$ vi provision.sh
sudo yum -y install httpd
sudo service httpd start
sudo chkconfig httpd on

#編集
$ vi Vagrantfile
〜中略〜
  # Every Vagrant virtual environment requires a box to build off of.
  config.vm.box = "centos"
  config.vm.provision :shell, :path => "provision.sh" ← 追加
〜中略〜

#仮想OS起動
$ vagrant up

#仮想OSにログイン
$ vagrant ssh

#Apache起動確認
$ sudo service httpd status
httpd (pid  2382) is running...

##3.起動中の仮想サーバからBox作成

#起動中の仮想OSはシャットダウンされてしまうので注意!!
$ vagrant package
[default] Attempting graceful shutdown of VM...
[default] Clearing any previously set forwarded ports...
[default] Creating temporary directory for export...
[default] Exporting VM...
[default] Compressing package to: /private/var/root/centos/package.box

#package.boxが作成されている
$ ls
.vagrant     Vagrantfile  package.box  provision.sh

以上

93
95
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
93
95

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?