回答編集履歴
1
全体的に改修
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
Vagrantの機能や思想に関して解説していきます。
|
2
2
|
|
3
3
|
|
4
4
|
|
@@ -10,15 +10,83 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
+
プラグインさえあればどんな仮装マシンでも動きますし、仮想マシンじゃないものも動かせます。
|
14
|
+
|
15
|
+
例えばAWSのプラグインもあり、AWSのアカウント情報を使い`vagraant up`と共にクラウド上のAWSのEC2を借りて立ち上げる事も可能です。
|
16
|
+
|
17
|
+
(もちろん後日AWSのEC2インスタンスの代金を請求されます)
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
---
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
もし貴方がVirtualBoxの操作に長けたエキスパートであれば、
|
26
|
+
|
27
|
+
「Vagrantなんてものは不要だぜ!」という考えになるかもしれません。
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
その場合でも、Vagrantの一番の強みはサーバーの構成情報がVagrantfileに全て書いてあることです。
|
32
|
+
|
33
|
+
環境構築に必要な手順はしっかりVagrantfileに書きましょう。
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
[Infrastructure as Code](https://ja.wikipedia.org/wiki/Infrastructure_as_Code)とか呼ばれている奴です。
|
38
|
+
|
39
|
+
もう環境構築手順書とかいうすぐ古くなって使えなくなるドキュメントを作る必要はありません。
|
40
|
+
|
41
|
+
もし新しくメンバーがジョインしたとしても、「Vagrantfileでも見とけ」と言えばその日の内に環境構築が終わり開発に参加出来ます。
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
---
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
Vagrantの理想は`vagrant up`を実行し、
|
50
|
+
|
51
|
+
コーヒーを淹れて戻って来たときには全ての環境構築が完了していることです。
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
決して`vagrant up`を行った後に`vagrant ssh`で仮想マシン内へアクセスし、
|
56
|
+
|
57
|
+
`yum install PackageName`を打ち込む事ではありません。
|
58
|
+
|
59
|
+
そういったものはVagrantのプロビジョニングでやってください。
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
仮想マシンの良さはすぐに潰して新しく立ち上げる事が可能な砂場にあります。
|
64
|
+
|
65
|
+
気軽に`vagrant destroy`からの`vagrant up`で復旧できるよう、
|
66
|
+
|
67
|
+
常にプロビジョニング用のファイルを最新状態に保つよう努力しましょう。
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
以上、ここまでがVagrantの思想・基本になります。
|
72
|
+
|
73
|
+
以下は質問内容に関して抜粋し、一問一答形式でコメントしました。
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
---
|
78
|
+
|
79
|
+
|
80
|
+
|
13
81
|
> Vagrantfile内の「config.vm.synced_folder "../data", "/vagrant_data"」がどのように機能しているかがわかりません…
|
14
82
|
|
15
83
|
|
16
84
|
|
17
|
-
|
85
|
+
VagrantはデフォルトではあVirtualBoxのプラグインを持っており、
|
18
86
|
|
19
|
-
|
87
|
+
VirtualBoxの共有フォルダ機能を間借りしてディレクトリの共有を行います。
|
20
88
|
|
21
|
-
|
89
|
+
なので`vagrant up`で立ち上げた仮想マシンをVirtualBoxの設定画面で確認すれば、「共有フォルダ」機能の箇所にVagrantfileで指定したディレクトリの共有設定が反映されているはずです。
|
22
90
|
|
23
91
|
|
24
92
|
|
@@ -28,40 +96,12 @@
|
|
28
96
|
|
29
97
|
Vagrantにはプロビジョニングという側面もあります。
|
30
98
|
|
31
|
-
|
99
|
+
しかしVirtualBoxのような仮想マシンは専用のHDDファイルをマウントする思想で作られている為、
|
32
100
|
|
33
|
-
|
101
|
+
ホストマシンとゲストマシンのファイルの受け渡しは出来ません。
|
34
102
|
|
35
103
|
|
36
104
|
|
37
|
-
|
105
|
+
どうやってプロビジョニング用のファイルを持ち込めばいいんだ…
|
38
106
|
|
39
|
-
AnsibleのPlaybook等が入っていてそれを実行するだけのシンプルな作りになっているはずですが…
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
107
|
+
このためにvagrant_dataに関しては設定しなくても勝手に共有される仕組みになっています。
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
---
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
VirtualBox等の完全な仮想マシンを作る際、
|
52
|
-
|
53
|
-
HDD内に仮想HDDとかいう箱を作って使う必要があります。
|
54
|
-
|
55
|
-
なのでファイルの共有がし辛いわけですね。
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
VirtualBoxではそのために共有フォルダという仕組みが有り、
|
60
|
-
|
61
|
-
Vagrantfileに記述することでラッピングして使う事が出来るわけですが、
|
62
|
-
|
63
|
-
別にVirtualBoxの共有フォルダ機能を使わなくても、rsync等を利用したり、sambaやNFSを利用してファイル共有を行う設定も存在します。
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
VirtualBoxの共有フォルダ機能に不満が出てきたらお試し下さい。
|