提交各组件部署Ansible剧本初版
This commit is contained in:
2
Redis/6.2.5/redis/hosts
Normal file
2
Redis/6.2.5/redis/hosts
Normal file
@@ -0,0 +1,2 @@
|
||||
[redis]
|
||||
192.168.45.102
|
||||
7
Redis/6.2.5/redis/install.yml
Normal file
7
Redis/6.2.5/redis/install.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
- hosts: redis
|
||||
remote_user: root
|
||||
roles:
|
||||
- role
|
||||
vars_files:
|
||||
- role/vars/main.yml
|
||||
|
||||
6
Redis/6.2.5/redis/role/defaults/main.yml
Normal file
6
Redis/6.2.5/redis/role/defaults/main.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
#The default installation location
|
||||
deploy_dir: /data/olap
|
||||
|
||||
#The default data storage location,use storing application data,logs and configuration files
|
||||
data_dir: /data/olap
|
||||
|
||||
24
Redis/6.2.5/redis/role/handlers/main.yml
Normal file
24
Redis/6.2.5/redis/role/handlers/main.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
- name: Loading Image
|
||||
docker_image:
|
||||
name: '{{ image_name }}'
|
||||
tag: '{{ image_tag }}'
|
||||
load_path: '{{ deploy_dir }}/{{ container_name }}/{{ image_name }}-{{ image_tag }}.tar'
|
||||
source: load
|
||||
force_tag: yes
|
||||
force_source: yes
|
||||
timeout: 300
|
||||
|
||||
- name: Stop Container
|
||||
docker_container:
|
||||
name: '{{ container_name }}'
|
||||
state: absent
|
||||
|
||||
- name: Start Container
|
||||
docker_compose:
|
||||
project_src: '{{ deploy_dir }}/{{ container_name }}/'
|
||||
|
||||
- name: Removing Image
|
||||
docker_image:
|
||||
name: '{{ image_name }}'
|
||||
tag: '{{ image_tag }}'
|
||||
state: absent
|
||||
48
Redis/6.2.5/redis/role/tasks/deploy-cluster.yml
Normal file
48
Redis/6.2.5/redis/role/tasks/deploy-cluster.yml
Normal file
@@ -0,0 +1,48 @@
|
||||
- name: Setting node_nums variable
|
||||
set_fact: node_nums={{ groups.redis|length }}
|
||||
|
||||
- name: To terminate execution
|
||||
fail:
|
||||
msg: "Redis in master-slave mode. The value must have 2 nodes,please checking configurations/hosts -> redis"
|
||||
when: node_nums != '2'
|
||||
|
||||
- name: Creating directory
|
||||
file:
|
||||
state: directory
|
||||
path: '{{ deploy_dir }}/{{ container_name }}/conf'
|
||||
|
||||
- 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 Redis config files
|
||||
template:
|
||||
src: 'redis-master.conf.j2'
|
||||
dest: '{{ deploy_dir }}/{{ container_name }}/conf/redis.conf'
|
||||
mode: 0644
|
||||
run_once: true
|
||||
delegate_to: "{{ groups.redis[0] }}"
|
||||
|
||||
- name: Copying Redis config files
|
||||
template:
|
||||
src: 'redis-slave.conf.j2'
|
||||
dest: '{{ deploy_dir }}/{{ container_name }}/conf/redis.conf'
|
||||
mode: 0644
|
||||
run_once: true
|
||||
delegate_to: "{{ groups.redis[1] }}"
|
||||
|
||||
- name: Copying Redis config files
|
||||
template:
|
||||
src: 'docker-compose.yml.j2'
|
||||
dest: '{{ deploy_dir }}/{{ container_name }}/docker-compose.yml'
|
||||
mode: 0644
|
||||
notify:
|
||||
- Loading Image
|
||||
- Start Container
|
||||
|
||||
- meta: flush_handlers
|
||||
|
||||
30
Redis/6.2.5/redis/role/tasks/deploy-standalone.yml
Normal file
30
Redis/6.2.5/redis/role/tasks/deploy-standalone.yml
Normal file
@@ -0,0 +1,30 @@
|
||||
- name: Creating directory
|
||||
file:
|
||||
state: directory
|
||||
path: '{{ deploy_dir }}/{{ container_name }}/conf'
|
||||
|
||||
- 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 Redis config files
|
||||
template:
|
||||
src: 'redis-master.conf.j2'
|
||||
dest: '{{ deploy_dir }}/{{ container_name }}/conf/redis.conf'
|
||||
mode: 0644
|
||||
|
||||
- name: Copying Redis config files
|
||||
template:
|
||||
src: 'docker-compose.yml.j2'
|
||||
dest: '{{ deploy_dir }}/{{ container_name }}/docker-compose.yml'
|
||||
mode: 0644
|
||||
notify:
|
||||
- Loading Image
|
||||
- Start Container
|
||||
|
||||
- meta: flush_handlers
|
||||
|
||||
11
Redis/6.2.5/redis/role/tasks/main.yml
Normal file
11
Redis/6.2.5/redis/role/tasks/main.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
- block:
|
||||
- include: uninstall.yml
|
||||
- include: "{{ playbook_name }}"
|
||||
vars:
|
||||
playbook_name: "{{ 'deploy-cluster.yml' if groups.mairadb | length > 1 else 'deploy-standalone.yml' }}"
|
||||
- include: status-check.yml
|
||||
when: (operation) == "install"
|
||||
|
||||
- block:
|
||||
- include: uninstall.yml
|
||||
when: (operation) == "uninstall"
|
||||
17
Redis/6.2.5/redis/role/tasks/status-check.yml
Normal file
17
Redis/6.2.5/redis/role/tasks/status-check.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
- name: Waitting for Redis running,10s
|
||||
shell: sleep 10
|
||||
|
||||
- name: Check if the Redis already exists
|
||||
shell: ps -ef | grep -v grep | grep "redis-server" | wc -l
|
||||
register: process_out
|
||||
|
||||
- name: Check if the Redis already exists
|
||||
shell: netstat -anlp | egrep "6379" | 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 != '2'
|
||||
16
Redis/6.2.5/redis/role/tasks/uninstall.yml
Normal file
16
Redis/6.2.5/redis/role/tasks/uninstall.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
- 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: Ansible delete old {{ deploy_dir }}/{{ container_name }}
|
||||
file:
|
||||
path: '{{ deploy_dir }}/{{ container_name }}'
|
||||
state: absent
|
||||
12
Redis/6.2.5/redis/role/templates/docker-compose.yml.j2
Normal file
12
Redis/6.2.5/redis/role/templates/docker-compose.yml.j2
Normal file
@@ -0,0 +1,12 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
redis:
|
||||
image: {{ image_name }}:{{ image_tag }}
|
||||
restart: always
|
||||
container_name: {{ container_name }}
|
||||
volumes:
|
||||
- {{ deploy_dir }}/{{ container_name }}/conf/redis.conf:/redis.conf
|
||||
- {{ deploy_dir }}/{{ container_name }}/data:/data
|
||||
command: redis-server /redis.conf
|
||||
network_mode: "host"
|
||||
2051
Redis/6.2.5/redis/role/templates/redis-master.conf.j2
Normal file
2051
Redis/6.2.5/redis/role/templates/redis-master.conf.j2
Normal file
File diff suppressed because it is too large
Load Diff
2052
Redis/6.2.5/redis/role/templates/redis-slave.conf.j2
Normal file
2052
Redis/6.2.5/redis/role/templates/redis-slave.conf.j2
Normal file
File diff suppressed because it is too large
Load Diff
19
Redis/6.2.5/redis/role/vars/main.yml
Normal file
19
Redis/6.2.5/redis/role/vars/main.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
#镜像名称
|
||||
image_name: redis
|
||||
|
||||
#镜像版本号
|
||||
image_tag: 6.2.5
|
||||
|
||||
#容器名称
|
||||
container_name: redis
|
||||
|
||||
#组件版本
|
||||
component_version: redis-6.2.5
|
||||
|
||||
#备份目录
|
||||
backup_path: "{{ deploy_dir }}/backup/platform/{{ old_version }}/{{ container_name }}"
|
||||
|
||||
#待备份的文件
|
||||
backup_items:
|
||||
- "{{ deploy_dir }}/{{ container_name }}/redis.conf"
|
||||
- "{{ deploy_dir }}/{{ container_name }}/docker-compose.yml"
|
||||
Reference in New Issue
Block a user