ernestas-poskus.ansible-nsq
ansible-nsq
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)
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
Ansible role for installing nsq realtime distributed messaging platform.
ansible-galaxy install ernestas-poskus.ansible-nsq