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

Acerca del proyecto

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

Instalar
ansible-galaxy install silverlogic.rabbitmq
Licencia
Unknown
Descargas
7.7k
Propietario