提交各组件部署Ansible剧本初版
This commit is contained in:
50
Nacos/2.0.2/role/tasks/deploy.yml
Normal file
50
Nacos/2.0.2/role/tasks/deploy.yml
Normal file
@@ -0,0 +1,50 @@
|
||||
- name: copy mysql to /usr/bin/
|
||||
copy:
|
||||
src: 'files/mysql'
|
||||
dest: '/usr/bin/'
|
||||
force: true
|
||||
mode: 0755
|
||||
|
||||
- name: Creating directory
|
||||
file:
|
||||
state: directory
|
||||
path: '{{ deploy_dir }}/{{ container_name }}/{{ item.dir }}'
|
||||
with_items:
|
||||
- { dir: 'conf' }
|
||||
- { dir: 'logs' }
|
||||
- { dir: 'init' }
|
||||
|
||||
- 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 Kafka config files
|
||||
template:
|
||||
src: '{{ item.src }}'
|
||||
dest: '{{ item.dest }}'
|
||||
mode: 0644
|
||||
with_items:
|
||||
- { src: 'application.properties.j2', dest: '{{ deploy_dir }}/{{ container_name }}/conf/application.properties' }
|
||||
- { src: 'cluster.conf.j2', dest: '{{ deploy_dir }}/{{ container_name }}/conf/cluster.conf' }
|
||||
- { src: 'nacos-logback.xml.j2', dest: '{{ deploy_dir }}/{{ container_name }}/conf/nacos-logback.xml' }
|
||||
- { src: 'nacos-mysql.sql.j2', dest: '{{ deploy_dir }}/{{ container_name }}/init/nacos-mysql.sql' }
|
||||
- { src: 'docker-compose.yml.j2', dest: '{{ deploy_dir }}/{{ container_name }}/docker-compose.yml' }
|
||||
notify:
|
||||
- Loading Image
|
||||
- Start Container
|
||||
|
||||
- block:
|
||||
- name: create nacos database
|
||||
shell: mysql -uroot -p{{ mariadb_default_pin }} -P3306 -h{{ groups.mariadb[0] }} -e "create database if not exists {{ nacos_database }} default character set utf8mb4 collate utf8mb4_general_ci;"
|
||||
|
||||
- name: exec nacos-mysql.sql
|
||||
shell: 'mysql -uroot -p{{ mariadb_default_pin }} -P3306 -h{{ groups.mariadb[0] }} {{ nacos_database }} < {{ deploy_dir }}/{{ container_name }}/init/nacos-mysql.sql'
|
||||
run_once: true
|
||||
delegate_to: '{{groups.nacos[0]}}'
|
||||
|
||||
- meta: flush_handlers
|
||||
|
||||
10
Nacos/2.0.2/role/tasks/main.yml
Normal file
10
Nacos/2.0.2/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"
|
||||
|
||||
15
Nacos/2.0.2/role/tasks/status-check.yml
Normal file
15
Nacos/2.0.2/role/tasks/status-check.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
- name: Waiting for the Nacos Server start,sleep 60s
|
||||
shell: sleep 60
|
||||
|
||||
- name: Check the Nacos node status
|
||||
shell: source /etc/profile && curl -s http://{{ inventory_hostname }}:8847/nacos/actuator/health | grep UP | wc -l
|
||||
register: check_nacos
|
||||
|
||||
- name: To terminate execution
|
||||
fail:
|
||||
msg: "检测到{{ inventory_hostname }}节点Nacos未正常启动;请保留日志反馈,路径:{{ deploy_dir }}/{{ container_name }}/logs"
|
||||
run_once: true
|
||||
delegate_to: 127.0.0.1
|
||||
when: check_nacos.stdout != '1'
|
||||
|
||||
|
||||
21
Nacos/2.0.2/role/tasks/uninstall.yml
Normal file
21
Nacos/2.0.2/role/tasks/uninstall.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
- 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
|
||||
|
||||
- name: Drop mariadb nacos database
|
||||
shell: mysql -s -uroot -p{{ mariadb_default_pin }} -P3306 -h{{ groups.mariadb[0] }} -e "DROP DATABASE IF EXISTS {{ nacos_database }};"
|
||||
run_once: true
|
||||
delegate_to: "{{ groups.nacos[0] }}"
|
||||
Reference in New Issue
Block a user