From ecbacdf7b6ceb62a464a6b04b97effd29327dee2 Mon Sep 17 00:00:00 2001 From: gjmzj Date: Sun, 7 May 2023 14:16:20 +0800 Subject: [PATCH] rewrite offline.yml in role prepare --- roles/prepare/tasks/offline.yml | 38 +++++++++++++++++---------------- roles/prepare/vars/main.yml | 3 +++ 2 files changed, 23 insertions(+), 18 deletions(-) create mode 100644 roles/prepare/vars/main.yml diff --git a/roles/prepare/tasks/offline.yml b/roles/prepare/tasks/offline.yml index 577d56d94..e30f4578e 100644 --- a/roles/prepare/tasks/offline.yml +++ b/roles/prepare/tasks/offline.yml @@ -1,34 +1,36 @@ # 离线安装基础系统包 +# 仅当机器无法从本地yum/apt源安装时使用 +# 执行前需要预先运行类似 ./ezdown -P debian_10 下载离线安装包 + +- name: 检查是否已下载离线软件包{{ SYS_PKG_NAME }} + stat: + path: "{{ base_dir }}/down/packages/{{ SYS_PKG_NAME }}" + register: pkg + connection: local + run_once: true + - name: 准备离线安装包目录 file: name=/opt/kube/packages/basic state=directory - block: - - name: 分发{{ ansible_distribution_release }}离线包 + - name: 分发离线软件包{{ SYS_PKG_NAME }} copy: - src: "{{ base_dir }}/down/packages/basic_{{ ansible_distribution_release }}.tar.gz" - dest: "/opt/kube/packages/basic/basic_{{ ansible_distribution_release }}.tar.gz" + src: "{{ base_dir }}/down/packages/{{ SYS_PKG_NAME }}" + dest: "/opt/kube/packages/basic/{{ SYS_PKG_NAME }}" # 离线安装包可能需要安装多次才能成功 - - name: 安装{{ ansible_distribution_release }} 离线包 - shell: 'cd /opt/kube/packages/basic && tar zxf basic_{{ ansible_distribution_release }}.tar.gz && \ + - name: 安装离线软件包{{ SYS_PKG_NAME }} + shell: 'cd /opt/kube/packages/basic && tar zxf {{ SYS_PKG_NAME }} && \ dpkg -i *.deb > /tmp/install_basic.log 2>&1' register: install_info until: not install_info.failed retries: 3 delay: 1 - when: 'ansible_distribution in ["Ubuntu","Debian"]' - ignore_errors: true - -- block: - - name: 分发 basic_centos7 离线包 - copy: - src: "{{ base_dir }}/down/packages/basic_centos7.tar.gz" - dest: "/opt/kube/packages/basic/basic_centos7.tar.gz" + when: 'ansible_distribution_file_variety in ["Debian"]' - - name: 安装 basic_centos7 离线包 - shell: 'cd /opt/kube/packages/basic && tar zxf basic_centos7.tar.gz && \ + - name: 安装离线软件包{{ SYS_PKG_NAME }} + shell: 'cd /opt/kube/packages/basic && tar zxf {{ SYS_PKG_NAME }} && \ rpm -Uvh --force --nodeps *.rpm > /tmp/install_basic.log 2>&1' - when: - - 'ansible_distribution in ["CentOS","RedHat"]' - - 'ansible_distribution_major_version == "7"' + when: 'ansible_distribution_file_variety in ["RedHat", "SUSE"]' + when: 'pkg.stat.exists|bool' ignore_errors: true diff --git a/roles/prepare/vars/main.yml b/roles/prepare/vars/main.yml new file mode 100644 index 000000000..56db2877e --- /dev/null +++ b/roles/prepare/vars/main.yml @@ -0,0 +1,3 @@ +# 离线软件包名 + +SYS_PKG_NAME: "{{ ansible_distribution|lower|replace(' ', '_') }}_{{ ansible_distribution_major_version }}.tgz"