bmeme.drupal
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サイトの名前。Drupalインストール時にdrushによって使用されます。 | Your new Drupal instance |
drupal_site_mail |
Drupalサイトのメール。Drupalインストール時にdrushによって使用されます。 | [email protected] |
drupal_site_lang |
Drupalサイトのデフォルト言語。Drupalインストール時にdrushによって使用されます。 | en |
drupal_account_mail |
Drupalアカウントのメール。Drupalインストール時にdrushによって使用されます。 | drupal_site_mail と同じ |
drupal_account_name |
Drupalアカウントの名前。Drupalインストール時にdrushによって使用されます。 | admin |
drupal_account_pass |
Drupalアカウントのパスワード。Drupalインストール時にdrushによって使用されます。 | admin |
drupal_db_schema |
Drupalが使用するデータベーススキーマ。選択肢: mysql またはpgsql |
mysql |
drupal_db_name |
データベース名。Drupalインストール時にdrushによって使用されます。 | drupal |
drupal_db_user |
データベースユーザー。Drupalインストール時にdrushによって使用されます。 | drupal |
drupal_db_pass |
データベースユーザーのパスワード。Drupalインストール時にdrushによって使用されます。 | drupal |
drupal_db_host |
データベースホストアドレス。Drupalインストール時にdrushによって使用されます。 | 127.0.0.1 |
drupal_db_port |
データベースホストポート。Drupalインストール時にdrushによって使用されます。 | 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スカフォールドをインストール。ブール型 | false |
ワークフロー
このロールは3つの主要なタスクを実行します:
- create: Composerを使ってDrupalの新しいプロジェクトを作成します。
drupal_project_composer_project
変数を使ってComposerプロジェクトをカスタマイズできます。このロールは既存のDrupalプロジェクトがある場合、それを自動的に認識し、このタスクセットをスキップします。 - install: Drushを使ってDrupalインスタンスをインストールします。プロセスの最後に、Drupalの設定は自動的に
{{ drupal_project_dir }}/config/sync
ディレクトリにエクスポートされます。このロールは既存のDrupalインストールがある場合、それを自動的に認識し、このタスクセットをスキップします。 - build: 既存のエクスポートされた設定からDrushを使ってDrupalインスタンスをビルドします。設定を自動的に認識し、ビルドタスクを実行します。
初めからスタートする場合、create と install タスクのみを実行します。
フック
利用可能なフックを使用してカスタムタスクを追加できます:
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: My Awesome Drupal instance
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
著者情報
このロールは2020年にBmemeによって作成されました。