--- # - name: checking ports # include_role: # name: utils/misc-check - name: output onecloud_version debug: var: onecloud_version - name: output upgrade_onecloud_version debug: var: upgrade_onecloud_version - name: Verify OS is not debian based when lbagent is enabled fail: msg: "Cannot deploy lbagent on Debian based OS (AppArmor enabled OS)" when: - enable_lbagent | default(false) | bool == true - ansible_os_family == 'Debian' # 这里设置 primary_master_node_ip ,如果 primary_master_node_ip 不存在,则使用 hostvars[groups['primary_master_node'][0]]['node_ip'] - name: set primary_master_node_ip if not defined set_fact: primary_master_node_ip: "{{ hostvars[groups['primary_master_node'][0]]['node_ip'] }}" when: - online_status is defined - online_status == 'offline' - primary_master_node_ip is not defined - groups['primary_master_node'] is defined - groups['primary_master_node'] | length > 0 - name: set private registry dns record {{ primary_master_node_ip }} to /etc/hosts lineinfile: path: /etc/hosts line: "{{ primary_master_node_ip }} private-registry.onecloud" state: present when: - online_status is defined - online_status == 'offline' - primary_master_node_ip is defined - name: Append win11_packages to common_packages if win11_packages is defined set_fact: common_packages: "{{ common_packages + win11_packages }}" when: - win11_packages is defined - common_packages is 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: Append qemu_10_packages to common_packages after version 4.0 set_fact: common_packages: "{{ common_packages + qemu_10_packages }}" when: - qemu_10_packages is defined - common_packages is 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', '>=')) # onecloud/roles/common/tasks/ - name: "Import OS Arch tasks Common ({{ ansible_distribution }} {{ ansible_distribution_major_version }} {{ ansible_architecture }})" include_tasks: "{{ item }}" with_first_found: - files: - "{{ ansible_distribution | lower | regex_replace('[^a-zA-Z0-9 ]+|[ ]+$', '') | replace(' ','_') }}-{{ansible_distribution_release}}.yml" - "{{ ansible_distribution | lower |replace(' ', '_')}}_{{ ansible_distribution_major_version |lower }}_{{ ansible_architecture }}.yml" - "{{ ansible_distribution | lower |replace(' ', '_')}}_{{ ansible_distribution_major_version |lower }}.yml" - "{{ ansible_distribution | lower |replace(' ', '_')}}.yml" paths: - os - name: Binary version check include_role: name: utils/bin-version-check when: - K3S_CMDLINE_PREFIX | default('') | length == 0 - name: reset iptables rules shell: | # backup iptable ruleset fn=/etc/iptables.backup.$(date +"%Y%m%d-%H%M%S") sudo iptables-save > "$fn" # reset iptable rules sudo iptables -t nat -F sudo iptables -t nat -X sudo iptables -t nat -P PREROUTING ACCEPT sudo iptables -t nat -P POSTROUTING ACCEPT sudo iptables -t nat -P OUTPUT ACCEPT sudo iptables -t mangle -F sudo iptables -t mangle -X sudo iptables -t mangle -P PREROUTING ACCEPT sudo iptables -t mangle -P INPUT ACCEPT sudo iptables -t mangle -P FORWARD ACCEPT sudo iptables -t mangle -P OUTPUT ACCEPT sudo iptables -t mangle -P POSTROUTING ACCEPT sudo iptables -F sudo iptables -X sudo iptables -P FORWARD ACCEPT sudo iptables -P INPUT ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables -t raw -F sudo iptables -t raw -X sudo iptables -t raw -P PREROUTING ACCEPT sudo iptables -t raw -P OUTPUT ACCEPT sudo service iptables save || : sudo service iptables restart || : args: executable: /bin/bash - name: Stop/Disable Depreciated Services If Any shell: | for service in yunion-host-image yunion-host-sdnagent firewalld do if [ -f /usr/lib/systemd/system/$service.service ]; then sudo systemctl disable --now $service fi done become: true args: executable: /bin/bash ignore_errors: yes changed_when: false failed_when: false - name: Config NetworkManager include_role: name: utils/config-network-manager - name: Load br_netfilter modprobe: name: "{{ item }}" state: present become: true loop: - br_netfilter - ip_conntrack - name: Load br_netfilter at boot copy: owner: root group: root mode: "0644" dest: /etc/modules-load.d/kubernetes.conf content: br_netfilter become: true - name: Change sysctl setting sysctl: name: "{{ item }}" value: "1" state: present become: true loop: - net.bridge.bridge-nf-call-iptables - net.bridge.bridge-nf-call-ip6tables - net.ipv4.ip_forward - name: Change sysctl fs.inotify.max_user_watches sysctl: name: "fs.inotify.max_user_watches" value: "65536" state: present become: true - name: Change sysctl fs.inotify.max_user_instances sysctl: name: "fs.inotify.max_user_instances" value: "8192" state: present become: true - name: Disable systemd swap service shell: | dev=$(cat /proc/swaps |grep -v 'Filename' |wc -l) if [ "$dev" -eq 0 ]; then exit 0 fi for i in $(systemctl --type swap --all|grep 'dev'|grep active |awk '{print $1}' ); do if [ -z "$i" ]; then continue fi systemctl stop "$i" systemctl mask "$i" done systemctl daemon-reload cp -fv /etc/fstab /etc/fstab.$(date +"%Y%m%d-%H%M%S").bak sed -i '/swap/ s/^#*/#/' -i /etc/fstab become: true args: executable: /bin/bash when: - is_debian_based is defined # https://github.com/kubernetes-retired/contrib/blob/master/ansible/roles/node/tasks/swapoff.yml - name: Turn off swap mount mount: name: "{{ item }}" fstype: swap state: absent become: true with_items: - swap - none - name: Turn off swap now command: swapoff -a become: true when: ansible_swaptotal_mb > 0 - name: Create sysconfig directory if does not exist file: path: /etc/sysconfig/modules/ state: directory mode: '0755' become: true - name: kernel module config include_role: name: utils/kernel-modules # added to "k8s_docker.yml" - name: include k8s docker if needed include_tasks: "k8s_docker.yml" when: - k8s_or_k3s | default('') == 'k8s' - name: Export cloud bin path in /etc/profile lineinfile: dest: /etc/profile line: "export PATH=$PATH:/opt/yunion/bin" state: present create: yes regexp: '^export PATH=.*/opt/yunion/bin' become: true when: shell is undefined or shell == 'bash' - name: Enable cloud systemd services service: name: "{{ item }}" enabled: yes state: started become: true loop: - yunion-executor - name: Include cronjobs include_role: name: utils/cronjobs - name: Install ceph and openvswitch scripts include_tasks: "symlink.yml" when: - (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', '>='))