From 5b7126987239f7987e6a8d79e9fe7ee843b50699 Mon Sep 17 00:00:00 2001 From: xfgjdsytdsg Date: Fri, 24 Sep 2021 18:10:20 +0800 Subject: [PATCH] update all --- .taskfiles/ansible.yml | 87 +++++++++++++++++++ Taskfile.yml | 2 + .../playbooks/kubernetes/debian-upgrade.yml | 17 ++++ 3 files changed, 106 insertions(+) create mode 100644 .taskfiles/ansible.yml create mode 100644 ansible/playbooks/kubernetes/debian-upgrade.yml diff --git a/.taskfiles/ansible.yml b/.taskfiles/ansible.yml new file mode 100644 index 0000000..0060b97 --- /dev/null +++ b/.taskfiles/ansible.yml @@ -0,0 +1,87 @@ +--- +version: "3" + +env: + ANSIBLE_CONFIG: "{{.PROJECT_DIR}}/ansible/ansible.cfg" + +vars: + ANSIBLE_PLAYBOOK_DIR: "{{.ANSIBLE_DIR}}/playbooks" + ANSIBLE_INVENTORY_DIR: "{{.ANSIBLE_DIR}}/inventory" + +tasks: + deps: + desc: Upgrade Ansible galaxy deps + dir: ansible + cmds: + - "ansible-galaxy install -r requirements.yml --force" + - "pip3 install -r requirements.txt" + silent: true + + list: + desc: List all the hosts + dir: ansible + cmds: + - "ansible all -i {{.ANSIBLE_INVENTORY_DIR}}/home-cluster/hosts.yml --list-hosts" + silent: true + + ping: + desc: Ping all the hosts + dir: ansible + cmds: + - "ansible all -i {{.ANSIBLE_INVENTORY_DIR}}/home-cluster/hosts.yml --one-line -m 'ping'" + silent: true + + uptime: + desc: Uptime of all the hosts + dir: ansible + cmds: + - ansible all -i {{.ANSIBLE_INVENTORY_DIR}}/home-cluster/hosts.yml --one-line -a 'uptime' + silent: true + + clean-images: + desc: Clean up stale container images + dir: ansible + cmds: + - "ansible kubernetes -i {{.ANSIBLE_INVENTORY_DIR}}/home-cluster/hosts.yml --one-line -a 'k3s crictl rmi --prune' --become" + silent: true + + purge-manifests: + desc: Delete all manifests under /var/lib/rancher/k3s/server/manifests + dir: ansible + cmds: + - "ansible master -i {{.ANSIBLE_INVENTORY_DIR}}/home-cluster/hosts.yml --one-line -a 'rm /var/lib/rancher/k3s/server/manifests/*' --become" + + reboot: + desc: Reboot all the k8s nodes + dir: ansible + cmds: + - "ansible kubernetes -i {{.ANSIBLE_INVENTORY_DIR}}/home-cluster/hosts.yml -a '/usr/bin/systemctl reboot' --become" + silent: true + + poweroff: + desc: Shutdown all the k8s nodes + dir: ansible + cmds: + - "ansible kubernetes -i {{.ANSIBLE_INVENTORY_DIR}}/home-cluster/hosts.yml -a '/usr/bin/systemctl poweroff' --become" + silent: true + + playbook:debian-prepare: + desc: Prepare all the k8s nodes for running k3s + dir: ansible + cmds: + - "ansible-playbook -i {{.ANSIBLE_INVENTORY_DIR}}/home-cluster/hosts.yml {{.ANSIBLE_PLAYBOOK_DIR}}/kubernetes/debian-prepare.yml" + silent: true + + playbook:debian-upgrade: + desc: Upgrade all the k8s nodes operating system + dir: ansible + cmds: + - "ansible-playbook -i {{.ANSIBLE_INVENTORY_DIR}}/home-cluster/hosts.yml {{.ANSIBLE_PLAYBOOK_DIR}}/kubernetes/debian-upgrade.yml" + silent: true + + playbook:cluster-install: + desc: Install Kubernetes on the nodes + dir: ansible + cmds: + - "ansible-playbook -i {{.ANSIBLE_INVENTORY_DIR}}/home-cluster/hosts.yml {{.ANSIBLE_PLAYBOOK_DIR}}/kubernetes/k3s-install.yml" + silent: true \ No newline at end of file diff --git a/Taskfile.yml b/Taskfile.yml index 700f9f8..b760a01 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -5,11 +5,13 @@ vars: PROJECT_DIR: sh: "git rev-parse --show-toplevel" CLUSTER_DIR: "{{.PROJECT_DIR}}/cluster" + ANSIBLE_DIR: "{{.PROJECT_DIR}}/ansible" env: KUBECONFIG: "{{.PROJECT_DIR}}/kubeconfig" includes: + ansible: .taskfiles/ansible.yml flux: .taskfiles/flux.yml format: .taskfiles/format.yml lint: .taskfiles/lint.yml diff --git a/ansible/playbooks/kubernetes/debian-upgrade.yml b/ansible/playbooks/kubernetes/debian-upgrade.yml new file mode 100644 index 0000000..2569dc8 --- /dev/null +++ b/ansible/playbooks/kubernetes/debian-upgrade.yml @@ -0,0 +1,17 @@ +--- +- hosts: + - storage + become: true + gather_facts: true + any_errors_fatal: true + tasks: + - name: upgrade + ansible.builtin.apt: + upgrade: full + update_cache: true + cache_valid_time: 3600 + autoclean: true + autoremove: true + register: apt_upgrade + retries: 5 + until: apt_upgrade is success \ No newline at end of file