回答編集履歴

1

全体的に改修

2019/01/30 09:36

投稿

miyabi-sun
miyabi-sun

スコア21158

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
- `vagrant up`の一番最初でVirtualBoxの仮想マシンを生成した際に
85
+ VagrantはデフォルトはあVirtualBoxのプラグインを持っており
18
86
 
19
- デフォルト状態ではVirtualBoxの共有フォルダ機能を間借りしてディレクトリの共有を行います。
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
- その思想上、Vagrnatで立ち上げたマシン内でApacheをンストーしてMySQLールし…みたな事はしません。
99
+ しかしVirtualBoxのような仮想マシンは専用のHDDファイルをマウントする思想で作られている為、
32
100
 
33
- 初回の`vagrant up`同時に同梱のプロビジョニングが走り、仮想マシンが使えるようになったタミングで既にApacheやMySQLがインストー済みになっているべきという思想です
101
+ ホストマシンゲストマシンのファイルの受け渡しは出来ません
34
102
 
35
103
 
36
104
 
37
- まぁ、これはVagrantfileと同じディレクトリになんかシェルスクリプトファイルなり、
105
+ どうやってプロビジョニング用のファイルを持ち込めばいいんだ…
38
106
 
39
- AnsibleのPlaybook等が入っていてそれを実行するだけのシンプルな作りになっているはずですが…
40
-
41
-
42
-
43
- そんなわけで、vagrant_dataはVagrantファイル記述しなくても勝手に共有されるになる裏機能みたなもんです。
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の共有フォルダ機能に不満が出てきたらお試し下さい。