riak-kv

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 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 для получения информации о тестировании и стандартах кодирования.

План разработки

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

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

Авторские права (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
Лицензия
other
Загрузки
487
Владелец
The part of Basho Technologies that is 100% community contribution. Share code freely and regularly.