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