basho-labs.riak-kv

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 basho-labs.riak-kv

その後、プレイブックや他のロールで basho-labs.riak-kv をキーとしてこのロールを参照します。

手動インストール

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

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

ドキュメント

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

変数

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

テンプレート

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

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

  • 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 ノードにクラスタに参加させるためのコマンドを、リングリーダーを提供して実行する必要があります。このロールを使用すると、次の2つの方法があります。 command module と cli ツール riak-admin を使う方法、または Ansible Riak module を使う方法です。

コマンドモジュール

---
- 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 を確認することから始めることができます。

ロードマップ

  • 現在のところ、計画はありません。

ライセンスと著者

Copyright (c) 2016 Basho Technologies, Inc. Apache License, Version 2.0 (「ライセンス」) の下でライセンスされています。詳細については、License を参照してください。

プロジェクトについて

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

インストール
ansible-galaxy install basho-labs.riak-kv
ライセンス
other
ダウンロード
500
所有者
The part of Basho Technologies that is 100% community contribution. Share code freely and regularly.