ernestas-poskus.ansible-nsq

ansible-nsq

Build Status

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)

NSQ admin

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

Über das Projekt

Ansible role for installing nsq realtime distributed messaging platform.

Installieren
ansible-galaxy install ernestas-poskus.ansible-nsq
GitHub Repository
Lizenz
bsd-3-clause
Downloads
80
Besitzer
pragmatic & ambitious