cdriehuys.rds-postgres

cdriehuys.rds-postgres

Diese Rolle ermöglicht es Ihnen, eine PostgreSQL-Datenbank mit AWS' RDS zu erstellen.

Requirements

Da diese Rolle mit AWS interagiert, muss das boto-Paket installiert sein. Die Funktionen dieser Rolle hängen von der Installation von boto >= 2.26 auf dem Host ab, auf dem die Rolle ausgeführt wird. Wir benötigen auch psycopg2, um mit der Datenbank zu interagieren.

Role Variables

Diese Rolle interagiert mit AWS, daher müssen Sie Ihre Anmeldeinformationen festlegen, um die Rolle zu verwenden. Wenn keine Anmeldeinformationen als Variablen bereitgestellt werden, versucht Ansible, diese aus Umgebungsvariablen abzurufen, wie hier beschrieben: hier.

aws_access_key: Ihr-Zugangs-Schlüssel
aws_secret_key: Ihr-Geheim-Schlüssel
aws_region: Ihre-AWS-Region

Die Rolle verwendet einige gängige AWS-Variablen, um Standardnamen für andere Parameter bereitzustellen.

aws_application_name: meine-Anwendung
aws_tags: {}

Die folgenden Parameter werden bei der Erstellung der Datenbankinstanz verwendet. Sie möchten diese Parameter höchstwahrscheinlich ändern, da sie standardmäßig auf die kleinsten möglichen Werte gesetzt sind.

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: standard

# Anmeldeinformationen für den Administratorbenutzer
db_admin_username: dbadmin
db_admin_password: passwort

Standardmäßig wird die RDS-Instanz mit einer Sicherheitsgruppe erstellt, die den Zugriff von überall während der Dauer der Rolle ermöglicht. Nach der Ausführung der Rolle erlaubt die Sicherheitsgruppe standardmäßig keinen Zugriff. Wenn die gewünschten Regeln zur Laufzeit nicht bekannt sind, speichern wir eine Referenz zur erstellten Sicherheitsgruppe als db_security_group.

db_instance_sg_name: "{{ aws_application_name }}-db-sg"
db_instance_sg_description: Sicherheitsgruppe für '{{ aws_application_name }}' Datenbanken.

# Überschreiben Sie dies mit Ihren gewünschten Regeln
db_instance_sg_rules: []

# Dies sind die Regeln, die den Zugriff während der Ausführung der Rolle erlauben
db_instance_sg_holes:
  - proto: tcp
    from_port: 5432
    to_port: 5432
    cidr_ip: 0.0.0.0/0

Jede Instanz kann mehrere Datenbanken hosten. Datenbanken werden mit einem Namen und optionalen Parametern angegeben. Die Benutzer, die für jede Datenbank angegeben werden, haben ALL Privilegien auf der Datenbank.

db_map: {}

# Ein Beispiel für mehrere Datenbanken mit mehreren Benutzern
db_map:
  mydb:
    users:
      john: johnpasswort
      alice: alicepasswort

  otherdb:
    users:
      phil: philpasswort

Dependencies

N/A

Example Playbook

Da die Rolle local_action-Befehle verwendet, macht es am meisten Sinn, den Host auf die lokale Maschine zu setzen.

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

License

MIT

Author Information

Chathan Driehuys cdriehuys@gmail.com

Über das Projekt

Role for provisioning a PostgreSQL database on RDS.

Installieren
ansible-galaxy install cdriehuys.rds-postgres
GitHub Repository
Lizenz
mit
Downloads
111
Besitzer
Software developer from North Carolina.