--- - hosts: all become: true tasks: - debug: var=hostvars[inventory_hostname]['ansible_default_ipv4']['address'] - debug: var=hostvars[inventory_hostname]['ansible_default_ipv6']['address'] - name: Install packages that allow apt to be used over HTTPS apt: name: "{{ packages }}" state: present update_cache: yes vars: packages: - aptitude - apt-transport-https - ca-certificates - curl - gnupg-agent - software-properties-common - name: Add an apt signing key for Docker apt_key: url: https://download.docker.com/linux/ubuntu/gpg state: present - name: Add apt repository for stable version apt_repository: repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable state: present - name: Install docker and its dependecies apt: name: "{{ packages }}" state: present update_cache: yes vars: packages: - docker-ce - docker-ce-cli - containerd.io notify: - docker status - name: Add user to docker group user: name: torma group: docker - name: Remove swapfile from /etc/fstab mount: name: "{{ item }}" fstype: swap state: absent with_items: - swap - none - name: Disable swap command: swapoff -a when: ansible_swaptotal_mb > 0 - name: Add an apt signing key for Kubernetes apt_key: url: https://packages.cloud.google.com/apt/doc/apt-key.gpg state: present - name: Adding apt repository for Kubernetes apt_repository: repo: deb https://apt.kubernetes.io/ kubernetes-xenial main state: present filename: kubernetes.list - name: Install Kubernetes binaries apt: name: "{{ packages }}" state: present update_cache: yes vars: packages: - kubelet - kubeadm - kubectl - name: Restart kubelet service: name: kubelet daemon_reload: yes state: restarted - name: Initialize the Kubernetes cluster using kubeadm command: kubeadm init --apiserver-advertise-address="{{ hostvars[inventory_hostname]['ansible_default_ipv4']['address'] }}" - name: Creates .kube directory file: path: /home/{{ ansible_user_id }}/.kube state: directory - name: Copy files needed for kubectl copy: remote_src: yes src: /etc/kubernetes/admin.conf dest: /home/{{ ansible_user_id }}/.kube/config owner: "{{ ansible_user_id }}" group: users - name: set up weave network shell: export KUBECONFIG=/etc/kubernetes/admin.conf && export kubever=$(kubectl version | base64 | tr -d '\n') && kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever" register: weavenet_out - name: Generate join command shell: kubeadm token create --print-join-command > /tmp/join_command - name: Specifying a destination path fetch: src: /tmp/join_command dest: /tmp/ansible/join_command flat: yes handlers: - name: docker status service: name=docker state=started