silverlogic.rabbitmq

Ankündigung

Lange nichts aktualisiert. Ich arbeite wieder an diesem Playbook, ich werde Fehler beheben (URL, Schlüsselüberprüfung usw.) und eine funktionierende Version bereitstellen, die getaggt ist.

Danach werde ich mich darauf konzentrieren, eine neue Version zu erstellen, die die Version 2.0 dieses Playbooks sein wird. Die Hauptsache, die ich mit Version 2 vorhabe, ist, die Installationsschritte von der reinen Konfiguration zu trennen. Ich möchte nicht eine Million Betriebssysteme in einem Playbook unterstützen. Daher könnt ihr selbst ein ansible-playbook-rabbitmq-install-my-little-snowflak-os erstellen :)

Vielen Dank an alle für die Teilnahme!

Rabbitmq Playbook

Playbook zur Installation und Konfiguration von RabbitMQ. Es werden später verschiedene Anpassungen bei der Konfiguration hinzugefügt.

Wenn ihr Änderungen besprechen oder helfen möchtet, mehr Plattformen zu unterstützen, öffnet ein Issue.

Installation

Verwendet Ansible Galaxy, um dieses Playbook zu installieren:

$ ansible-galaxy install Mayeu.RabbitMQ,1.4.0

Der master-Branch sollte derzeit als instabil betrachtet werden. Bitte vermeidet es, ihn für etwas anderes als Testzwecke zu verwenden :)

Unterstützte Systeme

Momentan werden nur Debian Jessie und Wheezy auf amd64 unterstützt. Änderungen sind willkommen, um weitere Distributionen oder Betriebssysteme zu unterstützen.

Semantische Versionierung 2.0.0

Ab dem Commit 67c608826a140868a71854ce3129b5f3d67ddcce, verwendet dieses Playbook semantische Versionierung. Gemäß der Spezifikation und da das Playbook in der Produktion verwendet wird, möchte ich die Kompatibilität nicht brechen. Daher ist die erste Versionsnummer 1.0.0.

Die öffentliche API, die in der semantischen Versionierung definiert ist, entspricht den Einstellungen, die dem Benutzer zur Verfügung stehen. Das Brechen der API (Änderung von X.Y.Z zu (X+1).Y.Z) bedeutet in diesem Kontext, dass der Benutzer den Variablennamen ändern muss, damit sein Playbook funktioniert.

Jede neu hinzugefügte Funktion (von X.Y.Z zu X.(Y+1).Z) sollte einen funktionierenden Standardwert haben, der standardmäßig keine Benutzerinteraktion erfordert. Wenn eine Funktion Benutzerinteraktion erfordert, ist es kein kleines Upgrade, sondern ein großes.

Rollenspezifische Variablen

Installation

Name Typ Beschreibung Standard
rabbitmq_os_package Bool Wenn wahr, wird das von der OS oder Distribution vorgeschlagene Standardpaket anstelle des von RabbitMQ bereitgestellten verwendet. false

Umgebung

Name Typ Beschreibung Standard
rabbitmq_conf_env Hash Setze Umweltvariable undef

Beispiel:

rabbitmq_conf_env:
  RABBITMQ_ROCKS: korrekt

Erzeugt:

RABBITMQ_ROCKS="korrekt"

Zertifikat

Name Typ Beschreibung Standard
rabbitmq_cacert String Pfad zur CA-Zertifikatsdatei. files/rabbitmq_cacert.pem
rabbitmq_server_key String Pfad zur SSL-Schlüsseldatei. files/rabbitmq_server_key.pem
rabbitmq_server_cert String Pfad zur SSL-Zertifikatsdatei. files/rabbitmq_server_cert.pem
rabbitmq_ssl Boolean Definiert, ob wir SSL verwenden wollen true

Standardkonfigurationsdatei

