123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- ---
- - name: Deploy Java Application
- hosts: webservers
- vars:
- app_name: yudao-server
- app_version: "{{ lookup('env', 'APP_VERSION') | default('latest', true) }}"
- app_home: /root/mall
- app_user: root
- app_group: root
- java_opts: "-XX:HeapDumpPath={{ app_home }}/logs/heapError"
- health_check_url: "http://192.168.110.86:48080/actuator/health/"
- tasks:
- - name: Create application directories
- ansible.builtin.file:
- path: "{{ item }}"
- state: directory
- mode: "0755"
- owner: "{{ app_user }}"
- group: "{{ app_group }}"
- with_items:
- - "{{ app_home }}"
- - "{{ app_home }}/backup"
- - "{{ app_home }}/logs"
- - "{{ app_home }}/config"
- - name: Stop service if running
- ansible.builtin.systemd:
- name: yudao
- state: stopped
- ignore_errors: true
- - name: Backup existing jar
- ansible.builtin.copy:
- src: "{{ app_home }}/{{ app_name }}.jar"
- dest: "{{ app_home }}/backup/{{ app_name }}-{{ ansible_date_time.iso8601 }}.jar"
- remote_src: true
- ignore_errors: true
- when: ansible_date_time is defined
- - name: Copy application jar
- ansible.builtin.copy:
- src: "../../yudao-server/target/{{ app_name }}.jar"
- dest: "{{ app_home }}/{{ app_name }}.jar"
- owner: "{{ app_user }}"
- group: "{{ app_group }}"
- mode: "0644"
- notify: Restart application
- - name: Create service file
- ansible.builtin.template:
- src: templates/yudao.service.j2
- dest: /etc/systemd/system/yudao.service
- mode: "0644"
- notify: Reload systemd
- - name: Start and enable service
- ansible.builtin.systemd:
- name: yudao
- state: started
- enabled: true
- daemon_reload: false
- handlers:
- - name: Restart application
- ansible.builtin.systemd:
- name: yudao
- state: restarted
- - name: Reload systemd
- ansible.builtin.systemd:
- daemon_reload: true
|