new file: install-docker-debian.yml

new file:   inventory
Initial commit
This commit is contained in:
Jonny Ervine 2020-02-19 07:56:45 +00:00
parent 4c3f897793
commit 652c7fc5ff
2 changed files with 148 additions and 0 deletions

136
install-docker-debian.yml Normal file
View File

@ -0,0 +1,136 @@
---
- name: Setup all hosts for installation
hosts: kubernetes
become: true
tasks:
- name: Install dependencies for docker
apt:
name: "{{ item }}"
state: present
with_items:
- "apt-transport-https"
- "ca-certificates"
- "software-properties-common"
- "cron"
- "curl"
- name: Get upstream docker APT GPG key
apt_key:
url: https://download.docker.com/linux/debian/gpg
state: "present"
- name: Configure upstream APT repository for Debian x86_64
apt_repository:
repo: "deb [arch=amd64] https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} edge"
state: "present"
update_cache: True
when:
- ansible_distribution == "Debian"
- ansible_architecture == "x86_64"
- name: Configure upstream APT repository for Raspbian armhf
apt_repository:
repo: "deb [arch=armhf] https://download.docker.com/linux/{{ ansible_lsb.id | lower }} {{ ansible_distribution_release }} edge"
state: "present"
update_cache: True
when:
- ansible_lsb.id == "Raspbian"
- name: Install Docker
apt:
name: "docker-ce=17.12.1~ce-0~{{ ansible_lsb.id | lower }}"
state: "present"
update_cache: True
install_recommends: False
- name: Get upstream kubernetes APT GPG key
apt_key:
url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
state: "present"
- name: Configure upstream kubernetes APT repository
apt_repository:
repo: "deb http://apt.kubernetes.io/ kubernetes-xenial main"
state: "present"
update_cache: True
- name: Install kubeadm
apt:
name: "kubeadm"
state: "present"
update_cache: True
install_recommends: False
- name: Remove swapfile from /etc/fstab
mount:
name: swap
fstype: swap
state: absent
- name: Disable swap
command: swapoff -a
when: ansible_swaptotal_mb > 0
- name: Set up master node
hosts: masters
become: true
tasks:
- name: Check for admin.conf from kubeadm
stat: path=/etc/kubernetes/admin.conf
register: admin_conf
- set_fact:
running: admin_conf.stat.exists
- name: Run kubeadm if admin.conf doesn't exist
command: kubeadm init --pod-network-cidr 10.244.0.0/16
when: admin_conf.stat.exists == false
- name: Create kubeadm join command
shell: kubeadm token create --print-join-command
register: results
when: admin_conf.stat.exists == false
- debug:
var: results.stdout
when: admin_conf.stat.exists == false
- set_fact:
token: "{{ results.stdout | regex_search(regexp, '\\2') | first }}"
vars:
regexp: '([^\s]+\s){4}([^\s]+)'
when: admin_conf.stat.exists == false
- debug:
var: token
when: admin_conf.stat.exists == false
- set_fact:
hash: "{{ results.stdout | regex_search(regexp, '\\2') | first }}"
vars:
regexp: '([^\s]+\s){6}([^\s]+)'
when: admin_conf.stat.exists == false
- debug:
var: hash
when: admin_conf.stat.exists == false
- name: Install flannel networking for RPi
shell: curl -sSL https://rawgit.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml | sed "s/amd64/arm/g" | kubectl --kubeconfig=/etc/kubernetes/admin.conf create -f -
when:
- ansible_lsb.id == "Raspbian"
- admin_conf.stat.exists == false
- name: Install flannel networking for x86_64
shell: curl -sSL https://rawgit.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml | kubectl --kubeconfig=/etc/kubernetes/admin.conf create -f -
when:
- ansible_distribution == "Debian"
- ansible_architecture == "x86_64"
- admin_conf.stat.exists == false
- debug:
msg: "kubeadm has probably already been run."
when: admin_conf.stat.exists == true
- name: Set up worker nodes
hosts: nodes
become: true
tasks:
- name: Install kubernetes on nodes
command: kubeadm join 192.168.11.167:6443 --token "{{ hostvars['debian.ipa.champion']['token'] }}" --discovery-token-ca-cert-hash "{{ hostvars['debian.ipa.champion']['hash'] }}"
when: hostvars['debian.ipa.champion']['running'] == false

12
inventory Normal file
View File

@ -0,0 +1,12 @@
[kubernetes]
debian-k8s-master1.ipa.champion
debian-k8s-node1.ipa.champion
[masters]
debian-k8s-master1.ipa.champion
[nodes]
debian-k8s-node1.ipa.champion
[test]
rpi-builder.ipa.champion