删除 XXXigCC 安装、卸载、更新和 Pool URL 更新脚本
This commit is contained in:
@@ -1,60 +0,0 @@
|
|||||||
---
|
|
||||||
- name: XXXigCC 安装脚本
|
|
||||||
hosts: all
|
|
||||||
become: yes
|
|
||||||
|
|
||||||
vars:
|
|
||||||
# 必填参数
|
|
||||||
pool_url: ""
|
|
||||||
cc_url: ""
|
|
||||||
cc_token: ""
|
|
||||||
|
|
||||||
# 可选参数(布尔值)
|
|
||||||
enable_cc: true
|
|
||||||
enable_tls: true
|
|
||||||
enable_cc_tls: true
|
|
||||||
enable_keepalive: true
|
|
||||||
enable_1gb_pages: true
|
|
||||||
|
|
||||||
# 脚本URL
|
|
||||||
install_script_url: "https://gitea.bcde.io/wangdefa/xxxigcc/raw/branch/main/script/install.deb.sh"
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
- name: 构建安装命令参数
|
|
||||||
ansible.builtin.set_fact:
|
|
||||||
install_command: >-
|
|
||||||
bash /tmp/install.deb.sh
|
|
||||||
-o '{{ pool_url }}'
|
|
||||||
{{ '--keepalive' if enable_keepalive else '' }}
|
|
||||||
{{ '--1gb-pages' if enable_1gb_pages else '' }}
|
|
||||||
{{ '--tls' if enable_tls else '' }}
|
|
||||||
{{ '--cc' if enable_cc else '' }}
|
|
||||||
{{ '--cc-url ' + cc_url if enable_cc else '' }}
|
|
||||||
{{ '--cc-token ' + cc_token if enable_cc else '' }}
|
|
||||||
{{ '--cc-tls' if enable_cc and enable_cc_tls else '' }}
|
|
||||||
|
|
||||||
- name: 显示将要执行的命令
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "{{ install_command }}"
|
|
||||||
|
|
||||||
- name: 下载安装脚本
|
|
||||||
ansible.builtin.get_url:
|
|
||||||
url: "{{ install_script_url }}"
|
|
||||||
dest: /tmp/install.deb.sh
|
|
||||||
mode: '0755'
|
|
||||||
force: yes
|
|
||||||
|
|
||||||
- name: 执行安装脚本
|
|
||||||
ansible.builtin.shell: "{{ install_command }}"
|
|
||||||
args:
|
|
||||||
executable: /bin/bash
|
|
||||||
register: install_output
|
|
||||||
|
|
||||||
- name: 显示安装结果
|
|
||||||
ansible.builtin.debug:
|
|
||||||
var: install_output.stdout_lines
|
|
||||||
|
|
||||||
- name: 清理临时脚本
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: /tmp/install.deb.sh
|
|
||||||
state: absent
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
---
|
|
||||||
- name: XXXigCC 卸载脚本
|
|
||||||
hosts: all
|
|
||||||
become: yes
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
- name: 下载卸载脚本
|
|
||||||
ansible.builtin.get_url:
|
|
||||||
url: https://gitea.bcde.io/wangdefa/xxxigcc/raw/branch/main/script/uninstall.sh
|
|
||||||
dest: /tmp/uninstall.sh
|
|
||||||
mode: '0755'
|
|
||||||
force: yes
|
|
||||||
validate_certs: yes
|
|
||||||
register: download_result
|
|
||||||
|
|
||||||
- name: 执行卸载脚本
|
|
||||||
ansible.builtin.shell: /tmp/uninstall.sh -y --purge
|
|
||||||
args:
|
|
||||||
executable: /bin/bash
|
|
||||||
register: script_output
|
|
||||||
changed_when: true
|
|
||||||
|
|
||||||
- name: 显示脚本执行结果
|
|
||||||
ansible.builtin.debug:
|
|
||||||
var: script_output.stdout_lines
|
|
||||||
|
|
||||||
- name: 清理临时脚本文件
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: /tmp/uninstall.sh
|
|
||||||
state: absent
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
---
|
|
||||||
- name: XXXigCC 更新和服务启动脚本
|
|
||||||
hosts: all
|
|
||||||
become: yes
|
|
||||||
|
|
||||||
vars:
|
|
||||||
# 服务配置
|
|
||||||
package_name: "xxxigcc"
|
|
||||||
service_name: "xxxigcc-daemon.service"
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
- name: 更新 APT 软件包缓存
|
|
||||||
ansible.builtin.apt:
|
|
||||||
update_cache: yes
|
|
||||||
register: apt_update
|
|
||||||
changed_when: apt_update.cache_updated
|
|
||||||
|
|
||||||
- name: 显示 APT 缓存更新结果
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "APT 软件包缓存已更新"
|
|
||||||
|
|
||||||
- name: 安装或更新 xxxigcc 软件包
|
|
||||||
ansible.builtin.apt:
|
|
||||||
name: "{{ package_name }}"
|
|
||||||
state: latest
|
|
||||||
register: package_install
|
|
||||||
|
|
||||||
- name: 显示软件包安装结果
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "{{ package_name }} 软件包已{{ '更新' if package_install.changed else '确认为最新版本' }}"
|
|
||||||
|
|
||||||
- name: 启用 xxxigcc-daemon 服务开机自启
|
|
||||||
ansible.builtin.systemd:
|
|
||||||
name: "{{ service_name }}"
|
|
||||||
enabled: yes
|
|
||||||
register: service_enabled
|
|
||||||
|
|
||||||
- name: 显示服务启用结果
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "{{ service_name }} 已设置为开机自启"
|
|
||||||
|
|
||||||
- name: 启动 xxxigcc-daemon 服务
|
|
||||||
ansible.builtin.systemd:
|
|
||||||
name: "{{ service_name }}"
|
|
||||||
state: started
|
|
||||||
register: service_started
|
|
||||||
|
|
||||||
- name: 显示服务启动结果
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "{{ service_name }} 已启动"
|
|
||||||
|
|
||||||
- name: 验证服务运行状态
|
|
||||||
ansible.builtin.systemd:
|
|
||||||
name: "{{ service_name }}"
|
|
||||||
register: service_status
|
|
||||||
|
|
||||||
- name: 显示服务状态信息
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: |
|
|
||||||
服务状态:
|
|
||||||
- 服务名称: {{ service_name }}
|
|
||||||
- 运行状态: {{ service_status.status.ActiveState }}
|
|
||||||
- 开机自启: {{ 'enabled' if service_enabled.enabled else 'disabled' }}
|
|
||||||
|
|
||||||
- name: 显示操作总结
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: |
|
|
||||||
操作完成总结:
|
|
||||||
- APT 缓存: 已更新
|
|
||||||
- 软件包: {{ package_name }} {{ '(已更新)' if package_install.changed else '(已是最新)' }}
|
|
||||||
- 服务自启: {{ service_name }} (已启用)
|
|
||||||
- 服务状态: {{ service_name }} (已启动)
|
|
||||||
@@ -1,141 +0,0 @@
|
|||||||
---
|
|
||||||
- name: XXXigCC Pool URL 更新脚本
|
|
||||||
hosts: all
|
|
||||||
become: yes
|
|
||||||
|
|
||||||
vars:
|
|
||||||
# 必填参数
|
|
||||||
new_url: ""
|
|
||||||
|
|
||||||
# 可选参数
|
|
||||||
old_url: ""
|
|
||||||
|
|
||||||
# 配置文件路径
|
|
||||||
config_file: "/etc/xxxigcc/config.json"
|
|
||||||
log_dir: "/var/log/xxxigcc"
|
|
||||||
service_name: "xxxigcc-daemon.service"
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
- name: 检查 new_url 参数是否提供
|
|
||||||
ansible.builtin.fail:
|
|
||||||
msg: "参数 new_url 是必填项,请使用 -e new_url=your_url 提供"
|
|
||||||
when: new_url == ""
|
|
||||||
|
|
||||||
- name: 确保 jq 工具已安装
|
|
||||||
ansible.builtin.package:
|
|
||||||
name: jq
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: 检查配置文件是否存在
|
|
||||||
ansible.builtin.stat:
|
|
||||||
path: "{{ config_file }}"
|
|
||||||
register: config_file_stat
|
|
||||||
|
|
||||||
- name: 验证配置文件存在
|
|
||||||
ansible.builtin.fail:
|
|
||||||
msg: "配置文件 {{ config_file }} 不存在"
|
|
||||||
when: not config_file_stat.stat.exists
|
|
||||||
|
|
||||||
- name: 备份配置文件
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: "{{ config_file }}"
|
|
||||||
dest: "{{ config_file }}.backup.{{ ansible_date_time.epoch }}"
|
|
||||||
remote_src: yes
|
|
||||||
mode: preserve
|
|
||||||
|
|
||||||
- name: 获取当前的 pool URL
|
|
||||||
ansible.builtin.shell: |
|
|
||||||
jq -r '.pools[0].url' {{ config_file }}
|
|
||||||
register: current_url
|
|
||||||
changed_when: false
|
|
||||||
|
|
||||||
- name: 显示当前 pool URL
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "当前 pool URL: {{ current_url.stdout }}"
|
|
||||||
|
|
||||||
- name: 检查是否需要更新(提供了 old_url 参数时)
|
|
||||||
ansible.builtin.set_fact:
|
|
||||||
should_update: "{{ current_url.stdout == old_url }}"
|
|
||||||
when: old_url != ""
|
|
||||||
|
|
||||||
- name: 检查是否需要更新(未提供 old_url 参数时)
|
|
||||||
ansible.builtin.set_fact:
|
|
||||||
should_update: true
|
|
||||||
when: old_url == ""
|
|
||||||
|
|
||||||
- name: 显示更新决策
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: >
|
|
||||||
{% if old_url != "" %}
|
|
||||||
old_url 参数已提供: {{ old_url }},当前值: {{ current_url.stdout }},
|
|
||||||
{% if should_update %}将执行更新{% else %}跳过更新(当前值与 old_url 不匹配){% endif %}
|
|
||||||
{% else %}
|
|
||||||
未提供 old_url 参数,将无条件更新
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
- name: 更新 pool URL
|
|
||||||
ansible.builtin.shell: |
|
|
||||||
jq '.pools[0].url = "{{ new_url }}"' {{ config_file }} > {{ config_file }}.tmp && \
|
|
||||||
mv {{ config_file }}.tmp {{ config_file }}
|
|
||||||
when: should_update | bool
|
|
||||||
register: update_result
|
|
||||||
|
|
||||||
- name: 显示更新后的 pool URL
|
|
||||||
ansible.builtin.shell: |
|
|
||||||
jq -r '.pools[0].url' {{ config_file }}
|
|
||||||
register: updated_url
|
|
||||||
changed_when: false
|
|
||||||
when: should_update | bool
|
|
||||||
|
|
||||||
- name: 确认更新结果
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "pool URL 已更新为: {{ updated_url.stdout }}"
|
|
||||||
when: should_update | bool
|
|
||||||
|
|
||||||
- name: 检查日志目录是否存在
|
|
||||||
ansible.builtin.stat:
|
|
||||||
path: "{{ log_dir }}"
|
|
||||||
register: log_dir_stat
|
|
||||||
|
|
||||||
- name: 删除日志目录下的所有文件
|
|
||||||
ansible.builtin.shell: |
|
|
||||||
rm -rf {{ log_dir }}/*
|
|
||||||
when: log_dir_stat.stat.exists and log_dir_stat.stat.isdir
|
|
||||||
register: log_cleanup
|
|
||||||
|
|
||||||
- name: 显示日志清理结果
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "日志目录 {{ log_dir }} 已清理"
|
|
||||||
when: log_dir_stat.stat.exists and log_dir_stat.stat.isdir
|
|
||||||
|
|
||||||
- name: 重启 xxxigcc-daemon 服务
|
|
||||||
ansible.builtin.systemd:
|
|
||||||
name: "{{ service_name }}"
|
|
||||||
state: restarted
|
|
||||||
when: should_update | bool
|
|
||||||
register: service_restart
|
|
||||||
|
|
||||||
- name: 等待服务重启完成
|
|
||||||
ansible.builtin.wait_for:
|
|
||||||
timeout: 5
|
|
||||||
when: should_update | bool
|
|
||||||
|
|
||||||
- name: 验证服务状态
|
|
||||||
ansible.builtin.systemd:
|
|
||||||
name: "{{ service_name }}"
|
|
||||||
state: started
|
|
||||||
register: service_status
|
|
||||||
when: should_update | bool
|
|
||||||
|
|
||||||
- name: 显示操作总结
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: |
|
|
||||||
操作完成总结:
|
|
||||||
- 配置文件备份: {{ config_file }}.backup.{{ ansible_date_time.epoch }}
|
|
||||||
{% if should_update | bool %}
|
|
||||||
- Pool URL 已从 '{{ current_url.stdout }}' 更新为 '{{ new_url }}'
|
|
||||||
- 日志目录已清理: {{ log_dir }}
|
|
||||||
- 服务已重启: {{ service_name }}
|
|
||||||
{% else %}
|
|
||||||
- Pool URL 未更新(条件不满足)
|
|
||||||
{% endif %}
|
|
||||||
Reference in New Issue
Block a user