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  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

À propos du projet

RabbitMQ is a complete and highly reliable enterprise messaging system based on the emerging AMQP standard.

Installer
ansible-galaxy install silverlogic.rabbitmq
Licence
Unknown
Téléchargements
7.7k
Propriétaire