bmeme.drupal

工作流程 维护 MIT 许可证

Ansible 角色: Drupal

创建、安装和构建一个 Drupal 项目。

这是 Bmeme 发布的第一个 Ansible 角色,实际上在我们的 Drupal 开发过程中使用。 它受到了我们通常使用的其他优秀角色的启发:

要求

要正确使用此角色,您需要一个经典的 LAMP/LEMP 堆栈:

  • 一个标准的 Web 服务器(推荐使用 Apache 或 Nginx)
  • MySQL/PostgreSQL 数据库
  • PHP 解释器(7.x 或最新版本)
  • Composer(推荐使用 geerlingguy.composer

Drush 是此角色在您的 Drupal 项目中需要的依赖。

依赖

  • community.mysql 集合
  • community.general 集合

安装

这是一个通过 Ansible Galaxy 分发的 Ansible 角色。 要安装此角色,您可以使用以下命令。

$ ansible-galaxy install bmeme.drupal

更新

如果您想更新角色,在安装时需要传递 --force 参数。请查看以下命令:

$ ansible-galaxy install --force bmeme.drupal

预发布版本

这个角色有一个预发布版本(称为 0.5-beta1),使用不同的工作流程和变量方案。 此版本是 完全不推荐使用 的,仅在 Bmeme 中用于向后兼容,__请不要使用它__!

角色变量

可用的变量:

变量名称 描述 默认值
drupal_project_dir Drupal 项目的绝对路径 /var/www/html
drupal_project_owner 拥有项目的系统用户 www-data
drupal_project_group 拥有项目的系统组 www-data
drupal_project_composer_project 您想用于全新安装的 Drupal composer 项目 drupal/recommended-project
drupal_project_web_root 存储 Drupal 核心的目录,可能依赖于 Drupal 发行版 web
drupal_site_name Drupal 站点名称。由 drush 在 Drupal 安装期间使用。 您的新 Drupal 实例
drupal_site_mail Drupal 站点邮件。由 drush 在 Drupal 安装期间使用。 [email protected]
drupal_site_lang Drupal 站点默认语言。由 drush 在 Drupal 安装期间使用。 en
drupal_account_mail Drupal 帐户邮件。由 drush 在 Drupal 安装期间使用。 drupal_site_mail 相同
drupal_account_name Drupal 帐户名称。由 drush 在 Drupal 安装期间使用。 admin
drupal_account_pass Drupal 帐户密码。由 drush 在 Drupal 安装期间使用。 admin
drupal_db_schema Drupal 将使用的数据库模式。可用选项: mysqlpgsql mysql
drupal_db_name 数据库名称。由 drush 在 Drupal 安装期间使用。 drupal
drupal_db_user 数据库用户。由 drush 在 Drupal 安装期间使用。 drupal
drupal_db_pass 数据库用户密码。由 drush 在 Drupal 安装期间使用。 drupal
drupal_db_host 数据库主机地址。由 drush 在 Drupal 安装期间使用。 127.0.0.1
drupal_db_port 数据库主机端口。由 drush 在 Drupal 安装期间使用。 3306
drupal_profile Drupal 安装配置文件。请参见 此问题 minimal
drupal_composer_nodev Composer "nodev" 选项。布尔值 false
drupal_composer_prefer_dist Composer "prefer-dist" 选项。布尔值 false
drupal_composer_scaffold_nonamespace 使用无命名空间的 composer 安装 Drupal Scaffold。布尔值 false

工作流程

此角色执行三项主要任务:

  • create: 使用 composer 创建一个全新的 Drupal 项目:您可以使用 drupal_project_composer_project 变量自定义 composer 项目。 此角色会自动识别 Drupal 项目是否已经存在,并跳过此任务集。
  • install: 使用 drush 安装 Drupal 实例。在过程结束时,Drupal 配置会自动导出到 {{ drupal_project_dir }}/config/sync 目录。 此角色会自动识别是否已存在 Drupal 安装,并跳过此任务集。
  • build: 通过 drush 根据现有导出配置构建 Drupal 实例。 它会自动识别配置并执行构建任务集。

从零开始时,仅会执行 createinstall 任务。

钩子

您可以使用可用的钩子添加自定义任务:

  • drupal_before_create: 在 create 任务集之前执行。如果已经存在 Drupal 项目,则跳过此钩子。
  • drupal_after_create: 在 create 任务集之后执行。如果已经存在 Drupal 项目,则跳过此钩子。
  • drupal_before_install: 在 install 任务集之前执行。如果已经有 Drupal 配置,则跳过此钩子。
  • drupal_after_install: 在 install 任务集之后执行。如果已经有 Drupal 配置,则跳过此钩子。
  • drupal_before_build: 在 build 任务集之前执行。如果没有可用的 Drupal 配置,则跳过此钩子。
  • drupal_after_build: 在 build 任务集之后执行。如果没有可用的 Drupal 配置,则跳过此钩子。

Bmeme 的工作方式

Bmeme 使用此角色自动化 Drupal 项目的创建/安装/构建操作,在其开发过程中。我们使用 docker 作为开发环境,包括本地和远程测试实例。 该角色在我们的 docker 镜像 php 中执行,链接 这里。 相同的镜像也被 molecule 测试角色使用。

依赖

示例剧本

- hosts: webserver
  vars_files:
    - vars/main.yml
  roles:
    - geerlingguy.apache
    - geerlingguy.mysql
    - geerlingguy.php-versions
    - geerlingguy.php
    - geerlingguy.php-mysql
    - geerlingguy.composer
    - bmeme.drupal

vars/main.yml

drupal_project_dir: /path/to/my/project
drupal_site_name: 我很棒的 Drupal 实例
drupal_after_build: "tasks/my-after-build-tasks.yml"

如果您想使用此角色安装特定的 Drupal 发行版(例如:Lightning):

- hosts: webserver
  vars_files:
    - vars/main.yml
  roles:
    - geerlingguy.apache
    - geerlingguy.mysql
    - geerlingguy.php-versions
    - geerlingguy.php
    - geerlingguy.php-mysql
    - geerlingguy.composer
    - bmeme.drupal
      drupal_project_composer_project: "acquia/lightning-project:8.8.1"

许可证

MIT/BSD

作者信息

此角色由 Bmeme 于 2020 年创建。

关于项目

Creates a Drupal project via composer, install it and re-build it by configs

安装
ansible-galaxy install bmeme.drupal
许可证
mit
下载
66.2k
拥有者
Digital Factory