ernestas-poskus.ansible-nsq
ansible-nsq
Rola instalacyjna Ansible dla platformy komunikacyjnej NSQ w czasie rzeczywistym.
Rola zarządza NSQ za pomocą systemd. Obsługiwane platformy:
- CentOS: >7
- Ubuntu: >16.04 (xenial)
Instalacja
ansible-galaxy install ernestas-poskus.ansible-nsq
Przykładowy Playbook
- name: Instalacja NSQ
hosts: all
sudo: yes
roles:
- role: ernestas-poskus.ansible-nsq
Przykład dla konfiguracji z wieloma węzłami
- name: Instalacja 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 }}"
W przypadku konfiguracji z wieloma węzłami zaktualizuj nsqd['broadcast_address'] lub skonfiguruj swoje hosty, aby mogły się odnaleźć.
Wymagania
Brak.
Zmienne roli
---
# plik domyślny dla 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:
Zależności
Brak.
Testowanie
Musisz zainstalować Ruby i VirtualBox do testowania w maszynach wirtualnych.
gem install bundler
bundle install
bundle exec kitchen test
=======
Licencja
Copyright (c) 2016, Ernestas Poskus Wszelkie prawa zastrzeżone.
Redystrybucja i użycie w formie źródłowej i binarnej, z lub bez modyfikacji, są dozwolone, pod warunkiem, że spełnione są następujące warunki:
Redystrybucje źródła muszą zawierać powyższy wyjątek autorski, tę listę warunków i poniższy zrzut odpowiedzialności.
Redystrybucje w formie binarnej muszą reprodukować powyższy wyjątek autorski, tę listę warunków i poniższy zrzut odpowiedzialności w dokumentacji i/lub innych materiałach dostarczanych z rozdzieleniem.
Nazwa ansible-nsq ani nazwy jego współtwórców nie mogą być używane do popierania lub promowania produktów pochodzących z tego oprogramowania bez uprzedniej pisemnej zgody.
NINIEJSZE OPROGRAMOWANIE JEST DOSTARCZANE PRZEZ POSIADACZY PRAW AUTORSKICH I WSPÓŁTWÓRCÓW "TAK JAK JEST" I WSZELKIE WYRAŹNE LUB DOMNIEMANE GWARANCJE, W TYM, ALE NIE TYLKO DO, DOMNIEMANE GWARANCJE PRZYDATNOŚCI HANDLOWEJ I PRZYDATNOŚCI DO OKREŚLONYCH CELÓW SĄ ZAPISANE. W ŻADNYM WYPADKU POSIADACZ PRAW AUTORSKICH ANI WSPÓŁTWÓRCY NIE BĘDĄ ODPOWIEDZIALNI ZA ŻADNE SZKODY POŚREDNIE, WTÓRNE, INCYDENTALNE, SZCZEGÓLNE, WZORCOWE LUB KONSEKWENTNE (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) JAKICHKOLWIEK, W JAKIMKOLWIEK NAUCZALNIU ODPOWIEDZIALNOŚCI ZA UŻYCIE TEGO OPROGRAMOWANIA, NAWET JEŚLI ZOSTAŁY OSTRZEŻONE O MOŻLIWOŚCI TAKIEGO USZKODZENIA.
Informacje o autorze
Twitter: @ernestas_poskus
ansible-galaxy install ernestas-poskus.ansible-nsq