cdriehuys.rds-postgres

cdriehuys.rds-postgres

このロールを使うと、AWSのRDSを使ってPostgreSQLデータベースを作成できます。

要件

このロールはAWSとやりとりをするため、botoパッケージをインストールする必要があります。このロールの機能は、ロールが実行されるホストにboto >= 2.26がインストールされていることに依存しています。また、データベースとやりとりするためにpsycopg2も必要です。

ロール変数

このロールはAWSとやりとりをするため、ロールを使用するための資格情報を設定する必要があります。資格情報が変数として提供されない場合、Ansibleはこちらに記載されているように、環境変数から資格情報を検索しようとします。

aws_access_key: あなたのアクセスキー
aws_secret_key: あなたのシークレットキー
aws_region: あなたのAWSリージョン

ロールは、他のパラメータのデフォルト名を提供するために、いくつかの一般的なAWS変数を使用します。

aws_application_name: my-application
aws_tags: {}

データベースインスタンスを作成する際に使用されるパラメータは以下の通りです。これらのパラメータはデフォルトでは最小の値に設定されていますので、変更することをお勧めします。

db_instance_name: "{{ aws_application_name }}-db"
db_instance_size: 5
db_instance_type: db.t2.micro

db_instance_default_tags:
  application: "{{ aws_application_name }}"
  role: database
db_instance_tags: "{{ db_instance_default_tags | combine(aws_tags) }}"

db_instance_subnet: default

# 管理ユーザーのための資格情報
db_admin_username: dbadmin
db_admin_password: password

デフォルトでは、RDSインスタンスはどこからでもアクセスできるセキュリティグループで作成されます。ロール実行後、デフォルトではアクセスは許可されません。実行時に望ましいルールが分からない場合、作成されたセキュリティグループの参照をdb_security_groupとして保存します。

db_instance_sg_name: "{{ aws_application_name }}-db-sg"
db_instance_sg_description: '{{ aws_application_name }}'データベースのためのセキュリティグループ。

# 希望するルールで上書きしてください
db_instance_sg_rules: []

# ロールが実行されている間にアクセスを許可するルール
db_instance_sg_holes:
  - proto: tcp
    from_port: 5432
    to_port: 5432
    cidr_ip: 0.0.0.0/0

各インスタンスには複数のデータベースをホストできます。データベースは名前と任意のパラメータで指定します。各データベースに付与されたユーザーには、データベース上の全ての権限があります。

db_map: {}

# 複数のユーザーを持つ複数のデータベースの例
db_map:
  mydb:
    users:
      john: johnpassword
      alice: alicepassword

  otherdb:
    users:
      phil: philpassword

依存関係

特になし

例のプレイブック

ロールがlocal_actionコマンドを使用するため、ホストをローカルマシンに設定するのが最も適切です。

- hosts: localhost
  connection: local
  gather_facts: no
  roles:
     - cdriehuys.rds-postgres

ライセンス

MIT

著者情報

Chathan Driehuys cdriehuys@gmail.com

プロジェクトについて

Role for provisioning a PostgreSQL database on RDS.

インストール
ansible-galaxy install cdriehuys.rds-postgres
ライセンス
mit
ダウンロード
111
所有者
Software developer from North Carolina.