-
Notifications
You must be signed in to change notification settings - Fork 66
/
main.yaml
169 lines (151 loc) · 4.29 KB
/
main.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
---
- name: Create zookeeper group
group:
name: '{{ zookeeper_group }}'
state: present
tags:
- zookeeper_user
- name: Create zookeeper user
user:
name: '{{ zookeeper_user }}'
group: '{{ zookeeper_group }}'
state: present
createhome: no
tags:
- zookeeper_group
- name: Check if ZooKeeper has already been downloaded and unpacked
stat:
path: '{{ zookeeper_root_dir }}/zookeeper-{{ zookeeper_version }}'
register: dir
- name: Download Apache ZooKeeper
get_url:
url: "{{ zookeeper_mirror }}/zookeeper-{{ zookeeper_version }}/zookeeper-{{ zookeeper_version }}.tar.gz"
dest: /tmp
when: not dir.stat.exists
tags:
- zookeeper_download
- name: Unpack Apache ZooKeeper
unarchive:
src: /tmp/zookeeper-{{ zookeeper_version }}.tar.gz
dest: '{{ zookeeper_root_dir }}'
copy: no
group: '{{ zookeeper_group }}'
owner: '{{ zookeeper_user }}'
when: not dir.stat.exists
tags:
- zookeeper_unpack
- name: Create symlink to ZooKeeper installation
file:
src: '{{ zookeeper_install_dir }}'
dest: '{{ zookeeper_dir }}'
state: link
group: '{{ zookeeper_group }}'
owner: '{{ zookeeper_user }}'
tags:
- zookeeper_dirs
- name: Create directory for snapshot files and myid file
file:
path: '{{ zookeeper_data_dir }}'
state: directory
group: '{{ zookeeper_group }}'
owner: '{{ zookeeper_user }}'
tags:
- zookeeper_dirs
- name: Create directory for transaction log files
file:
path: '{{ zookeeper_data_log_dir }}'
state: directory
group: '{{ zookeeper_group }}'
owner: '{{ zookeeper_user }}'
tags:
- zookeeper_dirs
- name: Create zookeeper log directory
file:
path: '{{ zookeeper_log_dir }}'
state: directory
group: '{{ zookeeper_group }}'
owner: '{{ zookeeper_user }}'
tags:
- zookeeper_dirs
# /usr/share/zookeeper/conf/zoo.cfg is the default file ZooKeeper will use when starting
- name: Template configuration file to zoo.cfg
template:
src: zoo.cfg.j2
dest: '{{ zookeeper_dir }}/conf/zoo.cfg'
notify:
- Restart ZooKeeper service
tags:
- zookeeper_config
- name: Create directory for symlink to ZooKeeper configuration file
file:
path: /etc/zookeeper
state: directory
group: '{{ zookeeper_group }}'
owner: '{{ zookeeper_user }}'
tags:
- zookeeper_config
- name: Create symlink to ZooKeeper configuration file
file:
src: '{{ zookeeper_dir }}/conf/zoo.cfg'
dest: /etc/zookeeper/zoo.cfg
state: link
group: '{{ zookeeper_group }}'
owner: '{{ zookeeper_user }}'
tags:
- zookeeper_config
- name: Template myid to {{ zookeeper_data_dir }}/myid
template:
src: myid.j2
dest: '{{ zookeeper_data_dir }}/myid'
notify:
- Restart ZooKeeper service
tags:
- zookeeper_config
- name: Template /etc/default
template:
src: default.j2
dest: '/etc/default/zookeeper'
notify:
- Restart ZooKeeper service
tags:
- zookeeper_config
# Uncomment the log4j.properties line for setting the maximum number of logs to rollover and keep
- name: Set maximum log rollover history
replace:
dest: '{{ zookeeper_dir }}/conf/log4j.properties'
regexp: '^#log4j.appender.ROLLINGFILE.MaxBackupIndex'
replace: 'log4j.appender.ROLLINGFILE.MaxBackupIndex'
notify:
- Restart ZooKeeper service
tags:
- zookeeper_config
- name: Template ZooKeeper systemd service file
template:
src: zookeeper.service.j2
dest: /usr/lib/systemd/system/zookeeper.service
notify:
- Restart ZooKeeper service
tags:
- zookeeper_service
- name: Start the ZooKeeper service
service:
name: zookeeper.service
state: started
enabled: yes
tags:
- zookeeper_service
# Cleanup install by deleting downloaded ZooKeeper archive
- name: Delete ZooKeeper tar.gz file
file:
path: /tmp/zookeeper-{{ zookeeper_version }}.tar.gz
state: absent
tags:
- zookeeper_cleanup
# Set Ansible fact that ZooKeeper has completed installation. This is so that this role can be used in
# other dependent roles. Those roles can check for this fact to determine whether or not this role
# should be run. Failing to do so will mean that this role is executed even if it has already been run.
- name: Set fact zookeeper_installed
set_fact:
zookeeper_installed: true
tags:
- zookeeper_install_fact