syntro_gmbh.silverstripe

Ansible ロール: silverstripe

Ansible Role GitHub release (latest by date) Molecule test Ansible Quality Score Ansible Role

説明

Silverstripe は、ウェブサイトのための多目的なオープンソースフレームワークです。このロールは、選択したSilverstripeのインストールをLAMPサーバーに展開します。

このロールの主な機能は以下の通りです:

  • 最小限の展開要件 -> どこでも展開可能
  • リリース保持 -> エラーが発生した場合に迅速にロールバック
  • ダウンタイムのない展開 -> 使用中に中断せずに展開
  • CI対応 -> タグを指定するか、ブランチを最新の状態に保つ
  • バックアップ対応 -> フラッシュとビルドの前にバックアップスクリプトを実行

ダウンタイムのない展開

このロールはデフォルトで、ダウンタイムのない任意のバージョンを展開します。これは、ビルドとフラッシュプロセスが、実際のコードベースがhtml/index.phpで使用される前に実行されることを意味します。この利点は、ユーザーがサイトを使用できなくならないため、ダウンタイムが重要な時間帯でも展開が可能です。Silverstripeは大多数のケースでこの方法で展開可能で、データベースの構造はほとんど後方互換性があります。このREADMEを書いている時点で問題が発生する可能性があるのは以下の場合です:

  • DataObjectsの削除
    • Silverstripeはテーブルを削除せずに、deprecated_をプレフィックスとして付けます。
  • Enum値の変更

これらのシナリオは非常に特定的であり、理論的には発生しないはずです。それは開発者側の計画の不備を示す兆候です。

ただし、これによりデータベースのバックアップに問題が生じる可能性もあります。一貫性のあるバックアップを取得するために追加の注意が必要です。この責任は、ロールを使用するユーザーにあります。

インストール

ansible-galaxy install syntro_gmbh.silverstripe

要件

  • Composer
  • Git

依存関係

なし。ただし、展開先のホストにComposerとGitがインストールされていることを確認してください。

使用法

いくつかの必須変数を除いて、このロールは任意のSilverstripeプロジェクトに簡単に使用できます。defaultsファイルを参照して、カスタマイズ可能な内容を確認してください。

ウェブルートと生成されるファイル

このロールは、アプリケーションを提供するために以下のディレクトリ構造を使用します:

{{ WorkingDir }}/
├── {{ current }}
│   ├── .htaccess
│   ├── index.php
│   ├── assets --> ../shared/assets
│   └── _resources --> ../releases/<current sha>/_resources
├── releases/
│   ├── <current sha>/
│   │   ├── .git
│   │   └── ...
│   └── <other sha>/
│       ├── .git
│       └── ...
├── shared/
│   └── assets/
└── logs/

あなたのウェブルートは{{ WorkingDir }}/{{ current }}/ディレクトリを指すべきです。これらのディレクトリは、silverstripe_working_dirおよびsilverstripe_current_dir_nameを使用して設定できます。

データベースの構築と更新、バックアップの実行

Silverstripeを新規インストールで機能させるためには、データベースを構築または更新する必要があります。デフォルトでは、このロールは、ウェブルート内のファイルを更新する前に標準のビルドタスクとflush=1パラメータを組み合わせて実行します。

追加のコマンドを追加できますが、ビルドコマンドを再度追加するのを忘れないでくださいsilverstripe_provisioning_cmdsを使用して行います。ここは、必要に応じてバックアップコマンドを追加する場所でもあります。(バックアップユーティリティをインストールし、スクリプトを自動的に作成するためにこちらのresticロールを使用することができます。)バックアップステップの前にこれらのスクリプトを追加することで、ロールバックが必要な場合にインストールの最新バージョンを取得できます。

ダウンタイムのない展開

このロールはSilverstripeバージョンをダウンタイムなしで展開します。これは、ビルドとフラッシュプロセスが、実際のコードベースがindex.phpで使用される前に実行されることを意味します。この利点は、ユーザーがサイトを使用できなくならないため、いつでも展開可能です。Silverstripeは大多数の場合、この方法で展開可能で、データベースの構造はほとんど後方互換性があります。このREADMEを書いている時点で問題が発生する可能性があるのは以下の場合です:

  • DataObjectsの削除
    • Silverstripeはテーブルを削除せず、deprecated_をプレフィックスとして付けます。
  • Enum値の変更

これらのシナリオは非常に特定的であり、理論的には発生しないはずです。それは開発者側の計画の不備を示す兆候です。しかし、更新する前に必ずデータベースのバックアップを作成してください。

ロール変数

defaultsファイルを確認して、制御可能な内容を確認してください。

最小限の例プレイブック

- hosts: all
  vars:
    silverstripe_project_repository: https://github.com/silverstripe/demo.silverstripe.org
    silverstripe_project_version: master
    silverstripe_ss_database_name: silverstripe
    silverstripe_ss_database_username: root
    silverstripe_ss_database_password: root
  roles:
    - silverstripe

作者

  • Matthias Leutenegger

ライセンス

MIT

著作権

(c) 2020, Syntro GmbH

プロジェクトについて

Role to deploy a Silverstripe installation.

インストール
ansible-galaxy install syntro_gmbh.silverstripe
ライセンス
mit
ダウンロード
1.1k