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

然后在您的playbooks或其他角色中使用密钥basho-labs.riak-kv引用该角色。

手动安装

要手动安装此角色,请克隆存储库或将发行包提取到您的角色目录中。

例如,如果您使用默认的角色位置,则角色目录将与您的playbook.yml文件同级,名为roles/。如果您将此存储库克隆到角色目录中,则可以使用键ansible-riak引用该角色。

文档

有关此角色的所有文档均包含在README的此部分中。

变量

可以在变量默认文件中找到此角色中可以使用的所有变量。要覆盖任何默认变量,只需在您的playbook.yml中的vars:部分设置它们,或创建您自己的角色,将此角色定义为依赖项,使用此角色中使用的相同变量名称。

模板

目前,角色中包含四个模板。最重要的是riak.conf.j2模板,因为它配置了Riak KV的操作参数。如果您对集群有特定的操作需求,与发行版配置显著不同,可以使用您自己的模板覆盖此模板。

覆盖默认模板有两种不同的方法:

  • 覆盖riak_conf_template变量,并将其设置为本地系统上模板的绝对/相对路径。
  • 创建一个新角色,将此角色定义为依赖项,并使用与您想要覆盖的模板完全相同的名称(在这种情况下为riak.conf.j2)将模板文件保存在templates目录中。

示例

通过Playbook覆盖默认变量

---
- 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节点通过提供环领导者加入集群。使用此角色,有两种方法可以做到这一点。通过命令模块和命令行工具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.riak-kv
许可证
other
下载
500
拥有者
The part of Basho Technologies that is 100% community contribution. Share code freely and regularly.