riak

Ansible Роль для Riak KV и TS

Статус сборки Ansible Galaxy

Ansible Riak — это роль Ansible, предназначенная для установки и настройки Riak KV и TS. В сочетании с хостами Ansible, она может использоваться для настройки одного узла или целого кластера.

  1. Установка
  2. Документация
  3. Примеры
  4. Вклад
  5. План
  6. Лицензия и Авторы

Установка

Зависимости

  • Ansible 2.1+

Установка из Ansible Galaxy

$ ansible-galaxy install 1it.riak

Затем укажите роль в ваших playbook или других ролях, используя ключ 1it.riak.

Установка вручную

Чтобы установить эту роль вручную, клонируйте репозиторий или извлеките дистрибутивный пакет в вашу директорию ролей.

Например, если вы используете место по умолчанию для ролей, директория ролей будет на одном уровне с вашим файлом playbook.yml — roles/. Если вы клонируете этот репозиторий в вашу директорию ролей, вы должны ссылаться на роль с ключом ansible-riak.

Документация

Вся документация для этой роли включена в этот раздел README.

Переменные

Все переменные, которые можно использовать в этой роли, можно найти в файле переменных по умолчанию. Чтобы переопределить любую из переменных по умолчанию, вам достаточно задать их в разделе vars: вашего файла playbook.yml или создать свою собственную роль, определяющую эту роль как зависимость, используя те же имена переменных, что и в этой роли.

Шаблоны

В настоящее время в роли включены четыре шаблона. Самый важный — это riak.conf.j2 шаблон, так как он настраивает операционные параметры для Riak KV. Если у вас есть специфические требования к работе вашего кольца, которые значительно отличаются от конфигурации дистрибутива, вы можете переопределить этот шаблон своим собственным.

Есть два способа переопределить шаблон по умолчанию:

  • Переопределите переменную riak_conf_template и укажите абсолютный / относительный путь к шаблону на локальной системе
  • Создайте новую роль, которая определяет эту роль как зависимость, и сохраните ваш файл шаблона в директории templates, используя то же самое имя файла, что и шаблон, который вы хотите переопределить, в данном случае riak.conf.j2

Примеры

Переопределение переменных по умолчанию через Playbook

---
- hosts: riak
  sudo: true
  roles:
    - { role: 1it.riak }
  vars:
    riak_pb_bind_ip: 10.29.7.192
    riak_pb_port:    10017

Переопределение переменных по умолчанию через зависимость роли

Внутри у нас есть пакет vagrant-ansible, который некоторые из нас используют для тестирования наших клиентских библиотек. Мы также создали роль, которая настраивает окружение, необходимое для тестов нашей библиотеки, и объявляет эту роль как зависимость.

Установка Riak TS

---
- hosts: riakts
  sudo: true
  roles:
    - { role: 1it.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 вступить в кластер, указав ведущего кольца. С этой ролью существует два способа сделать это. Через командный модуль и инструмент командной строки riak-admin или через модуль Ansible Riak.

Командный модуль

---
- hosts: riak
  sudo: true
  roles:
    - { role: 1it.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: 1it.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 для получения информации о тестировании и стандартах кодирования.

План

  • В данный момент ничего не запланировано.

Лицензия и Авторы

Copyright (c) 2016 Basho Technologies, Inc. Лицензировано по лицензии Apache License, Version 2.0 (далее "Лицензия"). Для получения дополнительных деталей смотрите Лицензию.

О проекте

Installs and configures Riak KV and TS, a distributed, highly available NoSQL and TimeSeries database.

Установить
ansible-galaxy install 1it/ansible-role-riak
Лицензия
other
Загрузки
119
Владелец
Site Reliability Engineer