AnsibleShipyard.ansible-zookeeper

ansible-zookeeper

构建状态

Ansible 的 ZooKeeper 剧本

安装

ansible-galaxy install AnsibleShipyard.ansible-zookeeper

依赖

Java

要求

Ansible 版本至少为 1.6

角色变量

---
zookeeper_version: 3.4.12
zookeeper_url: http://www.us.apache.org/dist/zookeeper/zookeeper-{{zookeeper_version}}/zookeeper-{{zookeeper_version}}.tar.gz

# 选择使用 systemd 还是 upstart 作为启动服务的标志:
# 注意:默认情况下,Ubuntu 15.04 及更高版本使用 systemd(但支持切换到 upstart)
zookeeper_debian_systemd_enabled: "{{ ansible_distribution_version|version_compare(15.04, '>=') }}"
zookeeper_debian_apt_install: false
# (可选)根据发行版版本添加自定义 'ppa' 仓库(仅当 debian_apt_install=true 时)
# 示例:在 Ubuntu 14.04 上使用社区 zookeeper v3.4.8 deb 包(官方最新版为 v3.4.5)
zookeeper_debian_apt_repositories:
  - repository_url: "ppa:ufscar/zookeeper"
    distro_version: "14.04"

apt_cache_timeout: 3600
zookeeper_register_path_env: false

client_port: 2181
init_limit: 5
sync_limit: 2
tick_time: 2000
zookeeper_autopurge_purgeInterval: 0
zookeeper_autopurge_snapRetainCount: 10
zookeeper_cluster_ports: "2888:3888"
zookeeper_max_client_connections: 60

data_dir: /var/lib/zookeeper
log_dir: /var/log/zookeeper
zookeeper_dir: /opt/zookeeper-{{zookeeper_version}} # 或者当 zookeeper_debian_apt_install 为 true 时为 /usr/share/zookeeper
zookeeper_conf_dir: {{zookeeper_dir}} # 或者当 zookeeper_debian_apt_install 为 true 时为 /etc/zookeeper
zookeeper_tarball_dir: /opt/src

zookeeper_hosts_hostname: "{{inventory_hostname}}"
# 字典列表(即 {zookeeper_hosts:[{host:,id:},{host:,id:},...]})
zookeeper_hosts:
  - host: "{{zookeeper_hosts_hostname}}" # 正在运行的机器
    id: 1

# 要写入(可选)conf/zookeeper-env.sh 的环境设置字典
zookeeper_env: {}

# 控制 Zookeeper myid 的生成
zookeeper_force_myid: yes

示例剧本

- name: 安装 ZooKeeper
  hosts: all
  sudo: yes
  roles:
    - role: AnsibleShipyard.ansible-zookeeper

从 S3 获取压缩包的示例

- name: 安装 ZooKeeper
  hosts: all
  sudo: yes
  vars:
    zookeeper_archive_s3_bucket: my-s3-bucket
    zookeeper_archive_s3_object: my/s3/directory/zookeeper-{{zookeeper_version}}.tar.gz
  roles:
    - role: AnsibleShipyard.ansible-zookeeper

集群示例

- name: ZooKeeper 集群设置
  hosts: zookeepers
  sudo: yes
  roles:
    - role: AnsibleShipyard.ansible-zookeeper
      zookeeper_hosts: "{{groups['zookeepers']}}"

假设 zookeepers 是在库存文件中定义的 主机组

[zookeepers]
server[1:3]

每个主机组自定义 IP

zookeeper_hosts: "
    {%- set ips = [] %}
    {%- for host in groups['zookeepers'] %}
    {{- ips.append(dict(id=loop.index, host=host, ip=hostvars[host]['ansible_default_ipv4'].address)) }}
    {%- endfor %}
    {{- ips -}}"

查看这个示例 剧本,展示了如何使用此剧本和其他剧本。它是 ansible-galaxy-roles 的一部分,作为我们所有 Ansible 剧本的汇编和示例。

许可

MIT 许可证 (MIT)

版权 (c) 2014 Kien Pham

特此免费授予任何获得本软件及相关文档文件(“软件”)副本的人,处理该软件的权限,包括但不限于使用、复制、修改、合并、出版、分发、再许可和/或销售该软件副本的权利,并允许提供软件的人这样做,遵循以下条件:

上述版权声明和本许可声明应包含在所有软件副本或重大部分中。

该软件按“原样”提供,无任何种类的保证,无论是明示的还是暗示的,包括但不限于对适销性、特定用途适用性和不侵权的保证。在任何情况下,作者或版权持有者对由于使用该软件或对软件的其他交易中产生的任何索赔、损害或其他责任不承担责任,无论是在合同、侵权或其他行为中。

AnsibleShipyard

我们相关的剧本

  1. ansible-mesos
  2. ansible-marathon
  3. ansible-chronos
  4. ansible-zookeeper

作者信息

@AnsibleShipyard/developers 和其他人。

关于项目

Ansible Zookeeper Role

安装
ansible-galaxy install AnsibleShipyard.ansible-zookeeper
许可证
mit
下载
288.8k
拥有者
Ansible Roles with a touch of Docker