ernestas-poskus.ansible-nsq
ansible-nsq
Ansible-Rolle zur Installation der NSQ Echtzeit-Verteilten Messaging-Plattform.
Die Rolle verwaltet NSQ mit systemd. Unterstützte Plattformen sind:
- CentOS: >7
- Ubuntu: >16.04 (xenial)
Installation
ansible-galaxy install ernestas-poskus.ansible-nsq
Beispiel Playbook
- name: NSQ installieren
hosts: all
sudo: ja
roles:
- role: ernestas-poskus.ansible-nsq
Beispiel für die Einrichtung mehrerer Knoten
- name: NSQ installieren
hosts: nsqs
sudo: ja
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 }}"
Für die Einrichtung mehrerer Knoten aktualisieren Sie nsqd['broadcast_address'] oder konfigurieren Sie Ihre Hosts so, dass sie sich gegenseitig finden können.
Anforderungen
Keine.
Rollen-Variablen
---
# Standarddatei für 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:
Abhängigkeiten
Keine.
Testen
Sie müssen Ruby und VirtualBox installieren, um in einer virtuellen Maschine zu testen.
gem install bundler
bundle install
bundle exec kitchen test
=======
Lizenz
Copyright (c) 2016, Ernestas Poskus Alle Rechte vorbehalten.
Die Redistribution und Nutzung in Quell- und Binärform, mit oder ohne Änderungen, sind erlaubt, vorausgesetzt, dass die folgenden Bedingungen erfüllt sind:
Die Redistribution des Quellcodes muss den obigen Copyright-Hinweis, diese Liste von Bedingungen und den folgenden Haftungsausschluss enthalten.
Die Redistribution in binärer Form muss den obigen Copyright-Hinweis, diese Liste von Bedingungen und den folgenden Haftungsausschluss in der Dokumentation und/oder anderem Material, das mit der Distribution bereitgestellt wird, reproduzieren.
Weder der Name von ansible-nsq noch die Namen seiner Mitwirkenden dürfen zur Unterstützung oder Förderung von Produkten, die aus dieser Software abgeleitet sind, verwendet werden, ohne vorherige schriftliche Genehmigung.
DIESE SOFTWARE WIRD VON DEN COPYRIGHT-TEILEN UND MITWIRKENDEN "WIE BESEHEN" BEREITGESTELLT UND ALLE AUSDRÜCKLICHEN ODER STILLEN GARANTIEN, EINSCHLIESSLICH, ABER NICHT BEGRENZT AUF, DIE STILLEN GARANTIEN DER MARKTFÄHIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK, WERDEN ABGELEHNT. IN KEINEM FALL SOLLEN DIE URHEBERRECHTLICHEN INHABER ODER MITWIRKENDEN FÜR IRGENDEINE DIREKTE, INDIREKTE, ZUFÄLLIGE, BESONDERE, EXEMPLARISCHE ODER FOLGESCHÄDEN HAFTBAR GEMACHT WERDEN (EINSCHLIESSLICH, ABER NICHT BEGRENZT AUF, DAS BESORGEN VON ERSATZGÜTERN ODER -DIENSTLEISTUNGEN; VERLUST DER NUTZUNG, DATEN ODER GEWINNE; ODER BETRIEBSUNTERBRECHUNG), WIE AUCH IMMER VERURSACHT UND AUF JEDER HAFTUNGSTHEORIE, OB IM VERTRAG, STRIKTER HAFTUNG ODER DELIKT (EINSCHLIESSLICH NEGLIGENZ ODER ANDERES), DIE IN IRGENDEINER WEISE AUS DER NUTZUNG DER SOFTWARE ENTSTEHT, AUCH WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WURDE.
Autoreninformationen
Twitter: @ernestas_poskus
ansible-galaxy install ernestas-poskus.ansible-nsq