提交各组件部署Ansible剧本初版

This commit is contained in:
qidaijie
2024-01-18 15:35:33 +08:00
parent f0bd05d565
commit 0cc392df5c
262 changed files with 15927 additions and 0 deletions

View File

@@ -0,0 +1,89 @@
- 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: Getting readonly key sha256
shell: echo -n "{{ clickhouse_query_pin }}"|sha256sum | tr -d '-' | sed -e 's/^[ ]*//g' | sed -e 's/[ ]*$//g'
register: readonly_key_out
- name: Setting readonly_key_sha variable
set_fact: readonly_key_sha="{{readonly_key_out.stdout}}"
- name: Getting root key sha256
shell: echo -n "{{ clickhouse_default_pin }}"|sha256sum| tr -d '-' | sed -e 's/^[ ]*//g' | sed -e 's/[ ]*$//g'
register: root_key_out
- name: Setting root_key_sha variable
set_fact: root_key_sha="{{root_key_out.stdout}}"
- name: Modify clickhouse process limits
shell: if [ `cat /etc/security/limits.d/20-nproc.conf | grep clickhouse | wc -l` -eq "0" ];then echo "clickhouse soft nproc 65535" >> /etc/security/limits.d/20-nproc.conf ;fi
- name: Creating ClickHouse install path
file:
state: directory
path: '{{ deploy_dir }}/{{ container_name }}/{{ item.path }}'
with_items:
- { path: 'clickhouse-server' }
- { path: 'logs' }
- { path: 'monitor' }
- 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 ClickHouse configuration files
template:
src: '{{ item.src }}'
dest: '{{ item.dest }}'
force: true
with_items:
- { src: 'standalone/config.xml.j2', dest: '{{ deploy_dir }}/{{ container_name }}/clickhouse-server/config.xml' }
- { src: 'users.xml.j2', dest: '{{ deploy_dir }}/{{ container_name }}/clickhouse-server/users.xml' }
- { src: 'standalone/metrika_standalone.xml.j2', dest: '{{ deploy_dir }}/{{ container_name }}/clickhouse-server/metrika.xml' }
- { src: 'standalone/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
- name: Copying clickhouse_exporter-2.0.tar
copy:
src: 'files/clickhouse_exporter-2.0.tar'
dest: '{{ deploy_dir }}/clickhouse/monitor/'
force: true
notify:
- Loading Exporter Image
- name: Copying ClickHouse monitor files
template:
src: '{{ item.src }}'
dest: '{{ item.dest }}'
mode: '{{ item.mode }}'
force: true
with_items:
- { src: 'standalone/ck_monitor.sh.j2', dest: '{{ deploy_dir }}/clickhouse/monitor/ck_monitor.sh', mode: '0755' }
- { src: 'docker-compose_exporter.yml.j2', dest: '{{ deploy_dir }}/{{ container_name }}/monitor/docker-compose.yml', mode: '0644' }
notify:
- Start Exporter Container
- name: Adding a cron -> Check Clickhouse up to node_exporter
cron:
name: 'Check Clickhouse up to node_exporter'
minute: "*/5"
job: '{{ deploy_dir }}/clickhouse/monitor/ck_monitor.sh'
user: root
- meta: flush_handlers

View File

@@ -0,0 +1,14 @@
- name: Waitting for Clickhouse running,30s
shell: sleep 30
- name: Check the Clickhouse service status
shell: docker exec -it clickhouse clickhouse-client -h {{ inventory_hostname }} --port 9001 -m -u default --password {{ clickhouse_default_pin }} --query "SELECT version();" | grep "21.8.13.1.altinitystable" | wc -l
register: check_mode
- name: To terminate execution
fail:
msg: "检测到 {{ inventory_hostname }} 节点Clickhouse未正常启动请保留日志反馈路径{{ deploy_dir }}/clickhouse/logs"
run_once: true
delegate_to: 127.0.0.1
when: check_mode.stdout != '1'

View File

@@ -0,0 +1,50 @@
- 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: 'clickhouse_exporter'
state: absent
- name: Removing old exporter image
docker_image:
name: 'clickhouse_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 Clickhouse nodes
shell: "docker exec zookeeper zkCli.sh ls / | grep clickhouse | wc -l"
run_once: true
delegate_to: "{{ groups.zookeeper[0] }}"
register: has_zknode
- name: Delete Clickhouse nodes in ZooKeeper
shell: "docker exec zookeeper zkCli.sh rmr /clickhouse"
run_once: true
delegate_to: "{{ groups.zookeeper[0] }}"
when: has_zknode.stdout >= '1'
- name: Checking if the Clickhouse service already exists
shell: rpm -qa | grep clickhouse | wc -l
register: check_out
- name: To terminate execution
fail:
msg: "Uninstalling ClickHouse fails.Please uninstall manually with yum remove"
run_once: true
delegate_to: 127.0.0.1
when: check_out.stdout >= '1'