通过 Vagrant 中的 provisioner 配置程序,可以在使用 vagrant up
启动虚拟机时,在虚拟机上执行安装软件、更改配置等操作。
box 通常是通用的,而每个项目总有自己的需求。当然也可以通过 vagrant ssh
进入虚拟机后手动安装软件。但是通过 Provisioning 机制可以自动化这个过程并使其可重复,完全不需交互。
Provisioning 的执行节点
Provisioning 在 Vagrant 环境生命周期的特定节点执行:
- 第一次
vagrant up
创建环境时,provisioning 会运行。如果环境已经创建,并且 up 操作只是恢复或启动一台机器,provisioning 将不会运行,除非明确提供--provision
标志。 - 在生产环境中使用 vagrant provision 时。
- 调用
vagrant reload --provision
时。--provision
标志必须存在才能强制执行 provisioning。
也可以启动环境时,明确指定 --no-provision
来避免运行 provisioner。