palantirnet/the-vagrant

此软件包已被废弃且不再维护。没有建议的替代软件包。

将 Vagrant 环境安装到 Drupal 项目中。

安装次数: 45 372

依赖者: 0

建议者: 0

安全: 0

星标: 2

关注者: 34

分支: 1

开放问题: 9

语言:Ruby

2.7.0 2020-05-18 22:24 UTC

README

将可定制的 Vagrant 环境添加到 Drupal 项目中。这可以与 drupal-skeletonthe-build 结合使用,或者可以用于将现有项目改造为基于虚拟机的开发环境。

注意:如果您正在设置新项目,您可能希望从 drupal-skeleton 开始。

为什么是 the-vagrant?

  • 带有基本安装的基盒 开始,以快速、一致地启动
  • 使用薄层配置设置项目,而不掩盖 Vagrant 本身
  • 当需要时,使用 Ansible playbooks 进行自定义
  • 将本地开发环境与构建工具分离

依赖项

安装

要在项目中使用 the-vagrant,您需要

  1. 使用 composer 将软件包添加到您的项目

    composer require --dev palantirnet/the-vagrant
    
  2. 运行 the-vagrant 的安装脚本以添加和配置 Vagrantfile

    vendor/bin/the-vagrant-installer
    
  • 这将提示您进行项目特定配置
    • 项目主机名
    • 项目网站根目录
    • 启用 Solr
    • 启用 HTTPS
    • 添加一个项目特定的 Ansible playbooks 以在默认 playbooks 之外运行
  1. 将新的 Vagrantfile 检入并提交到 git

如果您以后需要更改配置,您可以重新运行安装脚本或直接编辑 Vagrantfile

更新

要更新项目中现有的 the-vagrant 安装,您需要

  1. composer update palantirnet/the-vagrant
  2. 遵循 发行说明 中的任何步骤。

注意:如果您需要更新基础虚拟机(包括 PHP、Apache、MySQL 和 Solr 的 Vagrant 盒子 drupalbox),则需要运行 vagrant destroy 然后 vagrant box updatevagrant up。更新虚拟机不一定需要更新 the-vagrant,反之亦然。

自定义您的环境

在交互式安装过程中可以配置一些内容

  • 项目主机名
  • 项目网站根目录
  • 启用 Solr
  • 启用 HTTPS

在您的 Vagrantfile 中可以直接自定义更多内容

  • 此VM的额外主机名(用于多站点)
  • 要安装的额外apt软件包
  • PHP时区

默认情况下,the-vagrant从位于vendor/palantirnet/the-vagrant/conf/vagrant/provisioning的软件包中引用ansible角色。如果您的项目需要配置超出Vagrantfile中提供的配置,您可以重新运行安装脚本并更新配置。

除了默认之外运行自定义playbook

  1. 重新运行安装脚本: vendor/bin/the-vagrant-installer
  2. 当您被提示复制Ansible角色时,请回复n
  3. 当您被提示为您的项目添加额外的Ansible playbook时,请回复Y

将Ansible角色复制到您的项目中以进行自定义(Y,n)[n]? n

或向您的项目添加额外的Ansible playbook(Y,n)[n]? Y

  1. 这将在您的项目中创建一个新的provisioning目录,其中包含一个简单的Ansible playbook和示例角色。您的Vagrantfile将引用这个playbook以及位于vendor目录中的playbook。
  2. 将这个新的provisioning目录和更新的Vagrantfile提交到git
  3. 根据需要添加或更新角色和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添加第三方角色

    1. provisioning/requirements.yml创建一个requirements.yml文件
    2. 在您的Vagrantfile中配置自定义playbook的ansible.galaxy_role_fileansible.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.