1it.riak

Riak KV & TS用のAnsibleロール

ビルドステータス Ansible Galaxy

Ansible Riakは、Riak KV & TSをインストールおよび構成するために設計されたAnsibleロールです。Ansibleホストと組み合わせることで、単一ノードまたはクラスター全体を構成できます。

  1. インストール
  2. ドキュメント
  3. 貢献
  4. ロードマップ
  5. ライセンスと著者

インストール

依存関係

  • Ansible 2.1以上

Ansible Galaxyによるインストール

$ ansible-galaxy install 1it.riak

次に、プレイブックや他のロールでキー1it.riakを使ってこのロールを参照します。

手動インストール

このロールを手動でインストールするには、リポジトリをクローンするか、配布パッケージをロールディレクトリに抽出します。

たとえば、ロールのデフォルトの場所を使用する場合、ロールディレクトリはplaybook.ymlファイルの隣にroles/になります。このリポジトリをロールディレクトリにクローンした場合、キーansible-riakを使ってこのロールを参照できます。

ドキュメント

このロールに関するすべてのドキュメントは、READMEのこのセクションに含まれています。

変数

このロールで使用できるすべての変数は、デフォルトの変数ファイルにあります。デフォルトの変数を上書きするには、playbook.ymlvars:セクションで設定するか、同じ変数名を使ってこのロールを依存関係として定義した独自のロールを作成します。

テンプレート

現在、このロールには4つのテンプレートが含まれています。最も重要なのはriak.conf.j2テンプレートです。これはRiak KVの動作パラメータを設定します。配布構成と大きく異なる運用要件がある場合は、このテンプレートを自分のものに上書きできます。

デフォルトのテンプレートを上書きする方法は2つあります:

  • riak_conf_template変数を上書きし、ローカルシステムのテンプレートへの絶対/相対パスを設定します。
  • このロールを依存関係として定義する新しいロールを作成し、上書きしたいテンプレートと同じ名前のテンプレートファイルをテンプレートディレクトリに保存します。この場合はriak.conf.j2です。

プレイブックによるデフォルト変数の上書き

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

ロール依存によるデフォルト変数の上書き

私たちは、クライアントライブラリをテストするために一部で使用しているvagrant-ansibleパッケージをinternallyに持っています。また、ライブラリテストに必要な環境を設定し、このロールを依存関係として宣言するロールも作成しました。

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ノードにクラスターに参加するよう指示する必要があります。この役割を使用すると、2つの方法でこれが行えます。 commandモジュール経由またはcliツール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.riak
ライセンス
other
ダウンロード
144
所有者
Site Reliability Engineer