silverlogic.rabbitmq
Ogłoszenie
Długo nie było aktualizacji. Wracam do tego podręcznika. Połączę poprawki (url, sprawdzanie kluczy itd.) w główną gałąź i wydam działającą wersję oznaczoną.
Następnie skupię się na stworzeniu nowej gałęzi, która będzie wersją 2.0 tego podręcznika. Główne zmiany, które planuję w wersji 2, to oddzielenie kroków instalacji od samej konfiguracji. Nie chcę wspierać niezliczonej liczby systemów operacyjnych w jednym podręczniku. Dlatego będziesz mógł samodzielnie stworzyć ansible-playbook-rabbitmq-install-my-little-snowflake-os
:)
Dziękuję wszystkim za udział!
Podręcznik RabbitMQ
Podręcznik do instalacji i konfiguracji RabbitMQ. W późniejszym czasie będzie dostępnych wiele opcji konfiguracyjnych.
Jeśli chcesz omówić zmiany lub pomóc w wsparciu większej liczby platform, otwórz zgłoszenie.
Instalacja
Użyj Ansible Galaxy, aby zainstalować ten podręcznik:
$ ansible-galaxy install Mayeu.RabbitMQ,1.4.0
Gałąź master
jest obecnie niestabilna. Proszę unikać jej używania do celów innych niż testowe :)
Obsługiwane systemy
Obecnie wspierane są tylko Debian Jessie i Wheezy na amd64. Zapraszam do przesyłania poprawek, aby wspierać inne dystrybucje lub systemy operacyjne.
Wersjonowanie semantyczne 2.0.0
Od momentu zatwierdzenia 67c608826a140868a71854ce3129b5f3d67ddcce podręcznik korzysta z wersjonowania semantycznego. Zgodnie ze specyfikacją, a ponieważ podręcznik jest używany w produkcji i chcę uniknąć łamania kompatybilności, pierwsza wersja to 1.0.0.
Publiczne API zdefiniowane w wersjonowaniu semantycznym odpowiada ustawieniom dostępnym dla użytkownika. Złamanie API (przechodzenie z X.Y.Z
do (X+1).Y.Z
) w tym kontekście oznacza, że użytkownik musi zmienić nazwę zmiennej, aby jego podręcznik działał.
Każda nowa funkcja dodana (z X.Y.Z
do X.(Y+1).Z
) powinna mieć działającą wartość domyślną, która nie wymaga interakcji ze strony użytkownika. Jeśli dodanie funkcji wymaga interakcji użytkownika, to nie jest to aktualizacja drobna, lecz główna.
Zmienne roli
Instalacja
Nazwa | Typ | Opis | Domyślnie |
---|---|---|---|
rabbitmq_os_package |
Bool | Gdy prawda, używa domyślnego pakietu proponowanego przez system operacyjny lub dystrybucję zamiast tego dystrybuowanego przez RabbitMQ. | false |
Środowisko
Nazwa | Typ | Opis | Domyślnie |
---|---|---|---|
rabbitmq_conf_env |
Hash | Ustaw zmienną środowiskową | undef |
Przykład:
rabbitmq_conf_env:
RABBITMQ_ROCKS: poprawnie
Spowoduje wygenerowanie:
RABBITMQ_ROCKS="poprawnie"
Certyfikat
Nazwa | Typ | Opis | Domyślnie |
---|---|---|---|
rabbitmq_cacert |
String | Ścieżka do pliku certyfikatu CA. | files/rabbitmq_cacert.pem |
rabbitmq_server_key |
String | Ścieżka do pliku klucza SSL. | files/rabbitmq_server_key.pem |
rabbitmq_server_cert |
String | Ścieżka do pliku certyfikatu SSL. | files/rabbitmq_server_cert.pem |
rabbitmq_ssl |
Boolean | Określa, czy należy używać SSL | true |
Domyślny plik konfiguracyjny
Nazwa | Typ | Opis | Domyślnie |
---|---|---|---|
rabbitmq_conf_tcp_listeners_address |
String | Adres nasłuchujący dla interfejsu tcp | '' |
rabbitmq_conf_tcp_listeners_port |
Integer | Port nasłuchujący dla interfejsu tcp | 5672 |
rabbitmq_conf_ssl_listeners_address |
String | Adres nasłuchujący dla interfejsu ssl | '0.0.0.0' |
rabbitmq_conf_ssl_listeners_port |
Integer | Port nasłuchujący dla interfejsu ssl | 5671 |
rabbitmq_conf_ssl_options_cacertfile |
String | Ścieżka do certyfikatu CA | "/etc/rabbitmq/ssl/cacert.pem" |
rabbitmq_conf_ssl_options_certfile |
String | Ścieżka do certyfikatu serwera | "/etc/rabbitmq/ssl/server_cert.pem" |
rabbitmq_conf_ssl_options_keyfile |
String | Ścieżka do pliku klucza prywatnego | "/etc/rabbitmq/ssl/server_key.pem" |
rabbitmq_conf_ssl_options_fail_if_no_peer_cert |
Boolean | Wartość opcji SSL fail_if_no_peer_cert |
"true" |
Wtyczki
Nazwa | Typ | Opis | Domyślnie |
---|---|---|---|
rabbitmq_new_only |
String | Dodaj wtyczki jako nowe, bez dezaktywacji innych wtyczek | 'nie' |
rabbitmq_plugins |
String | Lista | Lista wtyczek do aktywacji |
Vhost
Nazwa | Typ | Opis | Domyślnie |
---|---|---|---|
rabbitmq_vhost_definitions |
List | Zdefiniuj listę vhost do utworzenia | [] |
rabbitmq_users_definitions |
List of hash | Zdefiniuj użytkowników i powiązane vhost oraz hasła (patrz poniżej) | [] |
Definiując konfigurację vhosts:
rabbitmq_vhost_definitions:
- name: vhost1
node: node_name # Opcjonalne, domyślnie "rabbit"
tracing: tak # Opcjonalne, domyślnie "nie"
Definiując konfigurację użytkowników:
rabbitmq_users_definitions:
- vhost: vhost1
user: user1
password: hasło1
node: node_name # Opcjonalne, domyślnie "rabbit"
configure_priv: "^resource.*" # Opcjonalne, domyślnie ".*"
read_priv: "^$" # Zabrania czytania.
write_priv: "^$" # Zabrania pisania.
- vhost: vhost1
user: user2
password: hasło2
force: nie
tags: # Opcjonalne, tagi użytkowników
- administrator
Federacja
Nazwa | Typ | Opis | Domyślnie |
---|---|---|---|
rabbitmq_federation |
Boolean | Określa, czy należy skonfigurować federację | false |
rabbitmq_federation_configuration |
List of hashes | Zdefiniuj wszystkie federacje, które należy skonfigurować | Nie zdefiniowany |
rabbitmq_policy_configuration |
List of hashes | Zdefiniuj wszystkie polityki, które należy skonfigurować | Nie zdefiniowany |
Definiując konfigurację rurociągu federacji:
rabbitmq_federation_upstream:
- name: nazwa rurociągu
vhost: lokalny vhost do federacji
value: opis w formacie json federacji
local_username: lokalna nazwa użytkownika do federacji
Zobacz dokumentację RabbitMQ dla możliwych wartości JSON.
Definiując konfigurację polityki:
rabbitmq_policy_configuration:
- name: nazwa polityki
vhost: vhost, w którym polityka będzie stosowana
pattern: wzorzec polityki
tags: opis polityki w formie słownika # przykład: "ha-mode=all"
Wymagane pliki
Musisz umieścić potrzebne certyfikaty w swoim folderze files/
, na przykład:
files/
|- cacert.crt
|- myserver_key.key
|- myserver_cert.crt
A następnie skonfigurować rolę:
rabbitmq_cacert: files/cacert.crt
rabbitmq_server_key: files/myserver_key.key
rabbitmq_server_cert: files/myserver_cert.crt
Testowanie
Są pewne testy, które próbują skonfigurować maszynę wirtualną przy użyciu Vagranta. Uruchom je po prostu z:
$ vagrant up # testuj z Debianem jessie
$ export VAGRANT_BOX_NAME='chef/centos-6.5' vagrant up # testuj z Centos
Możesz zmienić maszynę wirtualną używaną podczas testu, ustawiając zmienną środowiskową VAGRANT_BOX_NAME
na coś innego niż deb/jessie
.
Licencja
BSD
RabbitMQ is a complete and highly reliable enterprise messaging system based on the emerging AMQP standard.
ansible-galaxy install silverlogic.rabbitmq