ernestas-poskus.ansible-nsq

ansible-nsq

Statut de construction

Rôle d'installation Ansible pour la plateforme de messagerie distribuée en temps réel NSQ.

Ce rôle gère NSQ via systemd. Les plateformes supportées sont :

  • CentOS : >7
  • Ubuntu : >16.04 (xenial)

Admin NSQ

Installation

ansible-galaxy install ernestas-poskus.ansible-nsq

Exemple de Playbook

- name: Installer NSQ
  hosts: all
  sudo: yes
  roles:
    - role: ernestas-poskus.ansible-nsq

Exemple pour une configuration à plusieurs nœuds

- name: Installer NSQ
  hosts: nsqs
  sudo: yes
  roles:
    - role: ernestas-poskus.ansible-nsq
      nsq_lookupd_tcp_addresses: "{{ groups['nsqs']|map('extract', hostvars, ['ansible_eth1', 'ipv4', 'address'])|list }}"
      nsq_lookupd_http_addresses: "{{ groups['nsqs']|map('extract', hostvars, ['ansible_eth1', 'ipv4', 'address'])|list }}"

Pour la configuration multi-nœuds, mettez à jour nsqd['broadcast_address'] ou configurez vos hôtes afin qu'ils puissent se trouver mutuellement.

Exigences

Aucune.

Variables du rôle

---
# fichier par défaut pour ansible-nsq

nsq_nsqd_install: true
nsq_nsqadmin_install: true
nsq_nsqlookupd_install: true

nsq_owner: root
nsq_group: root

nsq_version: 0.3.8
nsq_go_version: go1.6.2
nsq_arch: linux-amd64

nsq_install_directory: /opt

nsq_config_directory: /etc/nsq
nsq_config_directory_mode: 0644

nsq_data_directory: /var/lib/nsq
nsq_data_directory_mode: 0750

nsq_binaries:
  - nsq_pubsub
  - nsq_stat
  - nsq_tail
  - nsq_to_file
  - nsq_to_http
  - nsq_to_nsq
  - to_nsq

nsq_network_interface: "{{ ansible_default_ipv4.interface }}"
nsq_network_ip_protocol: 'ipv4'

nsq_network_address: "{{ hostvars[inventory_hostname]['ansible_' + nsq_network_interface][nsq_network_ip_protocol]['address'] }}"

nsq_lookupd_tcp_port: 4160
nsq_lookupd_http_port: 4161

nsq_lookupd_tcp_addresses:
  - "{{ nsq_network_address }}"

nsq_lookupd_http_addresses:
  - "{{ nsq_network_address }}"

nsq_nsqlookupd:
  broadcast_address: "{{ ansible_hostname }}"
  http_address: "{{ nsq_network_address }}:{{ nsq_lookupd_http_port }}"
  inactive_producer_timeout: 300s
  tcp_address: "{{ nsq_network_address }}:{{ nsq_lookupd_tcp_port }}"
  tombstone_lifetime: 45s

nsq_nsqd:
  auth_http_address:
  broadcast_address: "{{ ansible_hostname }}"
  data_path: "{{ nsq_data_directory }}"
  deflate: true
  e2e_processing_latency_percentile:
  e2e_processing_latency_window_time: 600s
  http_address: "{{ nsq_network_address }}:4151"
  https_address: "{{ nsq_network_address }}:4152"
  max_body_size: 5242880
  max_bytes_per_file: 104857600
  max_deflate_level: 6
  max_heartbeat_interval: 60s
  max_msg_size: 1048576
  max_msg_timeout: 900s
  max_output_buffer_size: 65536
  max_output_buffer_timeout: 1s
  max_rdy_count: 2500
  max_req_timeout: 3600s
  mem_queue_size: 10000
  msg_timeout: 60s
  snappy: true
  statsd_address:
  statsd_interval: 60s
  statsd_mem_stats: true
  statsd_prefix: 'nsq.%s'
  sync_every: 2500
  sync_timeout: 2s
  tcp_address: "{{ nsq_network_address }}:4150"
  tls_cert:
  tls_client_auth_policy:
  tls_key:
  tls_min_version: 'tls1.0'
  tls_required: false
  tls_root_ca_file:
  worker_id: 255

nsq_nsqadmin:
  graphite_url:
  http_address: "{{ nsq_network_address }}:4171"
  http_client_tls_cert:
  http_client_tls_insecure_skip_verify:
  http_client_tls_key:
  http_client_tls_root_ca_file:
  notification_http_endpoint:
  proxy_graphite:
  statsd_counter_format: 'stats.counters.%s.count'
  statsd_gauge_format: 'stats.gauges.%s'
  statsd_interval: '60s'
  statsd_prefix: 'nsq.%s'
  template_dir:

Dépendances

Aucune.

Tests

Vous devez installer Ruby et VirtualBox pour tester dans une machine virtuelle.

gem install bundler
bundle install
bundle exec kitchen test

=======

Licence

Copyright (c) 2016, Ernestas Poskus Tous droits réservés.

La réutilisation et l'utilisation sous forme source et binaire, avec ou sans modification, sont autorisées sous réserve que les conditions suivantes soient respectées :

  • Les redistributions de code source doivent conserver l'avis de copyright ci-dessus, cette liste de conditions et le déni de responsabilité suivant.

  • Les redistributions sous forme binaire doivent reproduire l'avis de copyright ci-dessus, cette liste de conditions et le déni de responsabilité suivant dans la documentation et/ou d'autres matériaux fournis avec la distribution.

  • Ni le nom d'ansible-nsq ni les noms de ses contributeurs ne peuvent être utilisés pour approuver ou promouvoir des produits dérivés de ce logiciel sans autorisation écrite préalable spécifique.

CE LOGICIEL EST FOURNI PAR LES TITULAIRES DE DROITS D'AUTEUR ET LES CONTRIBUTEURS "TELS QUELS" ET TOUTE GARANTIE EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, AUX GARANTIES IMPLICITES DE COMMERCIALISATION ET D'ADAPTATION À UN USAGE PARTICULIER SONT DÉNIÉES. EN AUCUN CAS, LE TITULAIRE DES DROITS D'AUTEUR OU LES CONTRIBUTEURS NE POURRONT ÊTRE TENUS RESPONSABLES DE TOUT DOMMAGE DIRECT, INDIRECT, ACCESSOIRE, SPÉCIAL, EXEMPLAIRE OU CONSÉCUTIF (Y COMPRIS, MAIS SANS S'Y LIMITER, L'ACQUISITION DE BIENS OU SERVICES SUBSTITUTS ; PERTE D'UTILISATION, DE DONNÉES OU DE PROFITS ; OU INTERRUPTION D'ACTIVITÉ) QUEL QU'EN SOIT LE CAUSE ET SUR TOUTE THÉORIE DE RESPONSABILITÉ, QUE CE SOIT EN VERTU D'UN CONTRAT, D'UNE RESPONSABILITÉ STRICTE OU DUN DÉLIT (Y COMPRIS LA NÉGLIGENCE OU AUTRES) DÉCOULANT DE QUELQUE MANIÈRE QUE CE SOIT DE L'UTILISATION DE CE LOGICIEL, MÊME SI AVIS A ÉTÉ DONNÉ DE LA POSSIBILITÉ D'UN TEL DOMMAGE.

Informations sur l'auteur

Twitter : @ernestas_poskus

À propos du projet

Ansible role for installing nsq realtime distributed messaging platform.

Installer
ansible-galaxy install ernestas-poskus.ansible-nsq
Licence
bsd-3-clause
Téléchargements
80
Propriétaire
pragmatic & ambitious