Name Typ Beschreibung Standard
rabbitmq_conf_tcp_listeners_address String Zuhör-Adresse für das TCP-Interface ''
rabbitmq_conf_tcp_listeners_port Integer Zuhör-Port für das TCP-Interface 5672
rabbitmq_conf_ssl_listeners_address String Zuhör-Adresse für das SSL-Interface '0.0.0.0'
rabbitmq_conf_ssl_listeners_port Integer Zuhör-Port für das SSL-Interface 5671
rabbitmq_conf_ssl_options_cacertfile String Pfad zum CA-Zertifikat "/etc/rabbitmq/ssl/cacert.pem"
rabbitmq_conf_ssl_options_certfile String Pfad zum Serverzertifikat "/etc/rabbitmq/ssl/server_cert.pem"
rabbitmq_conf_ssl_options_keyfile String Pfad zur privaten Schlüsseldatei "/etc/rabbitmq/ssl/server_key.pem"
rabbitmq_conf_ssl_options_fail_if_no_peer_cert Boolean Wert der SSL-Option fail_if_no_peer_cert "true"

Plugins

Name Typ Beschreibung Standard
rabbitmq_new_only String Plugins als neu hinzufügen, ohne andere Plugins zu deaktivieren 'nein'
rabbitmq_plugins String Liste der zu aktivierenden Plugins []

Vhost

Name Typ Beschreibung Standard
rabbitmq_vhost_definitions Liste Definiere die Liste von Vhosts, die erstellt werden sollen []
rabbitmq_users_definitions Liste von Hashes Definiere die Benutzer, sowie den zugehörigen Vhost und das Passwort (siehe unten) []

Vhosts-Konfiguration definieren

rabbitmq_vhost_definitions:
  - name:    vhost1
    node:    node_name #Optional, standardmäßig "rabbit"
    tracing: ja       #Optional, standardmäßig "nein"

Benutzerkonfiguration definieren:

rabbitmq_users_definitions:
  - vhost:    vhost1
    user:     user1
    password: passwort1
    node:     node_name  # Optional, standardmäßig "rabbit"
    configure_priv: "^resource.*" # Optional, standardmäßig ".*"
    read_priv: "^$" # Lesen nicht erlaubt.
    write_priv: "^$" # Schreiben nicht erlaubt.
  - vhost:    vhost1
    user:     user2
    password: passwort2
    force:    nein
    tags:                # Optional, Benutzertags
    - administrator

Federation

Name Typ Beschreibung Standard
rabbitmq_federation Boolean Definiert, ob wir eine Federation einrichten müssen false
rabbitmq_federation_configuration Liste von Hashes Definiert alle Föderationen, die wir einrichten müssen Nicht definiert
rabbitmq_policy_configuration Liste von Hashes Definiert alle Richtlinien, die wir einrichten müssen Nicht definiert

Federation-Upstream-Konfiguration definieren:

rabbitmq_federation_upstream:
  - name: Name des Upstreams
    vhost: lokaler Vhost zur Föderierung
    value: JSON-Beschreibung der Föderation
    local_username: der lokale Benutzername für die Föderation

Siehe die RabbitMQ-Dokumentation für mögliche JSON-Werte.

Richtlinienkonfiguration definieren:

rabbitmq_policy_configuration:
  - name: Name der Richtlinie
    vhost: vhost, wo die Richtlinie angewendet wird
    pattern: Muster der Richtlinie
    tags: Beschreibung der Richtlinie in dict-Form # Beispiel: "ha-mode=all"

Benötigte Dateien

Du musst die benötigten Zertifikate in deinen files/-Ordner legen, zum Beispiel:

files/
 |- cacert.crt
 |- myserver_key.key
 |- myserver_cert.crt

Und dann die Rolle konfigurieren:

    rabbitmq_cacert: files/cacert.crt
    rabbitmq_server_key: files/myserver_key.key
    rabbitmq_server_cert: files/myserver_cert.crt

Test

Es gibt einige Tests, die versuchen, eine VM mit Vagrant bereitzustellen. Starte sie einfach mit:

$ vagrant up # zum Testen mit Debian Jessie
$ export VAGRANT_BOX_NAME='chef/centos-6.5' vagrant up # zum Testen mit CentOS

Du kannst die VM, die beim Test verwendet wird, ändern, indem du die Umgebungsvariable VAGRANT_BOX_NAME auf etwas anderes als deb/jessie setzt.

Lizenz

BSD

Über das Projekt

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

Installieren
ansible-galaxy install silverlogic.rabbitmq
GitHub Repository
Lizenz
Unknown
Downloads
7.7k
Besitzer