From 297f3c87877eaa5b7f87738b93c24d2113d21488 Mon Sep 17 00:00:00 2001 From: yuncliu Date: Fri, 4 Dec 2020 15:37:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96yml,=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=89=B9=E6=AE=8A=E6=B5=81=E7=A8=8B=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- playbooks/gather_npu_fact.yml | 17 +++- playbooks/install_driver.yml | 4 - playbooks/install_firmware.yml | 1 - playbooks/install_npu.yml | 4 - playbooks/install_sys_pkg.yml | 30 +------ playbooks/install_tensorflow.yml | 60 ++----------- playbooks/install_torch.yml | 52 +++-------- ...h64.yml => prepare_CentOS_7.6_aarch64.yml} | 0 ...6_64.yml => prepare_CentOS_7.6_x86_64.yml} | 0 playbooks/task_driver.yml | 87 +++---------------- .../task_driver_BigCloud_7.6_aarch64.yml | 38 ++++++++ playbooks/task_driver_BigCloud_7.6_x86_64.yml | 38 ++++++++ playbooks/task_driver_common.yml | 63 ++++++++++++++ playbooks/task_sys_apt.yml | 4 + playbooks/task_sys_dnf.yml | 14 +++ playbooks/task_sys_yum.yml | 13 +++ playbooks/task_sys_zypper.yml | 11 +++ playbooks/task_tensorflow.yml | 58 +++++++++++++ playbooks/task_torch.yml | 23 +++++ start_download.sh | 2 +- 20 files changed, 312 insertions(+), 207 deletions(-) rename playbooks/{CentOS_7.6_aarch64.yml => prepare_CentOS_7.6_aarch64.yml} (100%) rename playbooks/{CentOS_7.6_x86_64.yml => prepare_CentOS_7.6_x86_64.yml} (100%) create mode 100644 playbooks/task_driver_BigCloud_7.6_aarch64.yml create mode 100644 playbooks/task_driver_BigCloud_7.6_x86_64.yml create mode 100644 playbooks/task_driver_common.yml create mode 100644 playbooks/task_sys_apt.yml create mode 100644 playbooks/task_sys_dnf.yml create mode 100644 playbooks/task_sys_yum.yml create mode 100644 playbooks/task_sys_zypper.yml create mode 100644 playbooks/task_tensorflow.yml create mode 100644 playbooks/task_torch.yml diff --git a/playbooks/gather_npu_fact.yml b/playbooks/gather_npu_fact.yml index 30ede07f..9e71bd37 100644 --- a/playbooks/gather_npu_fact.yml +++ b/playbooks/gather_npu_fact.yml @@ -8,6 +8,16 @@ os_and_arch: "{{ansible_distribution}}_{{os_version}}_{{ansible_architecture}}" tasks: + - name: set fact os_version + set_fact: + os_version: "{{ os_version }}" + cacheable: yes + + - name: set fact os_and_arch + set_fact: + os_and_arch: "{{ os_and_arch }}" + cacheable: yes + - name: set resources_dir local set_fact: resources_dir: "../resources" @@ -20,11 +30,12 @@ cacheable: yes when: ansible_connection != "local" - - local_action: stat path={{os_and_arch}}.yml + - name: check if need prepare + local_action: stat path=prepare_{{os_and_arch}}.yml register: optional_file - - name: prepare - include_tasks: "{{os_and_arch}}.yml" + - name: process prepare + include_tasks: "prepare_{{os_and_arch}}.yml" when: optional_file.stat.exists - name: create facts.d folder diff --git a/playbooks/install_driver.yml b/playbooks/install_driver.yml index 8057fced..ffa1293e 100644 --- a/playbooks/install_driver.yml +++ b/playbooks/install_driver.yml @@ -1,8 +1,4 @@ - hosts: '{{ hosts_name }}' - gather_facts: True - vars: - temp: "{{ ansible_distribution_version | regex_findall('[0-9]+.[0-9]+') }}" - os_version: "{{ temp[0] }}" tasks: - name: create user import_tasks: create_user.yml diff --git a/playbooks/install_firmware.yml b/playbooks/install_firmware.yml index 44b7e0eb..3c6c02f8 100644 --- a/playbooks/install_firmware.yml +++ b/playbooks/install_firmware.yml @@ -1,5 +1,4 @@ - hosts: '{{ hosts_name }}' - gather_facts: True tasks: - name: install firmware import_tasks: task_firmware.yml diff --git a/playbooks/install_npu.yml b/playbooks/install_npu.yml index 2e4ed74a..91f3a33e 100644 --- a/playbooks/install_npu.yml +++ b/playbooks/install_npu.yml @@ -1,8 +1,4 @@ - hosts: '{{ hosts_name }}' - gather_facts: True - vars: - temp: "{{ ansible_distribution_version | regex_findall('[0-9]+.[0-9]+') }}" - os_version: "{{ temp[0] }}" tasks: # check the driver, always success # set changed when npu-smi info not work diff --git a/playbooks/install_sys_pkg.yml b/playbooks/install_sys_pkg.yml index 3ef3d245..2ae01bc8 100644 --- a/playbooks/install_sys_pkg.yml +++ b/playbooks/install_sys_pkg.yml @@ -1,30 +1,4 @@ - hosts: '{{ hosts_name }}' - gather_facts: True - vars: - temp: "{{ ansible_distribution_version | regex_findall('[0-9]+.[0-9]+') }}" - os_version: "{{ temp[0] }}" - tasks: - - name: test kernel-headers - shell: rpm -qa | grep kernel-headers - register: kernel_header_installed - ignore_errors: yes - when: - - ansible_pkg_mgr == 'yum' or ansible_pkg_mgr == 'dnf' - - - name: delete kernel-headers if installed - shell: rm -f {{ resources_dir }}/{{ ansible_distribution }}_{{ os_version }}_{{ ansible_architecture }}/kernel-headers*.rpm - ignore_errors: yes - when: - - ansible_pkg_mgr == 'yum' or ansible_pkg_mgr == 'dnf' - - "kernel_header_installed.rc == 0 and 'kernel-headers' in kernel_header_installed.stdout" - - - name: install rpm - shell: rpm -ivh --force --nodeps --replacepkgs {{ resources_dir }}/{{ ansible_distribution }}_{{ os_version }}_{{ ansible_architecture }}/*.rpm - when: - - ansible_pkg_mgr == 'yum' or ansible_pkg_mgr == 'dnf' - - - name: install deb by dpkg - shell: export DEBIAN_FRONTEND=noninteractive && export DEBIAN_PRIORITY=critical; dpkg --force-all -i {{ resources_dir }}/{{ ansible_distribution }}_{{ os_version}}_{{ ansible_architecture }}/*.deb - when: - - ansible_pkg_mgr == 'apt' + - name: install system packages + include_tasks: "task_sys_{{ansible_pkg_mgr}}.yml" diff --git a/playbooks/install_tensorflow.yml b/playbooks/install_tensorflow.yml index 7d937cef..22715e13 100644 --- a/playbooks/install_tensorflow.yml +++ b/playbooks/install_tensorflow.yml @@ -1,60 +1,14 @@ - hosts: '{{ hosts_name }}' tasks: - - name: upgrade pip - shell: python3.7 -m pip install --upgrade pip --no-index --find-links {{ resources_dir }}/`uname -m` - environment: - PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} - LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/gcc7.3.0/lib64 - - - name: install cython - shell: python3.7 -m pip install cython --no-index --find-links {{ resources_dir }}/`uname -m` - environment: - PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} - LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/gcc7.3.0/lib64 - - - name: install pkgconfig - shell: python3.7 -m pip install pkgconfig --no-index --find-links {{ resources_dir }}/`uname -m` - environment: - PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} - LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/gcc7.3.0/lib64 - - - name: link hdf5 for ubuntu - shell: ln -sf /usr/lib/`uname -m`-linux-gnu/libhdf5_serial.so /usr/lib/`uname -m`-linux-gnu/libhdf5.so - when: ansible_pkg_mgr == 'apt' - - - name: centos stat /usr/lib64/libhdf5.so - stat: - path: /usr/lib64/libhdf5.so - register: centos_libhdf5 - when: ansible_pkg_mgr == 'yum' or ansible_pkg_mgr == 'dnf' - - - name: link hdf5 for centos - shell: ln -sf `find /usr/lib64/ -type f -name "libhdf5.so*"` /usr/lib64/libhdf5.so - when: - - ansible_pkg_mgr == 'yum' or ansible_pkg_mgr == 'dnf' - - not centos_libhdf5.stat.exists - - - name: install tensorflow - shell: python3.7 -m pip install tensorflow --no-index --find-links {{ resources_dir }}/`uname -m` - environment: - PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} - LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/gcc7.3.0/lib64 - - - name: check tensorflow + - name: try import tensorflow shell: python3.7 -c "import tensorflow as tf; print(tf.__version__)" environment: PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/Ascend/ascend-toolkit/latest/fwkacllib/lib64:/usr/local/gcc7.3.0/lib64 - register: tensorflow_check_result - - - debug: var=tensorflow_check_result - - - name: check tensorflow with npu_bridge - shell: python3.7 -c "import npu_bridge.estimator; import npu_bridge.hccl; from tensorflow.core.protobuf import rewriter_config_pb2" - environment: - PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} - LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/Ascend/ascend-toolkit/latest/fwkacllib/lib64:/usr/local/Ascend/nnae/latest/fwkacllib/lib64:/usr/local/gcc7.3.0/lib64 - PYTHONPATH: /usr/local/Ascend/tfplugin/latest/tfplugin/python/site-packages - register: tensorflow_check_result + failed_when: false + changed_when: false + register: import_tensorflow - - debug: var=tensorflow_check_result + - name: install tensorflow if import failed + include_tasks: task_tensorflow.yml + when: import_tensorflow.rc != 0 diff --git a/playbooks/install_torch.yml b/playbooks/install_torch.yml index 4b42ffb7..d86608be 100644 --- a/playbooks/install_torch.yml +++ b/playbooks/install_torch.yml @@ -1,9 +1,14 @@ - hosts: '{{ hosts_name }}' - gather_facts: True - vars: - temp: "{{ ansible_distribution_version | regex_findall('[0-9]+.[0-9]+') }}" - os_version: "{{ temp[0] }}" tasks: + - name: try import torch + shell: python3.7 -c "import torch; print(torch.__version__)" + environment: + PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} + LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/Ascend/ascend-toolkit/latest/fwkacllib/lib64:/usr/local/Ascend/nnae/latest/fwkacllib/lib64:/usr/local/gcc7.3.0/lib64 + failed_when: false + changed_when: false + register: import_torch + - name: stat gcc-7.3.0 stat: path: /usr/local/gcc7.3.0 @@ -14,39 +19,8 @@ when: - not gcc_stat.stat.exists - "os_version == '7.6'" + - import_torch.rc != 0 - - name: upgrade pip - shell: python3.7 -m pip install --upgrade pip --no-index --find-links {{ resources_dir }}/`uname -m` - environment: - PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} - LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/Ascend/ascend-toolkit/latest/fwkacllib/lib64:/usr/local/gcc7.3.0/lib64 - register: upgrade_pip - - - debug: var=upgrade_pip - - - name: show pip version - shell: python3.7 -m pip --version - environment: - PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} - LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/Ascend/ascend-toolkit/latest/fwkacllib/lib64:/usr/local/gcc7.3.0/lib64 - register: pip_version - - - debug: var=pip_version - - - name: install torch - shell: python3.7 -m pip install torch --no-index --find-links {{ resources_dir }}/`uname -m` - environment: - PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} - LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/Ascend/ascend-toolkit/latest/fwkacllib/lib64:/usr/local/gcc7.3.0/lib64 - register: torch_result - - - debug: var=torch_result - - - name: check torch - shell: python3.7 -c "import torch; print(torch.__version__)" - environment: - PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} - LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/Ascend/ascend-toolkit/latest/fwkacllib/lib64:/usr/local/Ascend/nnae/latest/fwkacllib/lib64:/usr/local/gcc7.3.0/lib64 - register: torch_check_result - - - debug: var=torch_check_result + - name: install torch if import failed + import_tasks: task_torch.yml + when: import_torch.rc != 0 diff --git a/playbooks/CentOS_7.6_aarch64.yml b/playbooks/prepare_CentOS_7.6_aarch64.yml similarity index 100% rename from playbooks/CentOS_7.6_aarch64.yml rename to playbooks/prepare_CentOS_7.6_aarch64.yml diff --git a/playbooks/CentOS_7.6_x86_64.yml b/playbooks/prepare_CentOS_7.6_x86_64.yml similarity index 100% rename from playbooks/CentOS_7.6_x86_64.yml rename to playbooks/prepare_CentOS_7.6_x86_64.yml diff --git a/playbooks/task_driver.yml b/playbooks/task_driver.yml index 5794bfdc..c0902678 100644 --- a/playbooks/task_driver.yml +++ b/playbooks/task_driver.yml @@ -1,74 +1,13 @@ -- name: find driver package with distribution - find: - path: "{{ resources_dir }}" - recurse: no - file_type: file - use_regex: yes - patterns: "{{ ansible_local.npu_info.product }}-.*{{ ansible_local.npu_info.model_number }}.*driver.*{{ ansible_distribution.lower() }}{{ os_version }}.*{{ ansible_architecture }}.run" - register: driver_pkg - -- debug: - var: driver_pkg - verbosity: 1 - -- name: find driver package for common linux - find: - path: "{{ resources_dir }}" - recurse: no - file_type: file - use_regex: yes - patterns: "{{ ansible_local.npu_info.product }}-.*{{ ansible_local.npu_info.model_number }}.*driver.*linux.*{{ ansible_architecture }}.run" - register: driver_pkg_linux - when: driver_pkg.matched == 0 - -- name: find driver package for BigCloud Linux 7.6 - find: - path: "{{ resources_dir }}" - recurse: no - file_type: file - use_regex: yes - patterns: "{{ ansible_local.npu_info.product }}-.*{{ ansible_local.npu_info.model_number }}.*driver.*centos7.6.*{{ ansible_architecture }}.run" - register: driver_pkg_linux - when: driver_pkg.matched == 0 - - -- debug: - var: driver_pkg - verbosity: 1 - -- name: add run permission for driver package - file: - path: "{{driver_pkg.files[0].path}}" - mode: a+x - when: driver_pkg.matched > 0 - -- name: add run permission for common linux driver package - file: - path: "{{driver_pkg_linux.files[0].path}}" - mode: a+x - when: driver_pkg.matched == 0 and driver_pkg_linux.matched > 0 - -- name: install driver for specific os - shell: "{{driver_pkg.files[0].path}} --full --quiet --install-username={{user}} --install-usergroup={{group}}" - register: driver_result - failed_when: "'install success' not in driver_result.stdout" - when: driver_pkg.matched > 0 - -- name: install driver for common linux - shell: "{{driver_pkg_linux.files[0].path}} --full --quiet --install-username={{user}} --install-usergroup={{group}}" - register: driver_result - failed_when: "'install success' not in driver_result.stdout" - when: driver_pkg.matched == 0 and driver_pkg_linux.matched > 0 - -- name: service host_sys_init start - shell: service host_sys_init start - when: driver_pkg.matched > 0 or driver_pkg_linux.matched > 0 - -- name: check npu-smi info - shell: npu-smi info - register: npu_smi_info - when: driver_pkg.matched > 0 or driver_pkg_linux.matched > 0 - -- debug: - var: npu_smi_info - verbosity: 1 +- name: check driver task for os + local_action: stat path=task_driver_{{os_and_arch}}.yml + register: special_driver_task + +# if have dirver task for specific os, use the driver task for specific os +- name: process driver for specific os + include_tasks: "task_driver_{{os_and_arch}}.yml" + when: special_driver_task.stat.exists + +# if not dirver task for specific os, use the driver task for common +- name: process driver for common + include_tasks: task_driver_common.yml + when: not special_driver_task.stat.exists diff --git a/playbooks/task_driver_BigCloud_7.6_aarch64.yml b/playbooks/task_driver_BigCloud_7.6_aarch64.yml new file mode 100644 index 00000000..0540ab39 --- /dev/null +++ b/playbooks/task_driver_BigCloud_7.6_aarch64.yml @@ -0,0 +1,38 @@ +# BigCloud Linux 7.6 use the driver of CentOS 7.6 +- name: find driver package for BigCloud Linux 7.6 + find: + path: "{{ resources_dir }}" + recurse: no + file_type: file + use_regex: yes + patterns: "{{ ansible_local.npu_info.product }}-.*{{ ansible_local.npu_info.model_number }}.*driver.*centos7.6.*{{ ansible_architecture }}.run" + register: driver_pkg + +- debug: + var: driver_pkg + verbosity: 1 + +- name: add run permission for BigCloud Linux driver + file: + path: "{{driver_pkg.files[0].path}}" + mode: a+x + when: driver_pkg.matched > 0 + +- name: install driver for BigCloud Linux + shell: "{{driver_pkg.files[0].path}} --full --quiet --install-username={{user}} --install-usergroup={{group}}" + register: driver_result + failed_when: "'install success' not in driver_result.stdout" + when: driver_pkg.matched > 0 + +- name: service host_sys_init start + shell: service host_sys_init start + when: driver_pkg.matched > 0 + +- name: check npu-smi info + shell: npu-smi info + register: npu_smi_info + when: driver_pkg.matched > 0 + +- debug: + var: npu_smi_info + verbosity: 1 diff --git a/playbooks/task_driver_BigCloud_7.6_x86_64.yml b/playbooks/task_driver_BigCloud_7.6_x86_64.yml new file mode 100644 index 00000000..0540ab39 --- /dev/null +++ b/playbooks/task_driver_BigCloud_7.6_x86_64.yml @@ -0,0 +1,38 @@ +# BigCloud Linux 7.6 use the driver of CentOS 7.6 +- name: find driver package for BigCloud Linux 7.6 + find: + path: "{{ resources_dir }}" + recurse: no + file_type: file + use_regex: yes + patterns: "{{ ansible_local.npu_info.product }}-.*{{ ansible_local.npu_info.model_number }}.*driver.*centos7.6.*{{ ansible_architecture }}.run" + register: driver_pkg + +- debug: + var: driver_pkg + verbosity: 1 + +- name: add run permission for BigCloud Linux driver + file: + path: "{{driver_pkg.files[0].path}}" + mode: a+x + when: driver_pkg.matched > 0 + +- name: install driver for BigCloud Linux + shell: "{{driver_pkg.files[0].path}} --full --quiet --install-username={{user}} --install-usergroup={{group}}" + register: driver_result + failed_when: "'install success' not in driver_result.stdout" + when: driver_pkg.matched > 0 + +- name: service host_sys_init start + shell: service host_sys_init start + when: driver_pkg.matched > 0 + +- name: check npu-smi info + shell: npu-smi info + register: npu_smi_info + when: driver_pkg.matched > 0 + +- debug: + var: npu_smi_info + verbosity: 1 diff --git a/playbooks/task_driver_common.yml b/playbooks/task_driver_common.yml new file mode 100644 index 00000000..c9cb3918 --- /dev/null +++ b/playbooks/task_driver_common.yml @@ -0,0 +1,63 @@ +- name: find driver package for specific linux + find: + path: "{{ resources_dir }}" + recurse: no + file_type: file + use_regex: yes + patterns: "{{ ansible_local.npu_info.product }}-.*{{ ansible_local.npu_info.model_number }}.*driver.*{{ ansible_distribution.lower() }}{{ os_version }}.*{{ ansible_architecture }}.run" + register: driver_pkg + +- name: find driver package for common linux + find: + path: "{{ resources_dir }}" + recurse: no + file_type: file + use_regex: yes + patterns: "{{ ansible_local.npu_info.product }}-.*{{ ansible_local.npu_info.model_number }}.*driver.*linux.*{{ ansible_architecture }}.run" + register: driver_pkg_linux + when: driver_pkg.matched == 0 + +- debug: + var: driver_pkg + verbosity: 1 + +- debug: + var: driver_pkg_linux + verbosity: 1 + +- name: add run permission for specific linux driver package + file: + path: "{{driver_pkg.files[0].path}}" + mode: a+x + when: driver_pkg.matched > 0 + +- name: add run permission for common linux driver package + file: + path: "{{driver_pkg_linux.files[0].path}}" + mode: a+x + when: driver_pkg.matched == 0 and driver_pkg_linux.matched > 0 + +- name: install driver for specific linux + shell: "{{driver_pkg.files[0].path}} --full --quiet --install-username={{user}} --install-usergroup={{group}}" + register: driver_result + failed_when: "'install success' not in driver_result.stdout" + when: driver_pkg.matched > 0 + +- name: install driver for common linux + shell: "{{driver_pkg_linux.files[0].path}} --full --quiet --install-username={{user}} --install-usergroup={{group}}" + register: driver_result + failed_when: "'install success' not in driver_result.stdout" + when: driver_pkg.matched == 0 and driver_pkg_linux.matched > 0 + +- name: service host_sys_init start + shell: service host_sys_init start + when: driver_pkg.matched > 0 or driver_pkg_linux.matched > 0 + +- name: check npu-smi info + shell: npu-smi info + register: npu_smi_info + when: driver_pkg.matched > 0 or driver_pkg_linux.matched > 0 + +- debug: + var: npu_smi_info + verbosity: 1 diff --git a/playbooks/task_sys_apt.yml b/playbooks/task_sys_apt.yml new file mode 100644 index 00000000..dce74275 --- /dev/null +++ b/playbooks/task_sys_apt.yml @@ -0,0 +1,4 @@ +- name: apt install system packages + shell: export DEBIAN_FRONTEND=noninteractive && export DEBIAN_PRIORITY=critical; dpkg --force-all -i {{ resources_dir }}/{{ ansible_distribution }}_{{ os_version}}_{{ ansible_architecture }}/*.deb + when: + - ansible_pkg_mgr == 'apt' diff --git a/playbooks/task_sys_dnf.yml b/playbooks/task_sys_dnf.yml new file mode 100644 index 00000000..5a965853 --- /dev/null +++ b/playbooks/task_sys_dnf.yml @@ -0,0 +1,14 @@ +- name: dnf test kernel-headers + shell: rpm -qa | grep kernel-headers + register: kernel_header_installed + ignore_errors: yes + +- name: dnf delete kernel-headers if installed + shell: rm -f {{ resources_dir }}/{{ ansible_distribution }}_{{ os_version }}_{{ ansible_architecture }}/kernel-headers*.rpm + ignore_errors: yes + when: + - "kernel_header_installed.rc == 0 and 'kernel-headers' in kernel_header_installed.stdout" + +# currently dnf also use rpm to install +- name: dnf install system packages + shell: rpm -ivh --force --nodeps --replacepkgs {{ resources_dir }}/{{ ansible_distribution }}_{{ os_version }}_{{ ansible_architecture }}/*.rpm diff --git a/playbooks/task_sys_yum.yml b/playbooks/task_sys_yum.yml new file mode 100644 index 00000000..15b39529 --- /dev/null +++ b/playbooks/task_sys_yum.yml @@ -0,0 +1,13 @@ +- name: yum test kernel-headers + shell: rpm -qa | grep kernel-headers + register: kernel_header_installed + ignore_errors: yes + +- name: yum delete kernel-headers if installed + shell: rm -f {{ resources_dir }}/{{ ansible_distribution }}_{{ os_version }}_{{ ansible_architecture }}/kernel-headers*.rpm + ignore_errors: yes + when: + - "kernel_header_installed.rc == 0 and 'kernel-headers' in kernel_header_installed.stdout" + +- name: yum install system packages + shell: rpm -ivh --force --nodeps --replacepkgs {{ resources_dir }}/{{ ansible_distribution }}_{{ os_version }}_{{ ansible_architecture }}/*.rpm diff --git a/playbooks/task_sys_zypper.yml b/playbooks/task_sys_zypper.yml new file mode 100644 index 00000000..7e9704b8 --- /dev/null +++ b/playbooks/task_sys_zypper.yml @@ -0,0 +1,11 @@ +# for suse use +# suse also have the rpm tool + +- name: zypper check resource exist + stat: + path: "{{ resources_dir }}/{{ ansible_distribution }}_{{ os_version }}_{{ ansible_architecture }}" + register: zypper_st + +- name: zypper install system packages rpm + shell: rpm -ivh --force --nodeps --replacepkgs {{ resources_dir }}/{{ ansible_distribution }}_{{ os_version }}_{{ ansible_architecture }}/*.rpm + when: zypper_st.stat.exists diff --git a/playbooks/task_tensorflow.yml b/playbooks/task_tensorflow.yml new file mode 100644 index 00000000..21570f94 --- /dev/null +++ b/playbooks/task_tensorflow.yml @@ -0,0 +1,58 @@ +- name: upgrade pip + shell: python3.7 -m pip install --upgrade pip --no-index --find-links {{ resources_dir }}/`uname -m` + environment: + PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} + LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/gcc7.3.0/lib64 + +- name: install cython + shell: python3.7 -m pip install cython --no-index --find-links {{ resources_dir }}/`uname -m` + environment: + PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} + LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/gcc7.3.0/lib64 + +- name: install pkgconfig + shell: python3.7 -m pip install pkgconfig --no-index --find-links {{ resources_dir }}/`uname -m` + environment: + PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} + LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/gcc7.3.0/lib64 + +- name: link hdf5 for ubuntu + shell: ln -sf /usr/lib/`uname -m`-linux-gnu/libhdf5_serial.so /usr/lib/`uname -m`-linux-gnu/libhdf5.so + when: ansible_pkg_mgr == 'apt' + +- name: centos stat /usr/lib64/libhdf5.so + stat: + path: /usr/lib64/libhdf5.so + register: centos_libhdf5 + when: ansible_pkg_mgr == 'yum' or ansible_pkg_mgr == 'dnf' + +- name: link hdf5 for centos + shell: ln -sf `find /usr/lib64/ -type f -name "libhdf5.so*"` /usr/lib64/libhdf5.so + when: + - ansible_pkg_mgr == 'yum' or ansible_pkg_mgr == 'dnf' + - not centos_libhdf5.stat.exists + +- name: install tensorflow + shell: python3.7 -m pip install tensorflow --no-index --find-links {{ resources_dir }}/`uname -m` + environment: + PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} + LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/gcc7.3.0/lib64 + +- name: check tensorflow + shell: python3.7 -c "import tensorflow as tf; print(tf.__version__)" + environment: + PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} + LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/Ascend/ascend-toolkit/latest/fwkacllib/lib64:/usr/local/gcc7.3.0/lib64 + register: tensorflow_check_result + +- debug: var=tensorflow_check_result + +- name: check tensorflow with npu_bridge + shell: python3.7 -c "import npu_bridge.estimator; import npu_bridge.hccl; from tensorflow.core.protobuf import rewriter_config_pb2" + environment: + PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} + LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/Ascend/ascend-toolkit/latest/fwkacllib/lib64:/usr/local/Ascend/nnae/latest/fwkacllib/lib64:/usr/local/gcc7.3.0/lib64 + PYTHONPATH: /usr/local/Ascend/tfplugin/latest/tfplugin/python/site-packages + register: tensorflow_check_result + +- debug: var=tensorflow_check_result diff --git a/playbooks/task_torch.yml b/playbooks/task_torch.yml new file mode 100644 index 00000000..3a4d7256 --- /dev/null +++ b/playbooks/task_torch.yml @@ -0,0 +1,23 @@ +- name: upgrade pip + shell: python3.7 -m pip install --upgrade pip --no-index --find-links {{ resources_dir }}/`uname -m` + environment: + PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} + LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/Ascend/ascend-toolkit/latest/fwkacllib/lib64:/usr/local/gcc7.3.0/lib64 + +- name: install torch + shell: python3.7 -m pip install torch --no-index --find-links {{ resources_dir }}/`uname -m` + environment: + PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} + LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/Ascend/ascend-toolkit/latest/fwkacllib/lib64:/usr/local/gcc7.3.0/lib64 + register: torch_result + +- debug: var=torch_result + +- name: check torch + shell: python3.7 -c "import torch; print(torch.__version__)" + environment: + PATH: /usr/local/python3.7.5/bin:{{ ansible_env.PATH }} + LD_LIBRARY_PATH: /usr/local/python3.7.5/lib:/usr/local/Ascend/ascend-toolkit/latest/fwkacllib/lib64:/usr/local/Ascend/nnae/latest/fwkacllib/lib64:/usr/local/gcc7.3.0/lib64 + register: torch_check_result + +- debug: var=torch_check_result diff --git a/start_download.sh b/start_download.sh index e03885b9..56665670 100755 --- a/start_download.sh +++ b/start_download.sh @@ -1,6 +1,6 @@ #!/bin/bash have_python3=`command -v python3 | wc -l` -have_yum=`command -v python3 | wc -l` +have_yum=`command -v yum | wc -l` have_apt=`command -v apt | wc -l` if [ ${have_python3} -eq 0 ];then if [ ${have_yum} -eq 1 ];then -- Gitee