generated from infra/template
9 changed files with 167 additions and 58 deletions
-
8ansible-desktop.yml
-
18hosts
-
10roles/common/tasks/main.yml
-
0roles/docker-compose/tasks/main.yml
-
0roles/docker-compose/vars/main.yml
-
52roles/docker/tasks/docker.yml
-
52roles/docker/tasks/main.yml
-
82roles/kube-dependencies/tasks/main.yml
-
3roles/kube-dependencies/vars/main.yml
@ -1,7 +1,13 @@ |
|||
--- |
|||
- name: Base playbook |
|||
- name: docker-units playbook |
|||
hosts: docker-units |
|||
roles: |
|||
- { role: common, become: true } |
|||
- { role: docker, become: true } |
|||
- { role: docker-compose, become: true } |
|||
|
|||
- name: k8s playbook |
|||
hosts: docker-units |
|||
roles: |
|||
- { role: common, become: true } |
|||
... |
@ -1,8 +1,20 @@ |
|||
[k8s:children] |
|||
k8s-master |
|||
k8s-worker |
|||
|
|||
[k8s-master] |
|||
k8s-master-01 ansible_host=192.168.1.180 |
|||
k8s-master-02 ansible_host=192.168.1.181 |
|||
|
|||
[k8s-worker] |
|||
k8s-worker-01 ansible_host=192.168.1.190 |
|||
k8s-worker-02 ansible_host=192.168.1.191 |
|||
|
|||
[docker-units] |
|||
10.10.10.6 |
|||
192.168.1.151 |
|||
homeassistant ansible_host=10.10.10.6 |
|||
pi-hole ansible_host=192.168.1.151 |
|||
|
|||
[docker-units:vars] |
|||
[all:vars] |
|||
ansible_connection=ssh |
|||
ansible_ssh_private_key_file=/home/fedy95/.ssh/id_rsa |
|||
ansible_user=fedy95 |
@ -1,52 +0,0 @@ |
|||
--- |
|||
- name: Update apt cache |
|||
apt: |
|||
update_cache: yes |
|||
cache_valid_time: "{{ aptcachetime }}" |
|||
|
|||
- name: Upgrade all apt packages |
|||
apt: upgrade=dist |
|||
|
|||
- name: Install docker packages |
|||
apt: |
|||
name: "{{ item }}" |
|||
state: present |
|||
update_cache: yes |
|||
loop: |
|||
- 'apt-transport-https' |
|||
- 'ca-certificates' |
|||
- 'curl' |
|||
- 'gnupg' |
|||
- 'lsb-release' |
|||
|
|||
- name: Add Docker GPG key |
|||
apt_key: |
|||
url: https://download.docker.com/linux/ubuntu/gpg |
|||
state: present |
|||
|
|||
- name: Add deb repository |
|||
apt_repository: |
|||
repo: deb https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable |
|||
state: present |
|||
update_cache: yes |
|||
|
|||
- name: Install docker |
|||
apt: |
|||
name: "{{ item }}" |
|||
state: present |
|||
update_cache: yes |
|||
loop: |
|||
- 'docker-ce' |
|||
- 'docker-ce-cli' |
|||
- 'containerd.io' |
|||
|
|||
- name: Ensure docker users are added to the docker group. |
|||
user: |
|||
name: "{{ item }}" |
|||
groups: docker |
|||
append: true |
|||
with_items: "{{ ansible_env.USER }}" |
|||
|
|||
- name: "Ensure Docker is {{ docker.start | ternary('started','stopped') }}" |
|||
service: name=docker state={{ docker.start | ternary('restarted','stopped') }} enabled={{ docker.service_enabled }} |
|||
... |
@ -1,4 +1,52 @@ |
|||
--- |
|||
- include_tasks: docker.yml |
|||
- include_tasks: docker-compose.yml |
|||
- name: Update apt cache |
|||
apt: |
|||
update_cache: yes |
|||
cache_valid_time: "{{ aptcachetime }}" |
|||
|
|||
- name: Upgrade all apt packages |
|||
apt: upgrade=dist |
|||
|
|||
- name: Install docker packages |
|||
apt: |
|||
name: "{{ item }}" |
|||
state: present |
|||
update_cache: yes |
|||
loop: |
|||
- 'apt-transport-https' |
|||
- 'ca-certificates' |
|||
- 'curl' |
|||
- 'gnupg' |
|||
- 'lsb-release' |
|||
|
|||
- name: Add Docker GPG key |
|||
apt_key: |
|||
url: https://download.docker.com/linux/ubuntu/gpg |
|||
state: present |
|||
|
|||
- name: Add deb repository |
|||
apt_repository: |
|||
repo: deb https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable |
|||
state: present |
|||
update_cache: yes |
|||
|
|||
- name: Install docker |
|||
apt: |
|||
name: "{{ item }}" |
|||
state: present |
|||
update_cache: yes |
|||
loop: |
|||
- 'docker-ce' |
|||
- 'docker-ce-cli' |
|||
- 'containerd.io' |
|||
|
|||
- name: Ensure docker users are added to the docker group. |
|||
user: |
|||
name: "{{ item }}" |
|||
groups: docker |
|||
append: true |
|||
with_items: "{{ ansible_env.USER }}" |
|||
|
|||
- name: "Ensure Docker is {{ docker.start | ternary('started','stopped') }}" |
|||
service: name=docker state={{ docker.start | ternary('restarted','stopped') }} enabled={{ docker.service_enabled }} |
|||
... |
@ -0,0 +1,82 @@ |
|||
- hosts: k8s |
|||
- name: add Kubernetes apt-key |
|||
apt_key: |
|||
url: https://packages.cloud.google.com/apt/doc/apt-key.gpg |
|||
state: present |
|||
|
|||
- name: add Kubernetes' APT repository |
|||
apt_repository: |
|||
repo: deb http://apt.kubernetes.io/ kubernetes-xenial main |
|||
state: present |
|||
filename: 'kubernetes' |
|||
|
|||
- name: install kubelet |
|||
apt: |
|||
name: kubelet={{ kube_version }} |
|||
state: present |
|||
update_cache: true |
|||
|
|||
- name: install kubeadm |
|||
apt: |
|||
name: kubeadm={{ kube_version }} |
|||
state: present |
|||
|
|||
- hosts: k8s-master |
|||
become: yes |
|||
tasks: |
|||
- name: install kubectl |
|||
apt: |
|||
name: kubectl={{ kube_version }} |
|||
state: present |
|||
force: yes |
|||
|
|||
- name: initialize the cluster |
|||
shell: kubeadm init --pod-network-cidr=10.244.0.0/16 >> cluster_initialized.txt |
|||
args: |
|||
chdir: $HOME |
|||
creates: cluster_initialized.txt |
|||
|
|||
- name: create .kube directory |
|||
become: yes |
|||
become_user: ubuntu |
|||
file: |
|||
path: $HOME/.kube |
|||
state: directory |
|||
mode: 0755 |
|||
|
|||
- name: copy admin.conf to user's kube config |
|||
copy: |
|||
src: /etc/kubernetes/admin.conf |
|||
dest: /home/ubuntu/.kube/config |
|||
remote_src: yes |
|||
owner: ubuntu |
|||
|
|||
- name: install Pod network |
|||
become: yes |
|||
become_user: ubuntu |
|||
shell: kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml >> pod_network_setup.txt |
|||
args: |
|||
chdir: $HOME |
|||
creates: pod_network_setup.txt |
|||
|
|||
- hosts: k8s-master |
|||
become: yes |
|||
gather_facts: false |
|||
tasks: |
|||
- name: get join command |
|||
shell: kubeadm token create --print-join-command |
|||
register: join_command_raw |
|||
|
|||
- name: set join command |
|||
set_fact: |
|||
join_command: "{{ join_command_raw.stdout_lines[0] }}" |
|||
|
|||
|
|||
- hosts: k8s-workers |
|||
become: yes |
|||
tasks: |
|||
- name: join cluster |
|||
shell: "{{ hostvars['master'].join_command }} >> node_joined.txt" |
|||
args: |
|||
chdir: $HOME |
|||
creates: node_joined.txt |
@ -0,0 +1,3 @@ |
|||
--- |
|||
kube_version: "1.14.0-00" |
|||
... |
Reference in new issue