From 3773c86a35a72c5ee9f2daf4a5ea4a60a9a2be51 Mon Sep 17 00:00:00 2001 From: shiqinfeng Date: Sat, 18 Nov 2023 09:12:33 +0800 Subject: [PATCH] update daily --- .../docker/ansible_playbook/install_nacos.yml | 41 +++++++++++ .../ansible_playbook/prepare_infra_images.yml | 35 +++++++++- deploy/docker/ansible_playbook/vars.yml | 27 +++++++- deploy/docker/config_nacos.env | 4 +- deploy/docker/config_promethus.yaml | 3 +- deploy/docker/docker_compose_nacos.yml | 68 ------------------- deploy/docker/docker_compose_nacos1.yml | 19 ++++++ deploy/docker/docker_compose_nacos2.yml | 20 ++++++ deploy/docker/docker_compose_nacos3.yml | 20 ++++++ deploy/docker/docker_compose_nacos_mysql.yml | 16 +++++ deploy/docker/dockerfile.nacos_mysql | 4 +- 11 files changed, 180 insertions(+), 77 deletions(-) create mode 100644 deploy/docker/ansible_playbook/install_nacos.yml delete mode 100644 deploy/docker/docker_compose_nacos.yml create mode 100644 deploy/docker/docker_compose_nacos1.yml create mode 100644 deploy/docker/docker_compose_nacos2.yml create mode 100644 deploy/docker/docker_compose_nacos3.yml create mode 100644 deploy/docker/docker_compose_nacos_mysql.yml diff --git a/deploy/docker/ansible_playbook/install_nacos.yml b/deploy/docker/ansible_playbook/install_nacos.yml new file mode 100644 index 0000000..defd2ca --- /dev/null +++ b/deploy/docker/ansible_playbook/install_nacos.yml @@ -0,0 +1,41 @@ +--- +- name: Get docker Image Registry Hostname + hosts: registry + tasks: + - name: get registry hostname + command: cat /etc/hostname + register: registry_hostname + +- name: Install Nacos + hosts: nacos + vars_files: + - vars.yml + vars: + - registry_addr: "{{registry_hostname.stdout}}:{{registry_srv_port}}" + become: true + tasks: + - name: Copy Docker Compose files + template: + src: ../{{ item }} + dest: /tmp/{{ item }} + force: true + loop: + - "{{nacos1_compose_file}}" + - "{{nacos2_compose_file}}" + - "{{nacos3_compose_file}}" + - "{{nacos_mysql_compose_file}}" + + - name: Start Nacos1 + shell: + cmd: "docker-compose -f /tmp/{{nacos1_compose_file}} up -d" + when: nacos1_host == ansible_hostname + + # - name: Delete docker-compose.yml + # file: + # dest: /tmp/{{ item }} + # state: absent + # loop: + # - "{{nacos1_compose_file}}" + # - "{{nacos2_compose_file}}" + # - "{{nacos3_compose_file}}" + # - "{{nacos_mysql_compose_file}}" diff --git a/deploy/docker/ansible_playbook/prepare_infra_images.yml b/deploy/docker/ansible_playbook/prepare_infra_images.yml index 32402bd..6557449 100644 --- a/deploy/docker/ansible_playbook/prepare_infra_images.yml +++ b/deploy/docker/ansible_playbook/prepare_infra_images.yml @@ -13,7 +13,7 @@ vars: - registry_addr: "{{registry_hostname.stdout}}:{{registry_srv_port}}" tasks: - - name: Pull Images + - name: Pull Images From Web command: "docker pull {{item}}" loop: "{{infra_images_list}}" @@ -21,12 +21,41 @@ command: "docker tag {{item}} {{registry_addr}}/{{item}}" loop: "{{infra_images_list}}" + + - name: Copy Dockerfiles + copy: + src: "../{{ item }}" + dest: "/tmp/{{ item }}" + mode: 777 + loop: + "{{local_infra_images_dockerfile_list}}" + + - name: Make Lcal Images + # command: "docker build -f /tmp/{{item.0}} -t {{registry_addr}}/{{item.1}} ." + with_together: + - "{{local_infra_images_dockerfile_list}}" + - "{{local_infra_images_list}}" + docker_image: + name: "{{registry_addr}}/{{item.1}}" + build: + path: /tmp + dockerfile: "{{item.0}}" + source: build + state: present + - name: Push Images command: "docker push {{registry_addr}}/{{item}}" loop: - "{{infra_images_list}}" + "{{infra_images_list + local_infra_images_list}}" + - name: Remove Downloaded Images command: "docker rmi {{registry_addr}}/{{item}} {{item}}" loop: "{{infra_images_list}}" - when: delete_download_images == True \ No newline at end of file + when: delete_download_images == True + - name: Remove Local Images + command: "docker rmi {{registry_addr}}/{{item}}" + loop: + "{{local_infra_images_list}}" + when: delete_download_images == True + \ No newline at end of file diff --git a/deploy/docker/ansible_playbook/vars.yml b/deploy/docker/ansible_playbook/vars.yml index 4ada0c6..6605a45 100644 --- a/deploy/docker/ansible_playbook/vars.yml +++ b/deploy/docker/ansible_playbook/vars.yml @@ -4,10 +4,13 @@ docker_registry_compose_file: docker_compose_docker_registry.yml # docker私有仓库的compose文件 registry_srv_port: 8080 # docker私有仓库的服务端口 +######################################################################### +# 基础设施镜像相关配置 +######################################################################### prometheus_image: prom/prometheus:latest grafana_image: grafana/grafana:latest -nacos_mysql_image: nacos/mysql:8.0.31 nacos_image: nacos/nacos-server:latest +nacos_mysql_image: nacos/mysql:8.0.31 infra_images_list: # 在线下载的基础设施的镜像列表 - "{{prometheus_image}}" @@ -15,15 +18,37 @@ infra_images_list: # 在线下载的基础设施的镜像列表 - "{{nacos_image}}" local_infra_images_list: # 本地打包的基础设施的镜像列表 - "{{nacos_mysql_image}}" +local_infra_images_dockerfile_list: # 注意顺序保存和local_infra_images_list一致 + - "dockerfile.nacos_mysql" delete_download_images: true # 是否删除本地已上传到私有仓库的基础设施镜像 ######################################################################### # nacos相关配置 ######################################################################### +nacos1_compose_file: docker_compose_nacos1.yml # nacos1的compose文件 +nacos2_compose_file: docker_compose_nacos2.yml # nacos2的compose文件 +nacos3_compose_file: docker_compose_nacos3.yml # nacos3的compose文件 +nacos_mysql_compose_file: docker_compose_nacos_mysql.yml #nacos的mysql的compose文件 config_nacos_mysql: config_nacos_mysql.env # nacos使用的数据库的配置 config_nacos: config_nacos.env # nacos的配置 nacos_mysql_port: 13306 # nacos使用的mysql的服务端口 +nacos_mysql_host: master # nacos使用的mysql的服务地址,该主机的dns需要配置在部署nacos的机子上, 并在ansible主机清单维护 +nacos1_host: master # nacos1的服务地址,该主机的dns需要配置在部署nacos/promethus的机子上, 并在ansible主机清单维护 +nacos1_conn_port1: 7848 +nacos1_conn_port2: 9848 +nacos1_conn_port3: 9849 +nacos1_srv_port: 8848 +nacos2_host: master # nacos2的服务地址,该主机的dns需要配置在部署nacos/promethus的机子上, 并在ansible主机清单维护 +nacos2_conn_port1: 7849 +nacos2_conn_port2: 9849 +nacos2_conn_port3: 9850 +nacos2_srv_port: 8849 +nacos3_host: master # nacos3的服务地址,该主机的dns需要配置在部署nacos/promethus的机子上, 并在ansible主机清单维护 +nacos3_conn_port1: 7850 +nacos3_conn_port2: 9850 +nacos3_conn_port3: 9851 +nacos3_srv_port: 8850 ######################################################################### # prometheus相关配置 diff --git a/deploy/docker/config_nacos.env b/deploy/docker/config_nacos.env index b42a2c2..5db3750 100644 --- a/deploy/docker/config_nacos.env +++ b/deploy/docker/config_nacos.env @@ -1,7 +1,7 @@ PREFER_HOST_MODE=hostname -NACOS_SERVERS=nacos1:8848 nacos2:8849 nacos3:8850 +NACOS_SERVERS={{nacos1_host}}:{{nacos1_srv_port}} {{nacos2_host}}:{{nacos2_srv_port}} {{nacos3_host}}:{{nacos3_srv_port}} SPRING_DATASOURCE_PLATFORM=mysql -MYSQL_SERVICE_HOST=mysql +MYSQL_SERVICE_HOST={{nacos_mysql_host}} MYSQL_SERVICE_DB_NAME=nacos_kvdata MYSQL_SERVICE_PORT={{nacos_mysql_port}} MYSQL_SERVICE_USER=nacos diff --git a/deploy/docker/config_promethus.yaml b/deploy/docker/config_promethus.yaml index 3a8f9fa..3743f45 100644 --- a/deploy/docker/config_promethus.yaml +++ b/deploy/docker/config_promethus.yaml @@ -31,4 +31,5 @@ scrape_configs: - job_name: 'nacos' metrics_path: '/nacos/actuator/prometheus' static_configs: - - targets: ["nacos1:8848","nacos2:8849","nacos3:8850"] \ No newline at end of file + - targets: ["{{nacos1_host}}:{{nacos1_srv_port}}","{{nacos2_host}}:{{nacos2_srv_port}}","{{nacos3_host}}:{{nacos3_srv_port}}"] + \ No newline at end of file diff --git a/deploy/docker/docker_compose_nacos.yml b/deploy/docker/docker_compose_nacos.yml deleted file mode 100644 index f2520f3..0000000 --- a/deploy/docker/docker_compose_nacos.yml +++ /dev/null @@ -1,68 +0,0 @@ -version: "3.8" -services: - nacos1: - hostname: nacos1 - container_name: nacos1 - image: "{{registry_addr}}/{{nacos_image}}" - volumes: - - ./cluster-logs/nacos1:/home/nacos/logs - ports: - - "7848:7848" - - "8848:8848" - - "9868:9848" - - "9850:9849" - env_file: - - ./{{config_nacos}} - restart: always - depends_on: - mysql: - condition: service_healthy - - nacos2: - hostname: nacos2 - image: "{{registry_addr}}/{{nacos_image}}" - container_name: nacos2 - volumes: - - ./cluster-logs/nacos2:/home/nacos/logs - ports: - - "7849:7848" - - "8849:8848" - - "9869:9848" - - "9851:9849" - env_file: - - ./{{config_nacos}} - restart: always - depends_on: - mysql: - condition: service_healthy - nacos3: - hostname: nacos3 - image: "{{registry_addr}}/{{nacos_image}}" - container_name: nacos3 - volumes: - - ./cluster-logs/nacos3:/home/nacos/logs - ports: - - "7850:7848" - - "8850:8848" - - "9870:9848" - - "9852:9849" - env_file: - - ./{{config_nacos}} - restart: always - depends_on: - mysql: - condition: service_healthy - mysql: - container_name: mysql - image: "{{registry_addr}}/{{nacos_mysql_image}}" - env_file: - - ./{{config_nacos_mysql}} - volumes: - - ./mysql:/var/lib/mysql - ports: - - "{{nacos_mysql_port}}:3306" - healthcheck: - test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ] - interval: 5s - timeout: 10s - retries: 10 \ No newline at end of file diff --git a/deploy/docker/docker_compose_nacos1.yml b/deploy/docker/docker_compose_nacos1.yml new file mode 100644 index 0000000..f6674b4 --- /dev/null +++ b/deploy/docker/docker_compose_nacos1.yml @@ -0,0 +1,19 @@ +version: "3.8" +services: + nacos1: + hostname: nacos1 + container_name: nacos1 + image: "{{registry_addr}}/{{nacos_image}}" + volumes: + - ./cluster-logs/nacos1:/home/nacos/logs + ports: + - "{{nacos1_conn_port1}}:7848" + - "{{nacos1_srv_port}}:8848" + - "{{nacos1_conn_port2}}:9848" + - "{{nacos1_conn_port3}}:9849" + env_file: + - ./{{config_nacos}} + restart: always + depends_on: + mysql: + condition: service_healthy \ No newline at end of file diff --git a/deploy/docker/docker_compose_nacos2.yml b/deploy/docker/docker_compose_nacos2.yml new file mode 100644 index 0000000..aa848cf --- /dev/null +++ b/deploy/docker/docker_compose_nacos2.yml @@ -0,0 +1,20 @@ +version: "3.8" +services: + nacos2: + hostname: nacos2 + image: "{{registry_addr}}/{{nacos_image}}" + container_name: nacos2 + volumes: + - ./cluster-logs/nacos2:/home/nacos/logs + ports: + - "{{nacos2_conn_port1}}:7848" + - "{{nacos2_srv_port}}:8848" + - "{{nacos2_conn_port2}}:9848" + - "{{nacos2_conn_port3}}:9849" + env_file: + - ./{{config_nacos}} + restart: always + depends_on: + mysql: + condition: service_healthy + \ No newline at end of file diff --git a/deploy/docker/docker_compose_nacos3.yml b/deploy/docker/docker_compose_nacos3.yml new file mode 100644 index 0000000..d96ee2d --- /dev/null +++ b/deploy/docker/docker_compose_nacos3.yml @@ -0,0 +1,20 @@ +version: "3.8" +services: + nacos2: + hostname: nacos2 + image: "{{registry_addr}}/{{nacos_image}}" + container_name: nacos2 + volumes: + - ./cluster-logs/nacos2:/home/nacos/logs + ports: + - "{{nacos3_conn_port1}}:7848" + - "{{nacos3_srv_port}}:8848" + - "{{nacos3_conn_port2}}:9848" + - "{{nacos3_conn_port3}}:9849" + env_file: + - ./{{config_nacos}} + restart: always + depends_on: + mysql: + condition: service_healthy + \ No newline at end of file diff --git a/deploy/docker/docker_compose_nacos_mysql.yml b/deploy/docker/docker_compose_nacos_mysql.yml new file mode 100644 index 0000000..40ec000 --- /dev/null +++ b/deploy/docker/docker_compose_nacos_mysql.yml @@ -0,0 +1,16 @@ +version: "3.8" +services: + mysql: + container_name: mysql + image: "{{registry_addr}}/{{nacos_mysql_image}}" + env_file: + - ./{{config_nacos_mysql}} + volumes: + - ./mysql:/var/lib/mysql + ports: + - "{{nacos_mysql_port}}:3306" + healthcheck: + test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ] + interval: 5s + timeout: 10s + retries: 10 \ No newline at end of file diff --git a/deploy/docker/dockerfile.nacos_mysql b/deploy/docker/dockerfile.nacos_mysql index 22531f2..351ba97 100644 --- a/deploy/docker/dockerfile.nacos_mysql +++ b/deploy/docker/dockerfile.nacos_mysql @@ -1,5 +1,5 @@ -FROM mysql:8.0.31 -ADD https://raw.githubusercontent.com/alibaba/nacos/develop/distribution/conf/mysql-schema.sql /docker-entrypoint-initdb.d/nacos-mysql.sql +FROM dockerproxy.com/library/mysql:8.0.31 +ADD https://raw.staticdn.net/alibaba/nacos/develop/distribution/conf/mysql-schema.sql /docker-entrypoint-initdb.d/nacos-mysql.sql RUN chown -R mysql:mysql /docker-entrypoint-initdb.d/nacos-mysql.sql EXPOSE 3306 CMD ["mysqld", "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"] \ No newline at end of file