palantirnet / the-vagrant
将 Vagrant 环境安装到 Drupal 项目中。
Requires
- phing/phing: ^2.14
- dev-develop
- 3.x-dev
- 2.7.0
- 2.6.2
- 2.6.1
- 2.6.0
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.2
- 2.2.1
- 2.2.0
- 2.2.0-alpha2
- 2.2.0-alpha
- 2.1.0
- 2.0.1
- 2.0.0
- 1.1.1
- 1.1.0
- 1.0.0
- 0.7.1
- 0.7.0
- 0.6.0
- 0.5.1
- 0.5.0
- 0.4.0
- 0.3.0
- dev-79-issue-yarn-key-apt
- dev-default-to-node-12
- dev-release
- dev-separate-the-vagrant-settings
- dev-release-1.x
This package is auto-updated.
Last update: 2022-10-29 02:01:16 UTC
README
将可定制的 Vagrant 环境添加到 Drupal 项目中。这可以与 drupal-skeleton 和 the-build 结合使用,或者可以用于将现有项目改造为基于虚拟机的开发环境。
注意:如果您正在设置新项目,您可能希望从 drupal-skeleton 开始。
为什么是 the-vagrant?
- 从 带有基本安装的基盒 开始,以快速、一致地启动
- 使用薄层配置设置项目,而不掩盖 Vagrant 本身
- 当需要时,使用 Ansible playbooks 进行自定义
- 将本地开发环境与构建工具分离
依赖项
- Vagrant >= 2.1.0
- Vagrant 插件
- Virtualbox >= 5.0
- Ansible >= 2.9
安装
要在项目中使用 the-vagrant,您需要
-
使用 composer 将软件包添加到您的项目
composer require --dev palantirnet/the-vagrant
-
运行 the-vagrant 的安装脚本以添加和配置 Vagrantfile
vendor/bin/the-vagrant-installer
- 这将提示您进行项目特定配置
- 项目主机名
- 项目网站根目录
- 启用 Solr
- 启用 HTTPS
- 添加一个项目特定的 Ansible playbooks 以在默认 playbooks 之外运行
- 将新的 Vagrantfile 检入并提交到 git
如果您以后需要更改配置,您可以重新运行安装脚本或直接编辑 Vagrantfile
更新
要更新项目中现有的 the-vagrant 安装,您需要
composer update palantirnet/the-vagrant
- 遵循 发行说明 中的任何步骤。
注意:如果您需要更新基础虚拟机(包括 PHP、Apache、MySQL 和 Solr 的 Vagrant 盒子 drupalbox),则需要运行 vagrant destroy
然后 vagrant box update
和 vagrant up
。更新虚拟机不一定需要更新 the-vagrant,反之亦然。
自定义您的环境
在交互式安装过程中可以配置一些内容
- 项目主机名
- 项目网站根目录
- 启用 Solr
- 启用 HTTPS
在您的 Vagrantfile
中可以直接自定义更多内容
- 此VM的额外主机名(用于多站点)
- 要安装的额外apt软件包
- PHP时区
默认情况下,the-vagrant从位于vendor/palantirnet/the-vagrant/conf/vagrant/provisioning
的软件包中引用ansible角色。如果您的项目需要配置超出Vagrantfile
中提供的配置,您可以重新运行安装脚本并更新配置。
除了默认之外运行自定义playbook
- 重新运行安装脚本:
vendor/bin/the-vagrant-installer
- 当您被提示复制Ansible角色时,请回复
n
- 当您被提示为您的项目添加额外的Ansible playbook时,请回复
Y
将Ansible角色复制到您的项目中以进行自定义(Y,n)[n]? n
或向您的项目添加额外的Ansible playbook(Y,n)[n]? Y
- 这将在您的项目中创建一个新的
provisioning
目录,其中包含一个简单的Ansible playbook和示例角色。您的Vagrantfile
将引用这个playbook以及位于vendor
目录中的playbook。 - 将这个新的
provisioning
目录和更新的Vagrantfile
提交到git - 根据需要添加或更新角色和playbook。
开发Ansible playbook和角色的技巧
-
Ansible文档有一个Playbook简介
-
检查playbook的语法
ansible-playbook --syntax-check provisioning/my_playbook.yml
-
在不重新配置Vagrant box的情况下运行playbook
ansible-playbook -u vagrant -i .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory provisioning/my_playbook.yml
-
使用debug模块调试角色中的步骤输出和变量
- name: Some command command: ls register: my_command_output - name: Some debugging debug: var: my_command_output
-
从Ansible Galaxy添加第三方角色
- 在
provisioning/requirements.yml
创建一个requirements.yml文件 - 在您的
Vagrantfile
中配置自定义playbook的ansible.galaxy_role_file
和ansible.galaxy_roles_path
属性
if (defined?(ansible_custom_playbook) && !ansible_custom_playbook.empty?) config.vm.provision "myproject-provision", type: "ansible" do |ansible| ansible.playbook = ansible_custom_playbook ansible.galaxy_role_file = "provisioning/requirements.yml" ansible.galaxy_roles_path = "provisioning/roles/" end end
- 在
-
在Vagrantfile中,将额外的配置传递给Ansible配置器。这是一个很好的用例,在默认使用
palantirnet/the-vagrant
配置时设置php_ini_memory_limit
ansible.extra_vars = { "project" => project, "hostname" => hostname, "extra_hostnames" => extra_hostnames, "solr_enabled" => ansible_solr_enabled, "https_enabled" => ansible_https_enabled, "project_web_root" => ansible_project_web_root, "timezone" => ansible_timezone, "system_packages" => ansible_system_packages, "php_ini_memory_limit" => "512M", }
默认软件
the-vagrant
使用由palantirnet/devkit
构建的Vagrant box。这个Vagrant基础box的版本可以在Vagrant Cloud上找到。您可以在Drupalbox README中找到有关访问默认软件(如MySQL、Solr和Mailhog)的详细信息。
the-vagrant和基础box之间的兼容性
某些版本的the-vagrant与palantir/drupalbox Vagrant box的版本协调
the-vagrant版本 | palantir/drupalbox版本 | Vagrant提供者 | Vagrant版本 |
---|---|---|---|
2.2.0 | >= 1.2.0, < 2.0 | virtualbox | >= 2.1.0 |
2.1.0 | >= 1.2.0, < 2.0 | virtualbox | |
2.0.1 | 1.1.1, 1.2.0 | virtualbox | |
2.0.0 | 1.1.0, 1.1.1 | virtualbox, vmware_desktop(仅限drupalbox v1.1.0) | |
0.6.0 - 1.1.1 | >= 0.2.4, < 1.0 | virtualbox, vmware_desktop |
* 注意,palantir/drupalbox VM的1.2.0版本需要更新到palantirnet/the-vagrant的2.0.1版本。
版权所有 2016 - 2020 Palantir.net, Inc.