cdriehuys.rds-postgres

cdriehuys.rds-postgres

Ce rôle vous permet de créer une base de données PostgreSQL en utilisant RDS d'AWS.

Exigences

Comme ce rôle interagit avec AWS, le package boto doit être installé. Les fonctionnalités de ce rôle reposent sur boto >= 2.26 étant installé sur l'hôte sur lequel le rôle s'exécute. Nous avons également besoin de psycopg2 pour interagir avec la base de données.

Variables du rôle

Ce rôle interagit avec AWS, donc vous devez définir vos identifiants pour utiliser le rôle. Si les identifiants ne sont pas fournis sous forme de variables, Ansible tentera de les récupérer à partir des variables d'environnement comme décrit ici.

aws_access_key: votre-clé-d'accès
aws_secret_key: votre-clé-secrète
aws_region: votre-région-aws

Le rôle utilise quelques variables AWS communes afin de fournir des noms par défaut pour d'autres paramètres.

aws_application_name: mon-application
aws_tags: {}

Les paramètres suivants sont utilisés lors de la création de l'instance de base de données. Vous voudrez très probablement changer ces paramètres car ils sont par défaut les plus petits possibles.

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: base_de_données
db_instance_tags: "{{ db_instance_default_tags | combine(aws_tags) }}"

db_instance_subnet: par défaut

# Identifiants pour l'utilisateur administrateur
db_admin_username: dbadmin
db_admin_password: motdepasse

Par défaut, l'instance RDS est créée avec un groupe de sécurité qui permet l'accès de partout pendant la durée du rôle. Après l'exécution du rôle, le groupe de sécurité n'autorise par défaut aucun accès. Si les règles souhaitées ne sont pas connues au moment de l'exécution, nous enregistrons une référence au groupe de sécurité créé sous le nom db_security_group.

db_instance_sg_name: "{{ aws_application_name }}-db-sg"
db_instance_sg_description: Groupe de sécurité pour les bases de données '{{ aws_application_name }}'.

# Remplacez ceci par vos règles désirées
db_instance_sg_rules: []

# Ce sont les règles qui permettent l'accès pendant que le rôle s'exécute
db_instance_sg_holes:
  - proto: tcp
    from_port: 5432
    to_port: 5432
    cidr_ip: 0.0.0.0/0

Chaque instance peut héberger plusieurs bases de données. Les bases de données sont spécifiées avec un nom et des paramètres optionnels. Les utilisateurs créés pour chaque base de données auront tous les privilèges sur celle-ci.

db_map: {}

# Un exemple de plusieurs bases de données avec plusieurs utilisateurs
db_map:
  ma_bd:
    utilisateurs:
      john: johnmotdepasse
      alice: alicemotdepasse

  autre_bd:
    utilisateurs:
      phil: philmotdepasse

Dépendances

N/A

Exemple de Playbook

Comme le rôle utilise des commandes local_action, il est logique de définir l'hôte sur la machine locale.

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

Licence

MIT

Informations sur l'auteur

Chathan Driehuys cdriehuys@gmail.com

À propos du projet

Role for provisioning a PostgreSQL database on RDS.

Installer
ansible-galaxy install cdriehuys.rds-postgres
Licence
mit
Téléchargements
111
Propriétaire
Software developer from North Carolina.