gantsign.backup

Ansibleロール: バックアップ

テスト Ansible Galaxy ライセンス

ファイルやディレクトリのバックアップと復元を行うロールです。
rsyncを使用しますが、ローカルにマウントされたバックアップドライブでの使用を想定しています。

プロビジョニング中に、このロールは以前にバックアップされたファイルやディレクトリを復元します。
OSが再起動されると、5分ごとに増分バックアップを行い、シャットダウン時にもバックアップが行われます。

バックアップは、元のディレクトリの単純なミラーです。
以前のファイルバージョンは破棄されます。主な目的は、ローカル開発VMの再構築間でファイルを保持することです。
もしファイルを失ったり置き換えたりすることができない場合は、バージョン管理のあるリモートバックアップソリューションを使用してください。

このロールは主にユーザーのホームディレクトリの内容をバックアップおよび復元するために設計されています。

要求事項

  • Ansible >= 2.9

  • Linuxディストリビューション

    • Debian系

      • Ubuntu

        • Bionic (18.04)
        • Focal (20.04)
    • 注意: 他のバージョンも動作する可能性がありますが、テストは行われていません。

ロール変数

以下の変数を変更することで、このロールの動作が変わります:

# バックアップを行う頻度(分単位)
backup_frequency_minutes: 5

# バックアップ/復元するファイルの所有ユーザー
backup_user: # 必須

# バックアップするファイルがあるソースディレクトリ(/で終わる必要があります)
backup_src:  # 必須

# バックアップするファイルの宛先ディレクトリ(/で終わる必要があります)
backup_dest: # 必須

# 含める/除外するファイル/ディレクトリのrsyncフィルター
backup_filter: |
  !
  # すべてを含める
  + /*
  
# バックアップスクリプト用ディレクトリ
backup_script_dir: '~/.backup'

# cronで使用する名前
backup_cron_name: backup

# systemdサービスで使用する名前
backup_service_name: backup

例としてのプレイブック

以下はシンプルな例です:

- hosts: servers
  roles:
    - role: gantsign.backup
      backup_user: example_username
      backup_src: /home/example_username/
      backup_dest: /mnt/backup/example_username/
      backup_filter: |
        # フィルターをリセット
        !
        # ファイル/ディレクトリを含める
        + /include_me
        # サブディレクトリを含める(他のサブディレクトリを除外する場合のみ必要)
        + /include_me/me_as_well
        # me_as_well以外を除外
        - /include_me/*
        # ファイル/ディレクトリ名で除外
        - tmp
        # その他すべてを除外
        - /*

実際のプレイブックの例:

- hosts: servers
  roles:
    - role: gantsign.backup
      backup_user: vagrant
      backup_src: /home/vagrant/
      backup_dest: /var/persistent/home/vagrant/
      backup_filter: |
        !
        + /.atom
        + /.atom
        + /.atom/config.cson
        - /.atom/*
        + /.bash_history
        + /.config
        + /.config/Code
        + /.config/Code/User
        + /.config/Code/User/settings.json
        - /.config/Code/User/*
        - /.config/Code/*
        - /.config/*
        + /.gitconfig
        + /.gnupg
        + /.m2
        - /.m2/repository
        - /.m2/wrapper
        + /.ssh
        - /.ssh/authorized_keys
        + /workspace
        + /.zsh_history
        - target/*
        - build/*
        - node_modules
        - /*

GantSignの他のロール

GantSignの他のロールはAnsible Galaxyで見つけることができます。

開発とテスト

このプロジェクトは、開発とテストの支援のためにMoleculeを使用しています。
このロールはTestinfrapytestを使用してユニットテストが行われています。

開発やテストを行うためには、以下をインストールする必要があります:

上記のインストールは難しい場合があるため、このプロジェクトにはMolecule Wrapperが含まれています。
Molecule Wrapperは、Moleculeとその依存関係(Linux以外)をインストールし、指定されたコマンドでMoleculeを実行するシェルスクリプトです。

Molecule Wrapperを使用してこのロールをテストするには、プロジェクトのルートから以下のコマンドを実行します:

./moleculew test

注意: いくつかの依存関係にはsudo権限が必要です。

ライセンス

MIT

著者情報

ジョン・フリーマン

GantSign Ltd.
会社番号: 06109112 (イングランド登録)

プロジェクトについて

Role for backing up and restoring files and directories.

インストール
ansible-galaxy install gantsign.backup
ライセンス
mit
ダウンロード
2.7k
所有者