xilonz.trellis_backup

trellis-backup-role

このロールはTrellisと一緒に使用するために作られています。

自動バックアップをduplyを使って設定することができます。

これにより:

  • duplicityとduplyがインストールされます
  • 設定された各wordpress_siteに対して、2つのduplyプロファイルがインストールされます
    • データベース用の1つ
    • アップロード用の1つ

ウェブサイトのコードはバックアップされません。復元が必要な場合は、まず新しいサーバーにウェブサイトをデプロイし、その後にデータベースとアップロードを復元する必要があります。

始め方

ロールとその依存関係をTrellisのgalaxy.ymlファイルに追加します:

- name: backup
  src: xilonz.trellis_backup
  version: 2.1.7

ansible-galaxy install -r galaxy.ymlを実行して新しいロールをインストールします。

次に、ロールをserver.ymlに追加します:

roles:
  ... 他のTrellisロール ...
  - { role: backup, tags: [backup] }

ロール変数

ロールは、Trellisのwordpress_sites辞書から読み込みます。

例:

wordpress_sites:
  example.com:
    site_hosts:
      - canonical: example.com
        redirects:
          - www.example.com
    local_path: ../site # ローカルBedrockサイトディレクトリへのパス(Ansibleルートに対する相対パス)
    repo: [email protected]:example/example.com.git # 自分のGitリポジトリURLに置き換え
    repo_subtree_path: site # リポジトリ内のBedrock/WPディレクトリへの相対パス
    branch: master
    multisite:
      enabled: false
    ssl:
      enabled: false
      provider: letsencrypt
    cache:
      enabled: false
+   backup:
+     enabled: true
+     auto: true
+     target: scp://[email protected]/example.com_backups # duplicityがサポートする任意の場所
+     schedule: '0 4 * * *' # バックアップのcron時間(この値を変更)
+     purge: false # 古いバックアップの自動削除を有効にするにはtrueに変更
+     max_age: 1M # 古いバックアップを保持する時間範囲。「purge」コマンドに使用。
+     full_max_age: 1M # 最後のフルバックアップがこの年齢に達した場合、フルバックアップを強制。
+     max_full_backups: 1 # 保持するフルバックアップの数
+     post_actions: # オプション
+     - "curl -L http://your-custom-endpoint" # バックアップ完了後に実行するコマンド

enabled: trueauto: falseを設定すると、duplyプロファイルがインストールされますが、実際にはバックアップのスケジューリングは行われません。このようにすることで、例えば本番のデータベースをステージングに復元できます。ステージングと本番の両方に同じduplyプロファイルがありますが、実際にバックアップを作成するのは本番サーバーのみです。

すべてのduplicity URL形式(および潜在的なターゲット)を読む

vault.yml

バックアップターゲットの認証情報をvault.ymlに追加します(ターゲットによっては、S3キー、FTPの認証情報、またはローカルバックアップの場合は何も不要です...)。ターゲットURLに資格情報を埋め込むことも可能ですが、vault.ymlメソッドを使用する方が安全です。

example.com:
  env:
    backup_target_user: user
    backup_target_pass: password

サーバーのプロビジョニング

trellis provision --tags backup environmentまたはansible-playbook server.yml -e env=environment --tags backupを実行して、このロールを実行します。

復元

プロファイルがインストールされると、サーバーから簡単にバックアップと復元ができます。website_namewordpress_sites.ymlのウェブサイト名で、ドットをアンダースコアに置き換えたもの(例:example_com)です。duplyプロファイル名に不安がある場合は、ls /etc/duplyを使用できます。

sudo duply website_name_database restore
sudo duply website_name_uploads restore

2.0の変更点

  • paramikoの依存関係が削除されました
  • server.ymlプレイブックにStouts.backupロールをリストする必要はなく、タスクにインポートされます
  • このロールはMysqlのauth_socketプラグインを使用してデータベースに接続するため、最新のTrellisバージョンが必要です

SCPサポートの既知の問題

SCPターゲットを使用するには、サーバーにparamikoがインストールされている必要があります。

paramikoの自動インストールは2.0で削除されました。必要な場合は手動でインストールするか、trellisタスクに追加する必要があります。ただし、Trellisによって作成されたssh_configSendEnv設定でparamikoがクラッシュする既知の問題があります。

S3サポート

V4署名のみを受け入れるS3バケットへのアップロードに関する既知の問題があります。正常にアップロードするには、wordpress_sites.ymlbackup:キーに少し追加する必要があります:

wordpress_sites:
  example.com:
    backup:
      ...
+     params:
+       - 'export S3_USE_SIGV4="True"'

ライセンス

MIT

著者

このロールは主にJill Royerによって開発され、現在はArjan Steenbergenによってメンテナンスされています。

このロールはLa France insoumiseによるansible-backupロールを必要とします。これはansibleによって自動的にインストールされるはずです。

プロジェクトについて

Install automated backups on Trellis using duply

インストール
ansible-galaxy install xilonz.trellis_backup
ライセンス
Unknown
ダウンロード
2.2k