cdriehuys.rds-postgres

cdriehuys.rds-postgres

Ta rola pozwala na stworzenie bazy danych PostgreSQL przy użyciu RDS od AWS.

Wymagania

Ponieważ ta rola wchodzi w interakcję z AWS, wymaga zainstalowania pakietu boto. Funkcje tej roli opierają się na pliku boto >= 2.26, który musi być zainstalowany na hostie, na którym działa rola. Wymagamy również psycopg2, aby wchodzić w interakcję z bazą danych.

Zmienne Roli

Ta rola wchodzi w interakcję z AWS, więc musisz ustawić swoje dane logowania, aby korzystać z roli. Jeśli dane logowania nie są podane jako zmienne, Ansible spróbuje znaleźć je w zmiennych środowiskowych, jak opisano tutaj.

aws_access_key: twój-klucz-dostępu
aws_secret_key: twój-tajny-klucz
aws_region: twój-region-aws

Rola korzysta z kilku wspólnych zmiennych AWS, aby podać domyślne nazwy dla innych parametrów.

aws_application_name: moja-aplikacja
aws_tags: {}

Poniższe parametry są używane podczas tworzenia instancji bazy danych. Prawdopodobnie będziesz chciał zmienić te parametry, ponieważ domyślnie mają one najmniejsze możliwe wartości.

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

# Dane uwierzytelniające dla użytkownika admina
db_admin_username: dbadmin
db_admin_password: hasło

Domyślnie instancja RDS jest tworzona z grupą zabezpieczeń, która pozwala na dostęp z każdego miejsca przez czas działania roli. Po wykonaniu roli, grupa zabezpieczeń nie zezwala na żaden dostęp domyślnie. Jeśli pożądane zasady nie są znane w czasie działania, zapisujemy odniesienie do utworzonej grupy zabezpieczeń jako db_security_group.

db_instance_sg_name: "{{ aws_application_name }}-db-sg"
db_instance_sg_description: Grupa zabezpieczeń dla baz danych '{{ aws_application_name }}'.

# Zastąp to swoimi pożądanymi zasadami
db_instance_sg_rules: []

# To są zasady, które pozwalają na dostęp podczas działania roli
db_instance_sg_holes:
  - proto: tcp
    from_port: 5432
    to_port: 5432
    cidr_ip: 0.0.0.0/0

Każda instancja może hostować wiele baz danych. Bazy danych są określane nazwą i opcjonalnymi parametrami. Użytkownicy przypisani do każdej bazy danych będą mieli WSZYSTKIE uprawnienia do bazy danych.

db_map: {}

# Przykład wielu baz danych z wieloma użytkownikami
db_map:
  mydb:
    users:
      john: johnpassword
      alice: alicepassword

  otherdb:
    users:
      phil: philpassword

Zależności

Brak

Przykładowy Playbook

Ponieważ rola używa poleceń local_action, najbardziej sensowne jest ustawienie hosta na lokalną maszynę.

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

Licencja

MIT

Informacje o autorze

Chathan Driehuys cdriehuys@gmail.com

O projekcie

Role for provisioning a PostgreSQL database on RDS.

Zainstaluj
ansible-galaxy install cdriehuys.rds-postgres
Licencja
mit
Pobrania
111
Właściciel
Software developer from North Carolina.