riak-kv
Ansible Роль для Riak KV и TS
Ansible Riak – это роль Ansible, предназначенная для установки и настройки Riak KV и TS. В сочетании с хостами Ansible ее можно использовать для настройки одного узла или всего кластера.
Установка
Зависимости
- Ansible 2.1+
Установка из Ansible Galaxy
$ ansible-galaxy install basho-labs.riak-kv
Затем укажите роль в ваших плейбуках или других ролях, используя ключ basho-labs.riak-kv
.
Ручная установка
Чтобы вручную установить эту роль, клонируйте репозиторий или извлеките дистрибутив в каталог ваших ролей.
Например, если вы используете стандартное расположение для ролей, каталог ролей будет братом вашего файла playbook.yml, т.е. roles/
. Если вы клонируете этот репозиторий в каталог ролей, то вы будете обращаться к роли с ключом ansible-riak
.
Документация
Вся документация для этой роли включена в этот раздел README.
Переменные
Все переменные, которые могут быть использованы в этой роли, вы можете найти в файле значений по умолчанию. Чтобы переопределить любую из переменных по умолчанию, просто установите их в секции vars:
вашего playbook.yml или создайте свою собственную роль, определяющую эту роль как зависимость, используя те же имена переменных, что и в этой роли.
Шаблоны
В данный момент в роль включено четыре шаблона. Самый важный – это шаблон riak.conf.j2
, так как он настраивает параметры работы для Riak KV. Если у вас есть специальные требования к работе вашего кольца, которые значительно отличаются от конфигурации дистрибуции, вы можете переопределить этот шаблон своим.
Существует два способа переопределить шаблон по умолчанию:
- Переопределите переменную riak_conf_template и установите ее на абсолютный / относительный путь к шаблону на локальной системе.
- Создайте новую роль, которая определяет эту роль как зависимость, и сохраните ваш файл шаблона в каталоге шаблонов с таким же именем, как и шаблон, который вы хотите переопределить, в данном случае
riak.conf.j2
.
Примеры
Переопределение переменных по умолчанию через плейбук
---
- hosts: riak
sudo: true
roles:
- { role: ansible-riak }
vars:
riak_pb_bind_ip: 10.29.7.192
riak_pb_port: 10017
Переопределение переменных по умолчанию через зависимость роли
Внутренне у нас есть пакет vagrant-ansible, который некоторые из нас используют для тестирования наших клиентских библиотек. Мы также создали роль, которая настраивает окружение, необходимое для тестов нашей библиотеки, и объявляет эту роль как зависимость.
Установка 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: Установить пороговый уровень предупреждения по размеру объекта
lineinfile: 'dest=/etc/riak/riak.conf line="object.size.warning_threshold = 50K" regexp: "^object.size.warning_threshold ="'
- name: Установить максимальный порог по размеру объекта
lineinfile: 'dest=/etc/riak/riak.conf line="object.size.maximum = 500K" regexp: "^object.size.maximum ="'
Создание кластера
Чтобы создать кластер, вам нужно командовать вашему узлу Riak, чтобы он вступил в кластер, предоставив ему лидера кольца. С этой ролью есть два способа это сделать. Через модуль команд и инструмент cli riak-admin или через модуль Ansible Riak.
Модуль команд
---
- hosts: riak
sudo: true
roles:
- { role: ansible-riak }
vars:
ring_leader: [email protected]
tasks:
- name: Вступить в кластер
command: '{{ riak_admin }} cluster join {{ ring_leader }}'
- name: Проверить кольцо Riak
command: '{{ riak_admin }} cluster status'
register: riak_ring_status
- name: Запланировать кластер
command: '{{ riak_admin }} cluster plan'
when: riak_ring_status.stdout.find('joining') > 0
- name: Подтвердить кластер
command: '{{ riak_admin }} cluster commit'
when: riak_ring_status.stdout.find('joining') > 0
Модуль Riak
Модуль Riak имеет дополнительное преимущество в использовании функций wait_for_ring и wait_for_handoffs.
---
- hosts: riak
sudo: true
roles:
- { role: ansible-riak }
vars:
ring_leader: [email protected]
tasks:
- name: Вступить в кластер
riak: command=join target_node={{ ring_leader }}
- name: Проверить кольцо Riak
command: 'riak-admin cluster status'
register: riak_ring_status
- name: Запланировать кластер
riak: command=plan wait_for_ring=300
when: riak_ring_status.stdout.find('joining') > 0
- name: Подтвердить кластер
riak: command=commit wait_for_handoffs=300
when: riak_ring_status.stdout.find('joining') > 0
Участие
Поддержка этого репозитория осуществляется инженерами компании Basho, и мы приветствуем ваш вклад в проект! Вы можете начать с того, что ознакомитесь с CONTRIBUTING.md для получения информации о тестировании и стандартах кодирования.
План разработки
- На данный момент ничего не запланировано.
Лицензия и авторы
- Автор: Брайан Хант (https://github.com/binarytemple)
- Автор: Кристофер Мансини (https://github.com/christophermancini)
Авторские права (c) 2016 Basho Technologies, Inc. Лицензировано по лицензии Apache, версия 2.0 (далее "Лицензия"). Для получения дополнительной информации смотрите Лицензию.
Installs and configures Riak KV and TS, a distributed, highly available NoSQL and TimeSeries database.
ansible-galaxy install basho-labs/ansible-riak