silverlogic.rabbitmq
Annonce
Cela fait longtemps qu'il n'y a pas eu de mise à jour. Je suis de retour sur ce playbook, je vais fusionner des corrections (url, vérification de clé,...) dans la branche principale et publier une version fonctionnelle étiquetée.
Ensuite, je me concentrerai sur la création de la prochaine branche qui sera la version 2.0 de ce playbook. Les principales choses que je prévois de faire avec la version 2 sont de séparer les étapes d'installation de la configuration pure. Je ne veux pas supporter un nombre énorme de systèmes d'exploitation dans un seul playbook. Vous pourrez donc créer un ansible-playbook-rabbitmq-install-my-little-snowflake-os vous-même :)
Merci à tous pour votre participation !
Playbook RabbitMQ
Playbook pour installer et configurer RabbitMQ. Viendra avec divers réglages de configuration par la suite.
Si vous souhaitez discuter des modifications ou aider à supporter plus de plateformes, ouvrez un problème.
Installation
Utilisez Ansible Galaxy pour installer ce playbook :
$ ansible-galaxy install Mayeu.RabbitMQ,1.4.0
La branche master
devrait actuellement être considérée comme instable. Veuillez éviter de l'utiliser pour autre chose que des tests :)
Systèmes supportés
Pour le moment, seuls Debian Jessie et Wheezy sur amd64 sont supportés. Les contributions pour supporter d'autres distributions ou systèmes d'exploitation sont les bienvenues.
Versionnement sémantique 2.0.0
À partir du commit 67c608826a140868a71854ce3129b5f3d67ddcce, ce playbook utilise le versionnement sémantique. Selon les spécifications, et puisque le playbook est utilisé en production, je veux éviter de casser la compatibilité. Le premier numéro de version est donc 1.0.0.
L'API publique définie dans le versionnement sémantique correspond aux paramètres disponibles pour l'utilisateur. Casser l'API (incrementer X.Y.Z
à (X+1).Y.Z
) dans ce contexte signifie que l'utilisateur doit changer le nom de la variable pour que son playbook fonctionne.
Toute nouvelle fonctionnalité ajoutée (de X.Y.Z
à X.(Y+1).Z
) devrait avoir une valeur par défaut fonctionnelle qui ne nécessite aucune interaction de l'utilisateur par défaut. Si l'ajout d'une fonctionnalité nécessite une interaction de l'utilisateur, alors ce n'est pas une mise à niveau mineure, mais une majeure.
Variables de rôle
Installation
Nom | Type | Description | Par défaut |
---|---|---|---|
rabbitmq_os_package |
Bool | Quand vrai, utilise le package par défaut proposé par l'OS ou la distribution au lieu de celui distribué par RabbitMQ. | false |
Environnement
Nom | Type | Description | Par défaut |
---|---|---|---|
rabbitmq_conf_env |
Hash | Définir une variable d'environnement | undef |
Exemple :
rabbitmq_conf_env:
RABBITMQ_ROCKS: correct
Cela générera :
RABBITMQ_ROCKS="correct"
Certificat
Nom | Type | Description | Par défaut |
---|---|---|---|
rabbitmq_cacert |
String | Chemin du fichier de certificat CA. | files/rabbitmq_cacert.pem |
rabbitmq_server_key |
String | Chemin du fichier de clé SSL. | files/rabbitmq_server_key.pem |
rabbitmq_server_cert |
String | Chemin du fichier de certificat SSL. | files/rabbitmq_server_cert.pem |
rabbitmq_ssl |
Boolean | Définir si nous devons utiliser SSL | true |
Fichier de configuration par défaut
Nom | Type | Description | Par défaut |
---|---|---|---|
rabbitmq_conf_tcp_listeners_address |
String | Adresse d'écoute pour l'interface tcp | '' |
rabbitmq_conf_tcp_listeners_port |
Integer | Port d'écoute pour l'interface tcp | 5672 |
rabbitmq_conf_ssl_listeners_address |
String | Adresse d'écoute pour l'interface ssl | '0.0.0.0' |
rabbitmq_conf_ssl_listeners_port |
Integer | Port d'écoute pour l'interface ssl | 5671 |
rabbitmq_conf_ssl_options_cacertfile |
String | Chemin vers le certificat CA | "/etc/rabbitmq/ssl/cacert.pem" |
rabbitmq_conf_ssl_options_certfile |
String | Chemin vers le certificat du serveur | "/etc/rabbitmq/ssl/server_cert.pem" |
rabbitmq_conf_ssl_options_keyfile |
String | Chemin vers le fichier de clé privée | "/etc/rabbitmq/ssl/server_key.pem" |
rabbitmq_conf_ssl_options_fail_if_no_peer_cert |
Boolean | Valeur de l'option SSL fail_if_no_peer_cert |
"true" |
Plugins
Nom | Type | Description | Par défaut |
---|---|---|---|
rabbitmq_new_only |
String | Ajouter les plugins comme nouveaux, sans désactiver d'autres plugins | 'no' |
rabbitmq_plugins |
String | Liste | Liste des plugins à activer |
Vhost
Nom | Type | Description | Par défaut |
---|---|---|---|
rabbitmq_vhost_definitions |
List | Définir la liste des vhosts à créer | [] |
rabbitmq_users_definitions |
Liste de hash | Définir les utilisateurs, ainsi que le vhost et le mot de passe associés (voir ci-dessous) | [] |
Définir la configuration des vhosts :
rabbitmq_vhost_definitions:
- name: vhost1
node: node_name #Optionnel, par défaut à "rabbit"
tracing: yes #Optionnel, par défaut à "no"
Définir la configuration des utilisateurs :
rabbitmq_users_definitions:
- vhost: vhost1
user: user1
password: password1
node: node_name # Optionnel, par défaut à "rabbit"
configure_priv: "^resource.*" # Optionnel, par défaut à ".*"
read_priv: "^$" # Interdire la lecture.
write_priv: "^$" # Interdire l'écriture.
- vhost: vhost1
user: user2
password: password2
force: no
tags: # Optionnel, tags de l'utilisateur
- administrator
Fédération
Nom | Type | Description | Par défaut |
---|---|---|---|
rabbitmq_federation |
Boolean | Définir si nous devons configurer la fédération | false |
rabbitmq_federation_configuration |
Liste de hashes | Définir toute la fédération que nous devons configurer | Non défini |
rabbitmq_policy_configuration |
Liste de hashes | Définir toute la politique de fédération que nous devons configurer | Non défini |
Définir la configuration de la fédération en amont :
rabbitmq_federation_upstream:
- name: nom de la fédération
vhost: vhost local à fédérer
value: description JSON de la fédération
local_username: le nom d'utilisateur local pour la fédération
Voir la documentation de RabbitMQ pour la valeur JSON possible.
Définir la configuration de la politique :
rabbitmq_policy_configuration:
- name: nom de la politique
vhost: vhost où la politique sera appliquée
pattern: motif de la politique
tags: description de la politique sous forme de dictionnaire # exemple: "ha-mode=all"
Fichiers requis
Vous devez mettre les certificats nécessaires dans votre dossier files/
, par exemple :
files/
|- cacert.crt
|- myserver_key.key
|- myserver_cert.crt
Et ensuite configurez le rôle :
rabbitmq_cacert: files/cacert.crt
rabbitmq_server_key: files/myserver_key.key
rabbitmq_server_cert: files/myserver_cert.crt
Tests
Il y a des tests qui essaient de provisionner une machine virtuelle en utilisant Vagrant. Il suffit de les lancer avec :
$ vagrant up # pour tester avec Debian jessie
$ export VAGRANT_BOX_NAME='chef/centos-6.5' vagrant up # pour tester avec Centos
Vous pouvez changer la VM utilisée pendant le test en définissant la variable d'environnement VAGRANT_BOX_NAME
à autre chose que deb/jessie
.
Licence
BSD
RabbitMQ is a complete and highly reliable enterprise messaging system based on the emerging AMQP standard.
ansible-galaxy install silverlogic.rabbitmq