main.yml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. ---
  2. - name: add kubernetes repo
  3. copy: src=kubernetes.repo dest=/etc/yum.repos.d/ owner=root group=root mode=644
  4. tags: install
  5. # add ElRepo GPG Key
  6. - rpm_key:
  7. state: present
  8. key: https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  9. tags: install
  10. - name: add ElRepo (Nvidia kmod drivers)
  11. yum:
  12. name: http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
  13. state: present
  14. tags: install
  15. - name: update sysctl to handle incorrectly routed traffic when iptables is bypassed
  16. copy: src=k8s.conf dest=/etc/sysctl.d/ owner=root group=root mode=644
  17. tags: install
  18. - name: update sysctl
  19. command: /sbin/sysctl --system
  20. tags: install
  21. - name: Install EPEL Repository
  22. yum: name=epel-release state=present
  23. tags: install
  24. #likely need to add a reboot hook in here
  25. #- name: update kernel and all other system packages
  26. #yum: name=* state=latest
  27. #tags: install
  28. - name: disable swap
  29. command: /sbin/swapoff -a
  30. tags: install
  31. # Disable selinux
  32. - selinux:
  33. state: disabled
  34. tags: install
  35. - name: install common packages
  36. yum:
  37. name:
  38. - yum-plugin-versionlock
  39. - gcc
  40. - nfs-utils
  41. - python-pip
  42. - docker
  43. - bash-completion
  44. - kubelet-1.16.7
  45. - kubeadm-1.16.7
  46. - kubectl-1.16.7
  47. - nvidia-detect
  48. state: present
  49. tags: install
  50. - name: versionlock kubernetes
  51. command: yum versionlock kubelet-1.16.7 kubectl-1.16.7 kubeadm-1.16.7
  52. tags: install
  53. - name: install InfiniBand Support
  54. yum:
  55. name: "@Infiniband Support"
  56. state: present
  57. - name: Install KSonnet
  58. unarchive:
  59. src: https://github.com/ksonnet/ksonnet/releases/download/v0.13.1/ks_0.13.1_linux_amd64.tar.gz
  60. dest: /usr/bin/
  61. extra_opts: [--strip-components=1]
  62. remote_src: yes
  63. exclude:
  64. - ks_0.11.0_linux_amd64/CHANGELOG.md
  65. - ks_0.11.0_linux_amd64/CODE-OF-CONDUCT.md
  66. - ks_0.11.0_linux_amd64/CONTRIBUTING.md
  67. - ks_0.11.0_linux_amd64/LICENSE
  68. - ks_0.11.0_linux_amd64/README.md
  69. tags: install
  70. - name: upgrade pip
  71. command: /bin/pip install --upgrade pip
  72. tags: install
  73. #- name: Enable DevicePlugins for all GPU nodes (nvidia-container-runtime-hook)
  74. #copy: src=nvidia dest=/usr/libexec/oci/hooks.d/ owner=root group=root mode=755
  75. #tags: install
  76. - name: Add KUBE_EXTRA_ARGS to enable GPUs
  77. lineinfile:
  78. path: /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
  79. line: 'Environment="KUBELET_EXTRA_ARGS=--feature-gates=DevicePlugins=true"'
  80. insertbefore: 'KUBELET_KUBECONFIG_ARGS='
  81. tags: install
  82. - name: Start and Enable docker service
  83. service:
  84. name: docker
  85. state: restarted
  86. enabled: yes
  87. tags: install
  88. - name: Start and Enable Kubernetes - kubelet
  89. service:
  90. name: kubelet
  91. state: restarted
  92. enabled: yes
  93. tags: install
  94. - name: Start and rpcbind service
  95. service:
  96. name: rpcbind
  97. state: restarted
  98. enabled: yes
  99. tags: install
  100. - name: Start and nfs-server service
  101. service:
  102. name: nfs-server
  103. state: restarted
  104. enabled: yes
  105. tags: install
  106. - name: Start and nfs-lock service
  107. service:
  108. name: nfs-lock
  109. state: restarted
  110. enabled: yes
  111. tags: install
  112. - name: Start and nfs-idmap service
  113. service:
  114. name: nfs-idmap
  115. state: restarted
  116. enabled: yes
  117. tags: install