From 12892c8d61b1ccbc0b99150b041e01499b2b3b73 Mon Sep 17 00:00:00 2001 From: Zhang Dongliang Date: Thu, 14 Oct 2021 15:00:51 +0800 Subject: [PATCH] feat(deploy,arch,arm64,centos7): add support for centos arm64 since 3.7 --- onecloud/roles/common/tasks/main.yml | 5 +- onecloud/roles/common/tasks/v3_7.yml | 24 ++++++- onecloud/roles/common/tasks/v3_8.yml | 28 ++++++++ .../roles/pre-install-common/tasks/main.yml | 5 +- onecloud/roles/registry/tasks/main.yml | 2 +- .../roles/upgrade/common/tasks/v3_7-v3_8.yml | 6 +- .../utils/detect-os/vars/centos-aarch64.yml | 67 +++++++++++++++++++ .../utils/detect-os/vars/centos-x86_64.yml | 1 + .../roles/utils/gpu-init/files/gpu_setup.sh | 4 +- onecloud/roles/utils/gpu-init/tasks/main.yml | 2 +- .../roles/utils/kernel-check/tasks/main.yml | 2 +- 11 files changed, 132 insertions(+), 14 deletions(-) create mode 100644 onecloud/roles/utils/detect-os/vars/centos-aarch64.yml diff --git a/onecloud/roles/common/tasks/main.yml b/onecloud/roles/common/tasks/main.yml index 68fae499..898e554d 100644 --- a/onecloud/roles/common/tasks/main.yml +++ b/onecloud/roles/common/tasks/main.yml @@ -9,8 +9,9 @@ - bash-completion - epel-release - ca-certificates + state: latest when: - - is_centos_x86 is defined + - is_centos_based is defined - non_iso_mode is defined - name: Set facts @@ -213,7 +214,7 @@ - docker-ce-cli - containerd.io when: - - is_centos_x86 is defined + - is_centos_based is defined - non_iso_mode is defined - name: Make /etc/docker dir diff --git a/onecloud/roles/common/tasks/v3_7.yml b/onecloud/roles/common/tasks/v3_7.yml index dfe10cb9..192e418f 100644 --- a/onecloud/roles/common/tasks/v3_7.yml +++ b/onecloud/roles/common/tasks/v3_7.yml @@ -9,7 +9,7 @@ - is_centos_x86 is defined - non_iso_mode is defined -- name: Install yunion common packages +- name: Install yunion common packages for centos x86 yum: state: latest name: @@ -32,3 +32,25 @@ executable: /bin/bash when: - is_debian_based is defined + +- name: Add yunion rpm repository for arm64 centos + get_url: + url: https://iso.yunion.cn/centos-7-aarch/yunion.repo + dest: /etc/yum.repos.d/yunion.repo + validate_certs: no + become: yes + when: + - is_centos_aarch64 is defined + - non_iso_mode is defined + +- name: Install yunion common packages for arm64 + yum: + state: latest + name: + - kernel-4.14.0-115.8.2.el7a.yn20210924 + - kernel-devel-4.14.0-115.8.2.el7a.yn20210924 + - kernel-headers-4.14.0-115.8.2.el7a.yn20210924 + - yunion-executor-server + when: + - is_centos_aarch64 is defined + - non_iso_mode is defined diff --git a/onecloud/roles/common/tasks/v3_8.yml b/onecloud/roles/common/tasks/v3_8.yml index f835e925..13dd5dce 100644 --- a/onecloud/roles/common/tasks/v3_8.yml +++ b/onecloud/roles/common/tasks/v3_8.yml @@ -37,3 +37,31 @@ executable: /bin/bash when: - is_debian_based is defined + +- name: install libselinux-python for arm64 centos + yum: + name: libselinux-python + when: + - is_centos_aarch64 is defined + +- name: Add yunion rpm repository for arm64 centos + get_url: + url: https://iso.yunion.cn/centos-7-aarch/yunion.repo + dest: /etc/yum.repos.d/yunion.repo + validate_certs: no + become: yes + when: + - is_centos_aarch64 is defined + - non_iso_mode is defined + +- name: Install yunion common packages for arm64 + yum: + state: latest + name: + - kernel-4.14.0-115.8.2.el7a.yn20210924 + - kernel-devel-4.14.0-115.8.2.el7a.yn20210924 + - kernel-headers-4.14.0-115.8.2.el7a.yn20210924 + - yunion-executor-server + when: + - is_centos_aarch64 is defined + - non_iso_mode is defined diff --git a/onecloud/roles/pre-install-common/tasks/main.yml b/onecloud/roles/pre-install-common/tasks/main.yml index 526aac31..11f2c699 100644 --- a/onecloud/roles/pre-install-common/tasks/main.yml +++ b/onecloud/roles/pre-install-common/tasks/main.yml @@ -17,7 +17,7 @@ args: warn: no when: - - is_centos_x86 is defined + - is_centos_based is defined - name: make cache for debian like os shell: "apt-get update" @@ -80,9 +80,8 @@ - yunion-fetcherfs - yunion-ocadm - yunion-qemu-2.12.1 - - yunion-registry when: - - is_centos_x86 is defined + - is_centos_based is defined - non_iso_mode is defined - name: config ntpd service diff --git a/onecloud/roles/registry/tasks/main.yml b/onecloud/roles/registry/tasks/main.yml index 294374b9..92a81c8c 100644 --- a/onecloud/roles/registry/tasks/main.yml +++ b/onecloud/roles/registry/tasks/main.yml @@ -3,7 +3,7 @@ with_items: - yunion-registry when: - - is_centos_x86 is defined + - is_centos_based is defined - non_iso_mode is defined - name: Config registry diff --git a/onecloud/roles/upgrade/common/tasks/v3_7-v3_8.yml b/onecloud/roles/upgrade/common/tasks/v3_7-v3_8.yml index 7bb48fbf..14f6a7c7 100644 --- a/onecloud/roles/upgrade/common/tasks/v3_7-v3_8.yml +++ b/onecloud/roles/upgrade/common/tasks/v3_7-v3_8.yml @@ -18,7 +18,7 @@ yum clean all yum --disablerepo='*' --enablerepo='yunion*' makecache fast when: - - is_centos_x86 is defined + - is_centos_based is defined - name: "uninstall old rpms" shell: | @@ -27,7 +27,7 @@ yum remove -y $rpms fi when: - - is_centos_x86 is defined + - is_centos_based is defined args: executable: /bin/bash @@ -41,4 +41,4 @@ enablerepo: "yunion-*" state: latest when: - - is_centos_x86 is defined + - is_centos_based is defined diff --git a/onecloud/roles/utils/detect-os/vars/centos-aarch64.yml b/onecloud/roles/utils/detect-os/vars/centos-aarch64.yml new file mode 100644 index 00000000..f86975df --- /dev/null +++ b/onecloud/roles/utils/detect-os/vars/centos-aarch64.yml @@ -0,0 +1,67 @@ +--- + +is_centos_based: true +is_centos_aarch64: true + +common_packages: + - boost-iostreams + - boost-random + - boost-system + - boost-thread + - celt051 + - fuse + - fuse-devel + - fuse-libs + - gssproxy + - jq + - ipvsadm + - ipset + - conntrack-tools + - bridge-utils + - keyutils + - kmod + - kmod-openvswitch + - kubeadm + - kubectl + - kubelet + - libbasicobjects + - libcollection + - libini_config + - libjpeg-turbo + - libnfsidmap + - libogg + - libpath_utils + - libpcap + - librados2 + - librbd1 + - libref_array + - libtirpc + - libusb + - libusbx + - libverto-libevent + - lm_sensors-libs + - nfs-utils + - nmap-ncat + - openvswitch + - pixman + - quota + - quota-nls + - rpcbind + - spice + - spice-protocol + - sysstat + - tcp_wrappers + - tcpdump + - unbound + - unbound-libs + - usbredir + - yunion-climc + - yunion-executor + - yunion-ocadm + - yunion-ovmfrpm + - yunion-qemu-2.12.1 + - yunion-fetcherfs + +common_services: + - ntpd + - yunion-executor diff --git a/onecloud/roles/utils/detect-os/vars/centos-x86_64.yml b/onecloud/roles/utils/detect-os/vars/centos-x86_64.yml index dd69b26c..12da8a10 100644 --- a/onecloud/roles/utils/detect-os/vars/centos-x86_64.yml +++ b/onecloud/roles/utils/detect-os/vars/centos-x86_64.yml @@ -1,5 +1,6 @@ --- +is_centos_based: true is_centos_x86: true common_packages: diff --git a/onecloud/roles/utils/gpu-init/files/gpu_setup.sh b/onecloud/roles/utils/gpu-init/files/gpu_setup.sh index 0d81fd08..b07e5415 100755 --- a/onecloud/roles/utils/gpu-init/files/gpu_setup.sh +++ b/onecloud/roles/utils/gpu-init/files/gpu_setup.sh @@ -129,7 +129,7 @@ grub_setup() { # 以便解决重启后因未加载 lvm 驱动而卡住的问题 sed -i -e 's#rd.lvm.lv=[^ ]*##gi' $grub_cfg - idx=$(awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg |grep -P '\.yn\d{8}\.'|awk '{print $1}' |head -1) + idx=$(awk -F\' '$1=="menuentry " {print i++ " : " $2}' $(find /etc/ -name 'grub2*cfg' |head -1 ) |grep -P '\.yn\d{8}\.'|awk '{print $1}' |head -1) if grep -q '^GRUB_DEFAULT' $grub_cfg; then sudo sed -i -e "s#^GRUB_DEFAULT=.*#GRUB_DEFAULT=$idx#" $grub_cfg else @@ -238,7 +238,7 @@ dracut_ramfs() { cat <"$dracut_vfio_file" add_drivers+=" vfio vfio_iommu_type1 vfio_pci" EOF - local yn_kernel=$(ls /boot/vmlinuz-* | grep yn.*x86_64 | sort -r | head -n 1) + local yn_kernel=$(ls /boot/vmlinuz-* | grep yn | sort -r | head -n 1) if [ -z "$yn_kernel" ]; then error_exit "Not found yunion customize kernel" fi diff --git a/onecloud/roles/utils/gpu-init/tasks/main.yml b/onecloud/roles/utils/gpu-init/tasks/main.yml index 3097062c..97204d10 100644 --- a/onecloud/roles/utils/gpu-init/tasks/main.yml +++ b/onecloud/roles/utils/gpu-init/tasks/main.yml @@ -34,4 +34,4 @@ executable: /bin/bash chdir: /usr/local/gpu-init/ when: - - is_centos_x86 is defined + - is_centos_based is defined diff --git a/onecloud/roles/utils/kernel-check/tasks/main.yml b/onecloud/roles/utils/kernel-check/tasks/main.yml index 73ba6c40..544cd800 100644 --- a/onecloud/roles/utils/kernel-check/tasks/main.yml +++ b/onecloud/roles/utils/kernel-check/tasks/main.yml @@ -31,7 +31,7 @@ - is_yunion_kernel_running.rc != 0 - ansible_connection == "ssh" - k8s_node_as_oc_host|default(false)|bool == true - - is_centos_x86 is defined + - is_centos_based is defined - name: Define kernel regex set_fact: kernel_regex_debian_510="5\.10\.0"