| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- ---
- - name: set var
- set_fact:
- k8s_controlplane_host: "{{ hostvars[inventory_hostname]['groups']['primary_master_node'][0] }}"
- run_once: true
- when:
- - k8s_controlplane_host | default('') | length == 0
- - name: Assert k8s_controlplane_host
- fail:
- msg: "k8s_controlplane_host is not defined. "
- when:
- - k8s_controlplane_host | default('') | length == 0
- - name: set k8s cmdline env
- set_fact:
- k8s_or_k3s: "k8s"
- K3S_CMDLINE_PREFIX: ''
- ENV_KUBECONFIG: '/etc/kubernetes/admin.conf'
- - name: set k3s cmdline env
- set_fact:
- k8s_or_k3s : "k3s"
- K3S_CMDLINE_PREFIX: '/usr/local/bin/k3s'
- ENV_KUBECONFIG: "{{ '~/.kube/config' | expanduser }}"
- when:
- - env_k8s_or_k3s | default('k8s') == 'k3s'
- - block:
- - name: stat k3s bin
- stat:
- path: /usr/local/bin/k3s
- register: k3s_bin
- delegate_to: "{{ k8s_controlplane_host }}"
- - name: stat k3s config
- stat:
- path: /root/.kube/config
- register: k3s_config
- delegate_to: "{{ k8s_controlplane_host }}"
- - name: set k3s var
- set_fact:
- k8s_or_k3s: "k3s"
- K3S_CMDLINE_PREFIX: 'k3s'
- ENV_KUBECONFIG: "{{ '~/.kube/config' | expanduser }}"
- when:
- - k3s_bin.stat.exists | default(false) == true
- - k3s_config.stat.exists | default(false) == true
- when:
- - env_k8s_or_k3s | default('') == 'k8s'
- - debug: var=ENV_KUBECONFIG
- - debug: var=K3S_CMDLINE_PREFIX
- - block:
- - name: Set Onecloud Version If Not Defined
- environment:
- KUBECONFIG: "{{ ENV_KUBECONFIG }}"
- shell: |
- {{ K3S_CMDLINE_PREFIX }} kubectl -n onecloud get onecloudclusters default -o=jsonpath='{.spec.version}'
- register: k8s_oc_ver
- delegate_to: "{{ k8s_controlplane_host }}"
- run_once: true
- become: true
- - name: Set K8s Version
- set_fact:
- onecloud_version: "{{ k8s_oc_ver.stdout }}"
- when:
- - k8s_oc_ver.rc == 0
- when:
- - onecloud_version is not defined
- - name: Assert Onecloud Version
- fail:
- msg: "onecloud_version is not defined. "
- when:
- - onecloud_version | default('') | length == 0
- - name: set var for master
- set_fact:
- onecloud_version_abbr: "master"
- when:
- - onecloud_version is defined
- - onecloud_version | regex_search('^master-[-0-9.]+')
- - name: set var for non master
- set_fact:
- onecloud_version_abbr: "{{ onecloud_version | regex_replace('[^0-9.]+') | regex_findall('^[0-9]+\\.[0-9]+') | join('')}}"
- when:
- - onecloud_version is defined
- - onecloud_version | regex_search('v[0-9][-0-9.]+')
- - debug: var=onecloud_version_abbr
- - name: gather os specific variables "{{ ansible_distribution }} {{ ansible_distribution_major_version }} {{ ansible_architecture }}"
- include_vars: "{{ item }}"
- with_first_found:
- - files:
- - "{{ ansible_distribution | regex_replace('[^a-zA-Z0-9 ]+|[ ]+$', '') |replace(' ','_') | lower}}-{{ansible_distribution_release}}.yml"
- - "{{ ansible_distribution | regex_replace('[^a-zA-Z0-9 ]+|[ ]+$', '') |replace(' ','_') | lower}}.yml"
- - "{{ ansible_distribution|lower | replace(' ', '_') }}-{{ ansible_distribution_major_version|lower|replace('/', '_') }}.{{ ansible_architecture }}.yml"
- - "{{ ansible_distribution|lower | replace(' ', '_') }}-{{ ansible_distribution_major_version|lower|replace('/', '_') }}.yml"
- - "{{ ansible_distribution|lower | replace(' ', '_') }}-{{ ansible_distribution_release|lower }}-{{ ansible_architecture }}.yml"
- - "{{ ansible_distribution|lower | replace(' ', '_') }}-{{ ansible_distribution_release|lower }}.yml"
- - "{{ ansible_distribution|lower | replace(' ', '_') }}-{{ ansible_distribution_major_version|lower|replace('/', '_') }}.yml"
- - "{{ ansible_distribution|lower | replace(' ', '_') }}-{{ ansible_architecture }}.yml"
- - "{{ ansible_distribution|lower | replace(' ', '_') }}.yml"
- - "{{ ansible_os_family|lower }}-{{ ansible_architecture }}.yml"
- - "{{ ansible_os_family|lower }}.yml"
- - defaults.yml
- paths:
- - ../vars
- tags:
- - facts
- - name: gather var for latest packages
- include_vars: "../vars/latest_packages.yml"
- when:
- - latest_packages is not defined
- - name: gather var for containerd packages
- include_vars: "../vars/containerd_packages.yml"
- when:
- - containerd_packages is not defined
- - 'enable_containerd|default(false) == true'
- - name: gather var for qemu 10.x packages
- include_vars: "../vars/qemu_10_packages.yml"
- when:
- - qemu_10_packages is not defined
- - (onecloud_version is version('v4.0', '>=') and upgrade_onecloud_version is not defined) or (upgrade_onecloud_version is defined and upgrade_onecloud_version is version('v4.0', '>='))
- - name: gather var for win11 packages
- include_vars: "../vars/win11_packages.yml"
- when:
- - win11_packages is not defined
- - ansible_architecture == 'x86_64'
- - (onecloud_version is version('v4.0', '>=') and upgrade_onecloud_version is not defined) or (upgrade_onecloud_version is defined and upgrade_onecloud_version is version('v4.0', '>='))
- - name: Append K8s packages if needed
- set_fact:
- common_packages: "{{ common_packages + k8s_packages + ['yunion-ocadm'] }}"
- when:
- - k8s_packages is defined
- - k8s_or_k3s | default('k8s') == 'k8s'
- - name: Append containerd packages if needed
- set_fact:
- common_packages: "{{ common_packages + containerd_packages }}"
- when:
- - containerd_packages is defined
- - 'enable_containerd|default(false) == true'
- - name: Update latest packages for CE
- set_fact:
- latest_packages: "{{ latest_packages | select('match', '^(?!.*climc-ee.*$).*') | list }}"
- when:
- - use_ee|default(false)|bool == false # false: CE
- - name: Lookup offline data path
- ansible.builtin.set_fact:
- offline_data_path: "{{ lookup('env', 'OFFLINE_DATA_PATH') }}"
- - name: Set offline data path var
- ansible.builtin.set_fact:
- offline_data_path: "{{ offline_data_path | default(offline_data_path_var) }}"
- - name: Set online status
- ansible.builtin.set_fact:
- online_status: "{% if offline_data_path and offline_data_path != '' %}offline{% else %}online{% endif %}"
- - name: Set offline deploy
- ansible.builtin.set_fact:
- offline_deploy: "{% if offline_data_path and offline_data_path != '' %}true{% else %}false{% endif %}"
- - name: Check if /usr/bin/python3 exists
- stat:
- path: /usr/bin/python3
- register: python3_stat
- - name: Set python interpreter
- set_fact:
- ansible_python_interpreter: "/usr/bin/python3"
- when: python3_stat.stat.exists
- - debug: var=online_status
- - name: set default fact is_running_on_vm
- set_fact:
- is_running_on_vm: false
- - name: detect if running on VM
- set_fact:
- is_running_on_vm: true
- when:
- - ansible_virtualization_type is defined
- - ansible_virtualization_type != ''
- - ansible_virtualization_type != 'NA'
- - ansible_virtualization_role | default("") != "host"
- - name: join as host condition
- set_fact:
- join_as_host: false
- - name: vm node join as host agent
- set_fact:
- join_as_host: true
- when:
- - k8s_node_as_oc_host|default(false)|bool == true
- - k8s_node_as_oc_host_on_vm | default(false)|bool == true
- - is_running_on_vm | default(false)|bool == true
- - name: physical node join as host agent
- set_fact:
- join_as_host: true
- when:
- - k8s_node_as_oc_host|default(false)|bool == true
- - is_running_on_vm | default(false)|bool == false
- - name: disable telegraf for host service
- include_role:
- name: utils/disable-telegraf-service
- when:
- - join_as_host | default(false)|bool == true
- - name: Unmount /tmp if mounted
- shell: |
- mount | grep 'tmpfs on /tmp' && umount -l /tmp || :
- become: yes
- args:
- executable: /bin/bash
|