k8s_prep.yaml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. ---
  2. # cybergavin
  3. # Prepare a node for Kubernetes
  4. #
  5. - name: Turn off swap
  6. command: swapoff -a
  7. changed_when: true
  8. when: ansible_swaptotal_mb > 0
  9. - name: Disable swap
  10. lineinfile:
  11. path: '/etc/fstab'
  12. regexp: '\sswap\s'
  13. state: absent
  14. - name: Put SELinux in permissive mode, logging actions that would be blocked.
  15. selinux:
  16. policy: targeted
  17. state: permissive
  18. - name: Disable firewalld
  19. systemd:
  20. name: firewalld
  21. state: stopped
  22. enabled: no
  23. - name: Load the required kernel modules
  24. modprobe:
  25. name: "{{ item }}"
  26. state: present
  27. with_items:
  28. - br_netfilter
  29. - overlay
  30. - name: Persist kernel module loading
  31. copy:
  32. dest: '/etc/modules-load.d/k8s.conf'
  33. content: |
  34. br_netfilter
  35. overlay
  36. - name: Tune sysctl parameters in /proc and the sysctl file
  37. sysctl:
  38. name: "{{ item }}"
  39. value: '1'
  40. sysctl_set: yes
  41. state: present
  42. with_items:
  43. - net.ipv4.ip_forward
  44. - net.bridge.bridge-nf-call-iptables
  45. - net.bridge.bridge-nf-call-ip6tables
  46. - name: Add Kubernetes repository
  47. yum_repository:
  48. baseurl: https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
  49. name: "Kubernetes"
  50. state: present
  51. description: "Kubernetes Repository"
  52. gpgcheck: yes
  53. gpgkey: "https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg"
  54. exclude: "kubelet kubeadm kubectl"
  55. - name: Add docker-ce repository for containerd
  56. yum_repository:
  57. name: "Docker-CE"
  58. description: "Docker CE Stable"
  59. baseurl: https://download.docker.com/linux/centos/$releasever/$basearch/stable
  60. state: present
  61. gpgcheck: yes
  62. gpgkey: https://download.docker.com/linux/centos/gpg
  63. - name: Install required packages (containerd, kubeadmn, kubectl, kubelet)
  64. yum:
  65. name: "{{ packages }}"
  66. disable_excludes: "Kubernetes"
  67. vars:
  68. packages:
  69. - containerd.io
  70. - kubeadm
  71. - kubelet
  72. - kubectl
  73. - iproute-tc
  74. - name: Dump default configuration for containerd
  75. shell: containerd config default > /etc/containerd/config.toml
  76. - name: Configure crictl to use containerd
  77. copy:
  78. src: files/crictl.yaml
  79. dest: /etc/crictl.yaml
  80. - name: Enable and start the required services (containerd.io, kubelet)
  81. systemd:
  82. name: "{{ item }}"
  83. enabled: yes
  84. state: started
  85. with_items:
  86. - containerd
  87. - kubelet