Add tarball install method
Change-Id: I44d663aea48912a8addbd9288687491fa490703e Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This commit is contained in:
parent
f7660bbaee
commit
d3a985ae61
16
.zuul.yaml
16
.zuul.yaml
|
@ -1,13 +1,23 @@
|
|||
---
|
||||
- job:
|
||||
name: ansible-role-zookeeper
|
||||
name: ansible-role-zookeeper-base
|
||||
run: tests/playbooks/run.yaml
|
||||
roles:
|
||||
- zuul: windmill/ansible-role-zookeeper
|
||||
|
||||
- job:
|
||||
name: ansible-role-zookeeper-tarball
|
||||
parent: ansible-role-zookeeper-base
|
||||
nodeset: ubuntu-bionic
|
||||
vars:
|
||||
zookeeper_install_method: tarball
|
||||
zookeeper_service_zookeeper_manage: false
|
||||
zookeeper_tarball_version: 3.5.9
|
||||
zookeeper_file_zookeeper_service_src: etc/systemd/system/zookeeper.service.j2
|
||||
|
||||
- job:
|
||||
name: ansible-role-zookeeper-ubuntu-bionic
|
||||
parent: ansible-role-zookeeper
|
||||
parent: ansible-role-zookeeper-base
|
||||
nodeset: ubuntu-bionic
|
||||
|
||||
- project:
|
||||
|
@ -15,9 +25,11 @@
|
|||
- windmill-jobs-bionic
|
||||
check:
|
||||
jobs:
|
||||
- ansible-role-zookeeper-tarball
|
||||
- ansible-role-zookeeper-ubuntu-bionic
|
||||
- tox-linters
|
||||
gate:
|
||||
jobs:
|
||||
- ansible-role-zookeeper-tarball
|
||||
- ansible-role-zookeeper-ubuntu-bionic
|
||||
- tox-linters
|
||||
|
|
|
@ -14,11 +14,18 @@
|
|||
---
|
||||
# tasks/main.yaml
|
||||
zookeeper_task_manager:
|
||||
- pre
|
||||
- install
|
||||
- config
|
||||
- service
|
||||
|
||||
# tasks/config.yaml
|
||||
zookeeper_user_name: zookeeper
|
||||
zookeeper_user_group: zookeeper
|
||||
zookeeper_user_home: /var/lib/zookeeper
|
||||
zookeeper_user_home_mode: 0750
|
||||
# zookeeper_user_shell:
|
||||
|
||||
zookeeper_file_myid_group: zookeeper
|
||||
zookeeper_file_myid_mode: 0644
|
||||
zookeeper_file_myid_owner: zookeeper
|
||||
|
@ -32,7 +39,27 @@ zookeeper_package_state: present
|
|||
|
||||
zookeeper_install_method: package
|
||||
|
||||
zookeeper_tarball_version:
|
||||
zookeeper_tarball_dest: "/opt/tarballs/zookeeper-{{ zookeeper_tarball_version }}"
|
||||
zookeeper_tarball_remote_src: true
|
||||
zookeeper_tarball_src: "https://archive.apache.org/dist/zookeeper/zookeeper-{{ zookeeper_tarball_version }}/apache-zookeeper-{{ zookeeper_tarball_version }}-bin.tar.gz"
|
||||
|
||||
# tasks/service.yaml
|
||||
zookeeper_file_zookeeper_service_dest: /etc/systemd/system/zookeeper.service
|
||||
zookeeper_file_zookeeper_service_group: root
|
||||
zookeeper_file_zookeeper_service_manage: false
|
||||
zookeeper_file_zookeeper_service_mode: 0644
|
||||
zookeeper_file_zookeeper_service_owner: root
|
||||
zookeeper_file_zookeeper_service_src: etc/systemd/system/zookeeper.service
|
||||
|
||||
zookeeper_file_zookeeper_service_config_dest: /etc/systemd/system/zookeeper.service.d/override.conf
|
||||
zookeeper_file_zookeeper_service_config_group: root
|
||||
zookeeper_file_zookeeper_service_config_manage: false
|
||||
zookeeper_file_zookeeper_service_config_mode: 0644
|
||||
zookeeper_file_zookeeper_service_config_owner: root
|
||||
zookeeper_file_zookeeper_service_config_src: etc/systemd/system/zookeeper.service.d/override.conf
|
||||
|
||||
zookeeper_service_zookeeper_daemon_reload: true
|
||||
zookeeper_service_zookeeper_enabled: yes
|
||||
zookeeper_service_zookeeper_manage: true
|
||||
zookeeper_service_zookeeper_name: zookeeper
|
||||
|
|
|
@ -32,6 +32,18 @@
|
|||
zookeeper_file_zoo_conf_src: "{{ __zookeeper_file_zoo_conf_src }}"
|
||||
when: zookeeper_file_zoo_conf_src is not defined
|
||||
|
||||
- name: Create required directories
|
||||
become: true
|
||||
file:
|
||||
group: "{{ zookeeper_user_group }}"
|
||||
owner: "{{ zookeeper_user_name }}"
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
with_items:
|
||||
- /etc/zookeeper
|
||||
- /etc/zookeeper/conf
|
||||
- /var/log/zookeeper
|
||||
|
||||
- name: Install zookeeper myid
|
||||
become: yes
|
||||
template:
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
# Copyright 2021 Red Hat, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
---
|
||||
- name: Create required directory
|
||||
become: true
|
||||
file:
|
||||
path: "{{ zookeeper_tarball_dest }}"
|
||||
state: directory
|
||||
|
||||
- name: Ensure zookeeper is present
|
||||
become: true
|
||||
unarchive:
|
||||
creates: "{{ zookeeper_tarball_dest }}"
|
||||
dest: "{{ zookeeper_tarball_dest }}"
|
||||
remote_src: "{{ zookeeper_tarball_remote_src }}"
|
||||
src: "{{ zookeeper_tarball_src }}"
|
||||
|
||||
- name: Stat zookeeper_tarball_symlink
|
||||
stat:
|
||||
path: "{{ zookeeper_tarball_symlink | dirname }}"
|
||||
register: r
|
||||
no_log: true
|
||||
when: zookeeper_tarball_symlink is defined
|
||||
|
||||
- name: Create zookeeper_tarball_symlink directory
|
||||
become: true
|
||||
file:
|
||||
state: directory
|
||||
path: "{{ zookeeper_tarball_symlink | dirname }}"
|
||||
when:
|
||||
- zookeeper_tarball_symlink is defined
|
||||
- not r.stat.exists
|
||||
|
||||
- name: Symlink zookeeper tarball
|
||||
become: true
|
||||
file:
|
||||
dest: "{{ zookeeper_tarball_symlink }}"
|
||||
src: "{{ zookeeper_tarball_dest }}"
|
||||
state: link
|
||||
when:
|
||||
- zookeeper_tarball_dest is defined
|
||||
- zookeeper_tarball_symlink is defined
|
||||
- zookeeper_tarball_dest != zookeeper_tarball_symlink
|
|
@ -0,0 +1,36 @@
|
|||
# Copyright 2021 Red Hat, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
---
|
||||
- name: Create zookeeper user / group
|
||||
block:
|
||||
- name: Create group account
|
||||
become: true
|
||||
group:
|
||||
name: "{{ zookeeper_user_group }}"
|
||||
|
||||
- name: Create user account
|
||||
become: true
|
||||
user:
|
||||
createhome: true
|
||||
group: "{{ zookeeper_user_group }}"
|
||||
home: "{{ zookeeper_user_home }}"
|
||||
name: "{{ zookeeper_user_name }}"
|
||||
shell: "{{ zookeeper_user_shell|default(omit) }}"
|
||||
|
||||
- name: Set permissions on home directory
|
||||
become: true
|
||||
file:
|
||||
path: "{{ zookeeper_user_home }}"
|
||||
mode: "{{ zookeeper_user_home_mode }}"
|
||||
when: zookeeper_install_method != 'package'
|
|
@ -12,6 +12,40 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
---
|
||||
- name: Install systemd files
|
||||
block:
|
||||
- name: Install zookeeper service script into place
|
||||
become: true
|
||||
template:
|
||||
dest: "{{ zookeeper_file_zookeeper_service_dest }}"
|
||||
group: "{{ zookeeper_file_zookeeper_service_group }}"
|
||||
mode: "{{ zookeeper_file_zookeeper_service_mode }}"
|
||||
owner: "{{ zookeeper_file_zookeeper_service_owner }}"
|
||||
src: "{{ zookeeper_file_zookeeper_service_src }}"
|
||||
register: zookeeper_file_zookeeper_service
|
||||
when: zookeeper_file_zookeeper_service_manage
|
||||
|
||||
- name: Create zookeeper service config directory
|
||||
become: true
|
||||
file:
|
||||
group: "{{ zookeeper_file_zookeeper_service_config_group }}"
|
||||
owner: "{{ zookeeper_file_zookeeper_service_config_owner }}"
|
||||
path: "{{ zookeeper_file_zookeeper_service_dest }}.d"
|
||||
state: directory
|
||||
when: zookeeper_file_zookeeper_service_config_manage
|
||||
|
||||
- name: Install zookeeper service config into place
|
||||
become: true
|
||||
template:
|
||||
dest: "{{ zookeeper_file_zookeeper_service_config_dest }}"
|
||||
group: "{{ zookeeper_file_zookeeper_service_config_group }}"
|
||||
mode: "{{ zookeeper_file_zookeeper_service_config_mode }}"
|
||||
owner: "{{ zookeeper_file_zookeeper_service_config_owner }}"
|
||||
src: "{{ zookeeper_file_zookeeper_service_config_src }}"
|
||||
register: zookeeper_file_zookeeper_service_config
|
||||
when: zookeeper_file_zookeeper_service_config_manage
|
||||
when: zookeeper_install_method != 'package'
|
||||
|
||||
- name: Enable zookeeper service
|
||||
become: yes
|
||||
service:
|
||||
|
@ -20,3 +54,14 @@
|
|||
state: "{{ zookeeper_service_zookeeper_state }}"
|
||||
register: zookeeper_service_zookeeper
|
||||
when: zookeeper_service_zookeeper_manage
|
||||
|
||||
- name: Set zookeeper service state
|
||||
become: true
|
||||
systemd:
|
||||
daemon_reload: "{{ zookeeper_service_zookeeper_daemon_reload }}"
|
||||
name: "{{ zookeeper_service_zookeeper_name }}"
|
||||
state: "{{ zookeeper_service_zookeeper_state }}"
|
||||
register: zookeeper_service_zookeeper_state_info
|
||||
when:
|
||||
- zookeeper_service_zookeeper_manage
|
||||
- zookeeper_service_zookeeper_state in ['reloaded', 'restarted', 'started', 'stopped']
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
[Unit]
|
||||
Description=ZooKeeper Service
|
||||
Documentation=http://zookeeper.apache.org
|
||||
Requires=network.target
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
User=zookeeper
|
||||
Group=zookeeper
|
||||
ExecStart=/opt/zookeeper/bin/zkServer.sh --config /etc/zookeeper/conf start-foreground
|
||||
ExecStop=/opt/zookeeper/bin/zkServer.sh --config /opt/zookeeper/conf stop
|
||||
ExecReload=/opt/zookeeper/bin/zkServer.sh --config /opt/zookeeper/conf restart
|
||||
WorkingDirectory=/var/lib/zookeeper
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
Loading…
Reference in New Issue