silverlogic.rabbitmq
Anuncio
Hace mucho tiempo que no hay actualizaciones. Estoy de vuelta en este libro de jugadas, voy a fusionar correcciones (url, verificación de clave, ...) en la rama principal y lanzar una versión etiquetada que funcione.
Luego me enfocaré en crear una próxima rama que será la versión 2.0 de este libro de jugadas. Las principales cosas que planeo hacer con la versión 2 son separar los pasos de instalación de la configuración pura. No quiero soportar un montón de sistemas operativos en un solo libro de jugadas. Así que podrás crear un ansible-playbook-rabbitmq-install-my-little-snowflak-os
tú mismo :)
¡Gracias a todos por su participación!
Libro de jugadas de RabbitMQ
Libro de jugadas para instalar y configurar RabbitMQ. Vendrá con varios ajustes de configuración más adelante.
Si deseas discutir modificaciones o ayudar a soportar más plataformas, abre un problema.
Instalación
Usa Ansible Galaxy para instalar este libro de jugadas:
$ ansible-galaxy install Mayeu.RabbitMQ,1.4.0
La rama master
debe considerarse actualmente inestable. Por favor, evita usarla para algo más que pruebas :)
Sistemas soportados
Actualmente solo se soportan Debian Jessie y Wheezy en amd64. Aceptamos parches para soportar otras distribuciones o sistemas operativos.
Control de versiones semántico 2.0.0
A partir del commit 67c608826a140868a71854ce3129b5f3d67ddcce, este libro de jugadas utiliza el control de versiones semánticas. Siguiendo la especificación y dado que el libro de jugadas se usa en producción y quiero evitar romper la compatibilidad, el primer número de versión es 1.0.0.
La API pública definida en el control de versiones semánticas corresponde a los ajustes disponibles para el usuario. Romper la API (incrementar de X.Y.Z
a (X+1).Y.Z
) en este contexto significa que el usuario necesita cambiar el nombre de las variables para que su libro de jugadas funcione.
Cualquier nueva función añadida (de X.Y.Z
a X.(Y+1).Z
) debe tener un valor por defecto funcional que no requiere interacción del usuario. Si una adición de función requiere interacción del usuario, entonces no es una mejora menor, sino una mayor.
Variables de rol
Instalación
Nombre | Tipo | Descripción | Predeterminado |
---|---|---|---|
rabbitmq_os_package |
Bool | Cuando es verdadero, usa el paquete predeterminado propuesto por el sistema operativo o distribución en lugar del que distribuye RabbitMQ. | false |
Entorno
Nombre | Tipo | Descripción | Predeterminado |
---|---|---|---|
rabbitmq_conf_env |
Hash | Establecer variable de entorno | undef |
Ejemplo:
rabbitmq_conf_env:
RABBITMQ_ROCKS: correcto
Generará:
RABBITMQ_ROCKS="correcto"
Certificado
Nombre | Tipo | Descripción | Predeterminado |
---|---|---|---|
rabbitmq_cacert |
String | Ruta del archivo del certificado CA. | files/rabbitmq_cacert.pem |
rabbitmq_server_key |
String | Ruta del archivo de clave SSL. | files/rabbitmq_server_key.pem |
rabbitmq_server_cert |
String | Ruta del archivo del certificado SSL. | files/rabbitmq_server_cert.pem |
rabbitmq_ssl |
Boolean | Definir si necesitamos usar SSL | true |
Archivo de configuración predeterminado
Nombre | Tipo | Descripción | Predeterminado |
---|---|---|---|
rabbitmq_conf_tcp_listeners_address |
String | Dirección de escucha para la interfaz tcp | '' |
rabbitmq_conf_tcp_listeners_port |
Integer | Puerto de escucha para la interfaz tcp | 5672 |
rabbitmq_conf_ssl_listeners_address |
String | Dirección de escucha para la interfaz ssl | '0.0.0.0' |
rabbitmq_conf_ssl_listeners_port |
Integer | Puerto de escucha para la interfaz ssl | 5671 |
rabbitmq_conf_ssl_options_cacertfile |
String | Ruta del certificado CA | "/etc/rabbitmq/ssl/cacert.pem" |
rabbitmq_conf_ssl_options_certfile |
String | Ruta al certificado del servidor | "/etc/rabbitmq/ssl/server_cert.pem" |
rabbitmq_conf_ssl_options_keyfile |
String | Ruta al archivo de clave privada | "/etc/rabbitmq/ssl/server_key.pem" |
rabbitmq_conf_ssl_options_fail_if_no_peer_cert |
Boolean | Valor de la opción SSL fail_if_no_peer_cert |
"true" |
Plugins
Nombre | Tipo | Descripción | Predeterminado |
---|---|---|---|
rabbitmq_new_only |
String | Agregar plugins como nuevos, sin desactivar otros plugins | 'no' |
rabbitmq_plugins |
String | Lista | Lista de plugins a activar |
Vhost
Nombre | Tipo | Descripción | Predeterminado |
---|---|---|---|
rabbitmq_vhost_definitions |
List | Definir la lista de vhosts para crear | [] |
rabbitmq_users_definitions |
List of hash | Definir los usuarios, y el vhost y contraseña asociados (ver a continuación) | [] |
Definiendo la configuración de los vhosts
rabbitmq_vhost_definitions:
- name: vhost1
node: node_name #Opcional, predeterminado a "rabbit"
tracing: yes #Opcional, predeterminado a "no"
Definiendo la configuración de los usuarios:
rabbitmq_users_definitions:
- vhost: vhost1
user: user1
password: password1
node: node_name # Opcional, predeterminado a "rabbit"
configure_priv: "^resource.*" # Opcional, predeterminado a ".*"
read_priv: "^$" # No permitir lectura.
write_priv: "^$" # No permitir escritura.
- vhost: vhost1
user: user2
password: password2
force: no
tags: # Opcional, etiquetas de usuario
- administrador
Federación
Nombre | Tipo | Descripción | Predeterminado |
---|---|---|---|
rabbitmq_federation |
Boolean | Definir si necesitamos configurar la federación | false |
rabbitmq_federation_configuration |
List of hashes | Definir toda la federación que necesitamos configurar | No definido |
rabbitmq_policy_configuration |
List of hashes | Definir toda la política que necesitamos configurar | No definido |
Definiendo la configuración de la federación upstream:
rabbitmq_federation_upstream:
- name: nombre de upstream
vhost: vhost local para federar
value: descripción json de la federación
local_username: nombre de usuario local para la federación
Consulta la documentación de RabbitMQ para el posible valor JSON.
Definiendo la configuración de la política:
rabbitmq_policy_configuration:
- name: nombre de la política
vhost: vhost donde se aplicará la política
pattern: patrón de la política
tags: descripción de la política en forma de dictado # ejemplo: "ha-mode=all"
Archivos requeridos
Debes colocar los certificados necesarios en tu carpeta files/
, por ejemplo:
files/
|- cacert.crt
|- myserver_key.key
|- myserver_cert.crt
Y luego configura el rol:
rabbitmq_cacert: files/cacert.crt
rabbitmq_server_key: files/myserver_key.key
rabbitmq_server_cert: files/myserver_cert.crt
Pruebas
Hay algunas pruebas que intentan aprovisionar una VM usando Vagrant. Simplemente inícialas con:
$ vagrant up # para probar con Debian Jessie
$ export VAGRANT_BOX_NAME='chef/centos-6.5' vagrant up # para probar con CentOS
Puedes cambiar la VM usada durante la prueba configurando la variable de entorno VAGRANT_BOX_NAME
a algo diferente a deb/jessie
.
Licencia
BSD
RabbitMQ is a complete and highly reliable enterprise messaging system based on the emerging AMQP standard.
ansible-galaxy install silverlogic.rabbitmq