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