basho-labs.riak-kv
Riak KV & TS のための Ansible ロール
Ansible Riak は、Riak KV と TS をインストールおよび設定するための Ansible ロールです。Ansible ホストと組み合わせることで、単一のノードまたはクラスタ全体を構成するのに使用できます。
インストール
依存関係
- 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 を確認することから始めることができます。
ロードマップ
- 現在のところ、計画はありません。
ライセンスと著者
- 著者: Bryan Hunt (https://github.com/binarytemple)
- 著者: Christopher Mancini (https://github.com/christophermancini)
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