0

ファイル「test.box」から「Vagrantfile」を作成した後、ファイル「Vagrantfile」を編集して、たとえば次のように挿入します。

config.vm.provision: shell, path: './test.sh'

これを行った後、変更をファイル test.box に保存するにはどうすればよいですか?

4

3 に答える 3

0

私の目標は、コマンド「vagrant up / vagrant provision」を実行するたびにファイル シェルを実行することです。
これを行うために、次のことを行いました。

  1. 私は(Packerで)ファイル「test.box」を作成しました

  2. コマンド「init test.box vagrant」で Vagrantfile を作成します。

このステップでは、ファイル Vagrantfile 入力を編集します。次に例を示します。

config.vm.provision: shell, path: './file.sh'

そのため、コマンド「vagrant up / vagrant provision」を実行するたびに、彼は「file.sh」を実行します。
私の問題は、この変更を保存する方法がわからないことです。

于 2015-09-10T14:05:13.127 に答える
0

私があなたを正しく理解していれば。
vagrantfile を取得し、必要なすべての変更
を行い、packer.json ファイルにセクションを追加します。

"post-processors": [ { "type": "vagrant", "keep_input_artifact": false, "compression_level": 1, "vagrantfile_template": "MyCustom.vagrantfile", "output": "box/box_with_custom_vagrantfile.box" } ]

于 2015-10-20T13:49:49.563 に答える
0

質問を完全に理解しているかどうかはわかりませんが、説明させてください。

ボックスは Vagrant 環境のパッケージ形式です。ボックスの詳細については、ドキュメント ( https://docs.vagrantup.com/v2/boxes.html )を参照してください。

このボックスから、vagrant は、定義した Vagrantfile を使用して VM を作成します。この Vagrantfile でプロビジョニング手順が定義されている場合、それらは VM を初期化したときに実行されます (初めて実行するときは、VM を起動するたびに実行するプロビジョナーを定義するvagrant upこともできます)。

VM を起動するたびにプロビジョナーを実行するには、次のものが必要です。

config.vm.provision :shell, :path => "./test.sh", :run => 'always'

VM を停止するために実行するときはvagrant halt、システムをシャットダウンするだけなので、インストールしたものはすべて VM に残りvagrant upます。次に VM で作成したすべてのものを実行すると、利用できるようになります。 vagrant destroyvmからすべてのファイルを完全に消去するため、後で実行するvagrant upと、vmは最初から作成されます

したがって、vm に変更を加えて、それを新しいボックスとして使用したい場合は、 を使用してvm をパッケージ化vagrant packageする必要があります。packageについて詳しく読むことができます。これにより、新しい Vagrantfile で使用できる新しいボックスが生成されます。

于 2015-09-10T11:30:43.687 に答える