提交各组件部署Ansible剧本初版
This commit is contained in:
72
Apache Kafka/3.4.1/kafka/role/tasks/deploy.yml
Normal file
72
Apache Kafka/3.4.1/kafka/role/tasks/deploy.yml
Normal file
@@ -0,0 +1,72 @@
|
||||
- name: Setting node_nums variable
|
||||
set_fact: node_nums="{{groups.kafka|length}}"
|
||||
|
||||
- block:
|
||||
- name: Check the Zookeeper status
|
||||
shell: netstat -anlp | egrep "2181" | grep LISTEN | wc -l
|
||||
register: port_out
|
||||
delegate_to: "{{ groups.zookeeper[0] }}"
|
||||
|
||||
- name: To terminate execution
|
||||
fail:
|
||||
msg: "Port 2181 of the zookeeper node is not monitored. The status may be abnormal"
|
||||
run_once: true
|
||||
delegate_to: 127.0.0.1
|
||||
when: port_out.stdout != '1'
|
||||
|
||||
- name: Creating directory
|
||||
file:
|
||||
state: directory
|
||||
path: '{{ deploy_dir }}/{{ container_name }}/{{ item.dir }}'
|
||||
with_items:
|
||||
- { dir: 'kafka-logs' }
|
||||
- { dir: 'config' }
|
||||
- { dir: 'logs' }
|
||||
- { dir: 'monitor' }
|
||||
|
||||
- name: unpack {{ component_version }}.tgz to /usr/local/
|
||||
unarchive:
|
||||
src: 'files/{{ component_version }}.tgz'
|
||||
dest: '/usr/local/'
|
||||
|
||||
- name: Copying Kafka config files
|
||||
template:
|
||||
src: '{{ item.src }}'
|
||||
dest: '{{ item.dest }}'
|
||||
mode: 0755
|
||||
with_items:
|
||||
- { src: 'kafka-operation.sh.j2', dest: '/usr/local/{{ component_version }}/bin/kafka-operation.sh' }
|
||||
- { src: 'kafka.sh.j2', dest: '/etc/profile.d/kafka.sh' }
|
||||
|
||||
- name: Copying image to {{ deploy_dir }}/{{ container_name }}/
|
||||
copy:
|
||||
src: 'files/{{ image_name }}-{{ image_tag }}.tar'
|
||||
dest: '{{ deploy_dir }}/{{ container_name }}/'
|
||||
force: true
|
||||
notify:
|
||||
- Loading Image
|
||||
|
||||
- name: Copying image to {{ deploy_dir }}/{{ container_name }}/monitor
|
||||
copy:
|
||||
src: 'files/kafka_exporter-v2.0.tar'
|
||||
dest: '{{ deploy_dir }}/{{ container_name }}/monitor/'
|
||||
force: true
|
||||
notify:
|
||||
- Loading Exporter Image
|
||||
|
||||
- name: Copying Kafka config files
|
||||
template:
|
||||
src: '{{ item.src }}'
|
||||
dest: '{{ item.dest }}'
|
||||
mode: 0644
|
||||
with_items:
|
||||
- { src: 'server.properties.j2', dest: '{{ deploy_dir }}/{{ container_name }}/config/server.properties' }
|
||||
- { src: 'docker-compose.yml.j2', dest: '{{ deploy_dir }}/{{ container_name }}/docker-compose.yml' }
|
||||
- { src: 'docker-compose_exporter.yml.j2', dest: '{{ deploy_dir }}/{{ container_name }}/monitor/docker-compose.yml' }
|
||||
notify:
|
||||
- Start Container
|
||||
- Start Exporter Container
|
||||
|
||||
- meta: flush_handlers
|
||||
|
||||
|
||||
10
Apache Kafka/3.4.1/kafka/role/tasks/main.yml
Normal file
10
Apache Kafka/3.4.1/kafka/role/tasks/main.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
- block:
|
||||
- include: uninstall.yml
|
||||
- include: deploy.yml
|
||||
- include: status-check.yml
|
||||
when: (operation) == "install"
|
||||
|
||||
- block:
|
||||
- include: uninstall.yml
|
||||
when: (operation) == "uninstall"
|
||||
|
||||
17
Apache Kafka/3.4.1/kafka/role/tasks/status-check.yml
Normal file
17
Apache Kafka/3.4.1/kafka/role/tasks/status-check.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
- name: Waitting for Kafka running,60s
|
||||
shell: sleep 60
|
||||
|
||||
- name: Check if the Kafka already exists
|
||||
shell: ps -ef | grep -v grep | grep kafka.Kafka | wc -l
|
||||
register: process_out
|
||||
|
||||
- name: Check if the Kafka already exists
|
||||
shell: netstat -anlp | egrep "9092|9094|9095" | grep LISTEN | wc -l
|
||||
register: port_out
|
||||
|
||||
- name: To terminate execution
|
||||
fail:
|
||||
msg: "Kafka on node {{ inventory_hostname }} is not started. Please check"
|
||||
run_once: true
|
||||
delegate_to: 127.0.0.1
|
||||
when: process_out.stdout != '1' or port_out.stdout != '3'
|
||||
39
Apache Kafka/3.4.1/kafka/role/tasks/uninstall.yml
Normal file
39
Apache Kafka/3.4.1/kafka/role/tasks/uninstall.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
- block:
|
||||
- name: Stopping and removing {{ container_name }} container
|
||||
docker_container:
|
||||
name: '{{ container_name }}'
|
||||
state: absent
|
||||
|
||||
- name: Removing old {{ image_name }} image
|
||||
docker_image:
|
||||
name: '{{ image_name }}'
|
||||
tag: '{{ image_tag }}'
|
||||
state: absent
|
||||
|
||||
- name: Stopping and removing exporter container
|
||||
docker_container:
|
||||
name: 'kafka_exporter'
|
||||
state: absent
|
||||
|
||||
- name: Removing old exporter image
|
||||
docker_image:
|
||||
name: 'kafka_exporter'
|
||||
tag: 'v2.0'
|
||||
state: absent
|
||||
|
||||
- name: Ansible delete old {{ deploy_dir }}/{{ container_name }}
|
||||
file:
|
||||
path: '{{ deploy_dir }}/{{ container_name }}'
|
||||
state: absent
|
||||
|
||||
- name: Checking ZooKeeper has Kafka nodes
|
||||
shell: "docker exec -it zookeeper zkCli.sh ls / | grep kafka | wc -l"
|
||||
run_once: true
|
||||
delegate_to: "{{ groups.zookeeper[0] }}"
|
||||
register: has_zknode
|
||||
|
||||
- name: Delete Kafka nodes in ZooKeeper
|
||||
shell: "docker exec -it zookeeper zkCli.sh rmr /kafka"
|
||||
run_once: true
|
||||
delegate_to: "{{ groups.zookeeper[0] }}"
|
||||
when: has_zknode.stdout >= '1'
|
||||
Reference in New Issue
Block a user