From 897d5c0bc69c50da75b23e2ff98bd507450275b2 Mon Sep 17 00:00:00 2001 From: hygienic-books Date: Wed, 8 Jun 2022 14:42:13 +0200 Subject: [PATCH] docs(ansible): Document basic functionality --- .gitignore | 3 ++- README.md | 15 ++++++++++++++- ansible/group_vars/all/vars.yml.example | 1 + ansible/hosts.yml.example | 8 ++++++++ ansible/playbook.yml | 4 ++++ .../tasks/40-packages.yml | 17 +++++++++++++++++ .../tasks/main.yml | 1 + 7 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 ansible/group_vars/all/vars.yml.example create mode 100644 ansible/hosts.yml.example create mode 100644 ansible/playbook.yml create mode 100644 ansible/roles/20-common-40-package-upgrades/tasks/40-packages.yml create mode 100644 ansible/roles/20-common-40-package-upgrades/tasks/main.yml diff --git a/.gitignore b/.gitignore index 5c199eb..6f6207f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ # ---> Ansible *.retry - +ansible/hosts.yml +ansible/group_vars/*/vars.yml \ No newline at end of file diff --git a/README.md b/README.md index 12a51ba..8cebefb 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,16 @@ # ansible-package-upgrades -No-frills Ansible playbook to run ad-hoc package upgrades \ No newline at end of file +No-frills Ansible playbook to run ad-hoc package upgrades + +## Run it + +Run it like so: +``` +ansible-playbook --inventory hosts.yml playbook.yml --limit +``` + +## Vars + +* Create your inventory for example at `ansible/hosts.yml`, an exampe file is located at [ansible/hosts.yml.example](ansible/hosts.yml.example). + +* Set host group vars as needed, an example file for the `all` group is at [ansible/group_vars/all/vars.yml.example](ansible/group_vars/all/vars.yml.example). \ No newline at end of file diff --git a/ansible/group_vars/all/vars.yml.example b/ansible/group_vars/all/vars.yml.example new file mode 100644 index 0000000..02c7493 --- /dev/null +++ b/ansible/group_vars/all/vars.yml.example @@ -0,0 +1 @@ +ansible_user: 'root' \ No newline at end of file diff --git a/ansible/hosts.yml.example b/ansible/hosts.yml.example new file mode 100644 index 0000000..117b424 --- /dev/null +++ b/ansible/hosts.yml.example @@ -0,0 +1,8 @@ +all: + children: + groupone: + hosts: + fully.qualified.domain.name: + grouptwo: + hosts: + anotherfully.qualified.domain.name \ No newline at end of file diff --git a/ansible/playbook.yml b/ansible/playbook.yml new file mode 100644 index 0000000..d14e18c --- /dev/null +++ b/ansible/playbook.yml @@ -0,0 +1,4 @@ +- name: 'Upgrade packages and reboot where needed' + hosts: all + roles: + - '20-common-40-package-upgrades' \ No newline at end of file diff --git a/ansible/roles/20-common-40-package-upgrades/tasks/40-packages.yml b/ansible/roles/20-common-40-package-upgrades/tasks/40-packages.yml new file mode 100644 index 0000000..fdda243 --- /dev/null +++ b/ansible/roles/20-common-40-package-upgrades/tasks/40-packages.yml @@ -0,0 +1,17 @@ +- name: 'Upgrade the OS (apt-get dist-upgrade)' + ansible.builtin.apt: + update_cache: 'yes' + upgrade: 'dist' + + + +- name: 'Check if reboot required' + register: reboot_required_file + ansible.builtin.stat: + path: '/var/run/reboot-required' + + + +- name: 'Reboot if required' + when: '(reboot_required_file.stat.exists == true)' + ansible.builtin.reboot: \ No newline at end of file diff --git a/ansible/roles/20-common-40-package-upgrades/tasks/main.yml b/ansible/roles/20-common-40-package-upgrades/tasks/main.yml new file mode 100644 index 0000000..df2303b --- /dev/null +++ b/ansible/roles/20-common-40-package-upgrades/tasks/main.yml @@ -0,0 +1 @@ +- import_tasks: '40-packages.yml' \ No newline at end of file