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
我们相关的剧本
作者信息
@AnsibleShipyard/developers 和其他人。