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
Role for provisioning a PostgreSQL database on RDS.
ansible-galaxy install cdriehuys.rds-postgres