basho-labs.riak-kv
Rola Ansible dla Riak KV & TS
Ansible Riak to rola Ansible zaprojektowana do instalacji i konfiguracji Riak KV & TS. W połączeniu z hostami Ansible, można jej używać do konfiguracji pojedynczego węzła lub całego klastra.
Instalacja
Zależności
- Ansible 2.1+
Instalacja z Ansible Galaxy
$ ansible-galaxy install basho-labs.riak-kv
Następnie odwołaj się do roli w swoich playbookach lub innych rolach przy użyciu klucza basho-labs.riak-kv
.
Instalacja ręczna
Aby ręcznie zainstalować tę rolę, sklonuj repozytorium lub wyodrębnij pakiet dystrybucyjny do swojego katalogu ról.
Na przykład, jeśli używasz domyślnej lokalizacji dla ról, katalog ról byłby sąsiadem pliku playbook.yml, roles/
. Jeśli sklonujesz to repozytorium do katalogu ról, będziesz mógł odwołać się do roli przy użyciu klucza ansible-riak
.
Dokumentacja
Wszystkie dokumenty dotyczące tej roli są zawarte w tej sekcji pliku README.
Zmienne
Wszystkie zmienne, które można użyć w tej roli, można znaleźć w pliku domyślnych zmiennych. Aby nadpisać domyślne zmienne, wystarczy ustawić je w sekcji vars:
swojego pliku playbook.yml lub utworzyć własną rolę, która zdefiniuje tę rolę jako zależność, używając tych samych nazw zmiennych używanych w tej roli.
Szablony
Obecnie do roli dołączone są cztery szablony. Najważniejszym z nich jest szablon riak.conf.j2
, który konfiguruje parametry operacyjne dla Riak KV. Jeśli masz konkretne wymagania operacyjne dla swojego klastra, które znacznie różnią się od domyślnej konfiguracji, możesz nadpisać ten szablon własnym.
Są dwa sposoby nadpisania domyślnego szablonu:
- Nadpisz zmienną riak_conf_template i ustaw ją na absolutną / względną ścieżkę do szablonu na lokalnym systemie
- Utwórz nową rolę, która zdefiniuje tę rolę jako zależność i zapisz swój plik szablonu w katalogu szablonów, używając tej samej nazwy, co szablon, który chcesz nadpisać, w tym przypadku
riak.conf.j2
Przykłady
Nadpisywanie domyślnych zmiennych przez playbook
---
- hosts: riak
sudo: true
roles:
- { role: ansible-riak }
vars:
riak_pb_bind_ip: 10.29.7.192
riak_pb_port: 10017
Nadpisywanie domyślnych zmiennych przez zależność roli
Wewnątrz mamy pakiet vagrant-ansible, którego niektórzy z nas używają do testowania naszych bibliotek klienckich. Stworzyliśmy także rolę, która przygotowuje środowisko potrzebne do testów naszych bibliotek i deklaruje tę rolę jako zależność.
Instalacja Riak TS
---
- hosts: riakts
sudo: true
roles:
- { role: ansible-riak }
vars:
riak_package: 'riak-ts'
riak_backend: leveldb
riak_node_name: "riak@{{ ansible_default_ipv4['address'] }}"
riak_shell_group: 'riak-ts'
riak_anti_entropy: off
tasks:
- name: Ustaw próg ostrzegawczy dla rozmiaru obiektów
lineinfile: 'dest=/etc/riak/riak.conf line="object.size.warning_threshold = 50K" regexp: "^object.size.warning_threshold ="'
- name: Ustaw maksymalny próg rozmiaru obiektów
lineinfile: 'dest=/etc/riak/riak.conf line="object.size.maximum = 500K" regexp: "^object.size.maximum ="'
Budowanie klastra
Aby zbudować klaster, musisz polecić swojemu węzłowi Riak dołączenie do klastra, podając lidera klastra. Dzięki tej roli masz dwie możliwości, aby to zrobić. Za pomocą modułu command i narzędzia cli riak-admin lub za pomocą modułu Ansible Riak.
Moduł Command
---
- hosts: riak
sudo: true
roles:
- { role: ansible-riak }
vars:
ring_leader: [email protected]
tasks:
- name: Dołącz do klastra
command: '{{ riak_admin }} cluster join {{ ring_leader }}'
- name: Sprawdź status klastra Riak
command: '{{ riak_admin }} cluster status'
register: riak_ring_status
- name: Zaplanuj klaster
command: '{{ riak_admin }} cluster plan'
when: riak_ring_status.stdout.find('joining') > 0
- name: Zatwierdź klaster
command: '{{ riak_admin }} cluster commit'
when: riak_ring_status.stdout.find('joining') > 0
Moduł Riak
Moduł Riak ma dodatkową zaletę w postaci funkcjonalności wait_for_ring i wait_for_handoffs.
---
- hosts: riak
sudo: true
roles:
- { role: ansible-riak }
vars:
ring_leader: [email protected]
tasks:
- name: Dołącz do klastra
riak: command=join target_node={{ ring_leader }}
- name: Sprawdź status klastra Riak
command: 'riak-admin cluster status'
register: riak_ring_status
- name: Zaplanuj klaster
riak: command=plan wait_for_ring=300
when: riak_ring_status.stdout.find('joining') > 0
- name: Zatwierdź klaster
riak: command=commit wait_for_handoffs=300
when: riak_ring_status.stdout.find('joining') > 0
Wkład
Utrzymujący to repozytorium to inżynierowie z Basho i witamy każdy wkład w projekt! Możesz zacząć od zapoznania się z CONTRIBUTING.md, aby uzyskać informacje o wszystkim, od testowania po standardy kodowania.
Plan działania
- Na ten moment nic nie jest planowane.
Licencja i autorzy
- Autor: Bryan Hunt (https://github.com/binarytemple)
- Autor: Christopher Mancini (https://github.com/christophermancini)
Copyright (c) 2016 Basho Technologies, Inc. Licencjonowane na podstawie Licencji Apache, Wersja 2.0 („Licencja”). Aby uzyskać więcej szczegółów, zobacz Licencja.
Installs and configures Riak KV and TS, a distributed, highly available NoSQL and TimeSeries database.
ansible-galaxy install basho-labs.riak-kv