ANXS.postgresql

ANXS - PostgreSQL ビルドステータス


ヘルプを募集しています!このAnsibleロールのメンテナンスを手伝うことができるなら、ぜひGitHubに問題を報告してください。このロールを使っている人が多く、私たちは(明らかに)助けが必要です! 💖


このAnsibleロールは、PostgreSQL、拡張機能、データベース、およびユーザーをインストールし、設定します。

インストール

Ansible 2.4.0以上でテスト済みです。

インストールするには:

ansible-galaxy install anxs.postgresql

例のプレイブック

このロールを含める例:

---
- hosts: postgresql-server
  roles:
    - role: ANXS.postgresql
      become: yes

このロールをタスクとして含める例:

---
- hosts: postgresql-server
  tasks:
    - block: # workaround, see https://stackoverflow.com/a/56558842
        - name: PSQLのインストールと設定
          include_role:
            name: ANXS.postgresql
          vars:
            postgresql_users:
              - name: abc
                password: abc
      become: true

依存関係

  • ANXS.monit(Galaxy/GH)を使いたい場合は、monit_protection: trueを設定してください。

互換性マトリックス

ディストリビューション / PostgreSQL 11 12 13 14 15 16
Debian 11.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Debian 12.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Rockylinux 8.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Rockylinux 9.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Ubuntu 20.04.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Ubuntu 22.04.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
  • :white_check_mark: - テスト済み、正常に動作
  • :warning: - 本番環境での使用には向かない
  • :grey_question: - 将来的に動作する予定(可能であれば助けてください)
  • :interrobang: - もしかしたら動作する、テストされていない
  • :no_entry: - 保守が終了(EOL)

変数

# 基本設定
postgresql_version: 16
postgresql_encoding: "UTF-8"
postgresql_locale: "en_US.UTF-8"
postgresql_ctype: "en_US.UTF-8"

postgresql_admin_user: "postgres"
postgresql_default_auth_method: "peer"

postgresql_cluster_name: main
postgresql_cluster_reset: false

# 作成するデータベースのリスト(オプション)
# 注:より柔軟に拡張機能を使用するには、postgresql_database_extensions設定を使用してください。
postgresql_databases:
  - name: foobar
    owner: baz          # オプション:データベースの所有者を指定
    hstore: yes         # このデータベースにhstore拡張機能をインストールするフラグ(yes/no)
    uuid_ossp: yes      # このデータベースにuuid-ossp拡張機能をインストールするフラグ(yes/no)
    citext: yes         # このデータベースにcitext拡張機能をインストールするフラグ(yes/no)
    encoding: "UTF-8"   # データベースごとのグローバル{{ postgresql_encoding }}変数を上書き
    state: "present"    # オプション: 'present', 'absent', 'dump', 'restore'のいずれか
    lc_collate: "en_GB.UTF-8"   # データベースごとのグローバル{{ postgresql_locale }}変数を上書き
    lc_ctype: "en_GB.UTF-8"     # データベースごとのグローバル{{ postgresql_ctype }}変数を上書き

# 作成するデータベース拡張機能のリスト(オプション)
postgresql_database_extensions:
  - db: foobar
    extensions:
      - hstore
      - citext

# 作成するユーザーのリスト(オプション)
postgresql_users:
  - name: baz
    pass: pass
    encrypted: yes  # パスワードを暗号化する場合、PostgreSQL >= 10は暗号化されたパスワードのみを受け付ける
    state: "present"    # オプション: 'present', 'absent'のいずれか

# 作成するスキーマのリスト(オプション)
postgresql_database_schemas:
  - database: foobar           # データベース名
    schema: acme               # スキーマ名
    state: present

  - database: foobar           # データベース名
    schema: acme_baz           # スキーマ名
    owner: baz                 # 所有者名
    state: present

# 適用するユーザー権限のリスト(オプション)
postgresql_user_privileges:
  - name: baz                   # ユーザー名
    db: foobar                  # データベース
    priv: "ALL"                 # 権限文字列形式:例:INSERT,UPDATE/table:SELECT/anothertable:ALL
    role_attr_flags: "CREATEDB" # ロール属性フラグ

設定できる項目はさらにたくさんあります。詳しくはdefaults/main.ymlを参照してください。

テスト - モレキュール

このプロジェクトにはモレキュールの設定が含まれています。詳しくは./molecule/README.mdを参照してください。

例:

molecule test

テスト - バグラント

このプロジェクトにはVagrantfileが含まれており、変更をテストするための簡単な方法です。vagrant upコマンドで起動できます。

Vagrantの設定については、Vagrantのドキュメントを参照してください。

VMが起動したら、vagrant provisionまたはansible-playbook tests/playbook.yml -i vagrant-inventoryを使って再プロビジョニングできます。

テストプレイブックをいじりたい場合は、tests/playbook.ymlを見て、tests/vars.ymlの変数を変更してください。

もし貢献される場合は、最初にVagrant環境内で変更をテストし(対象のディストリビューションを使用)、可能であれば、.travis.yml内のテストがカバーされていることを確認してください。

ライセンス

MITライセンスの下でライセンスされています。詳細はLICENSEファイルを参照してください。

感謝

作成者:

メンテナ:

主な貢献者:

フィードバック、バグ報告、リクエスト ...

歓迎します!

プロジェクトについて

Install and configure PostgreSQL, dependencies, extensions, databases and users.

インストール
ansible-galaxy install ANXS.postgresql
ライセンス
mit
ダウンロード
525.1k
所有者
DevOPS/System and network engineer, cyber-security lover. Blockchain enthusiast!