Ansible role to apply a system upgrade.
Full documentation on Readthedocs.
Source code on:
Ingredients
Ansible role to apply a system upgrade.
This role performs the following actions:
- Ensure the requirements are installed.
- Ensure the current user can obtain administrative (root)
- permissions.
- Update the apt cache.
- If the upgrade variable is set to true or if the
- configuration file contains a variable upgrade setted to true, perform a full system upgrade.
- To install and execute:
ansible-galaxy install constrict0r.upgrade ansible localhost -m include_role -a name=constrict0r.upgrade -K
- Passing variables:
ansible localhost -m include_role -a name=constrict0r.upgrade -K \ -e "upgrade: false"
- To include the role on a playbook:
- hosts: servers roles: - {role: constrict0r.upgrade}
- To include the role as dependency on another role:
dependencies: - role: constrict0r.upgrade upgrade: true
- To use the role from tasks:
- name: Execute role task. import_role: name: constrict0r.upgrade vars: upgrade: true
To run tests:
cd upgrade chmod +x testme.sh ./testme.sh
On some tests you may need to use sudo to succeed.
The following variables are supported:
Boolean variable that defines if a system full upgrade is performed or not.
If set to true a full system upgrade is executed.
This variable is set to true by default.
# Including from terminal. ansible localhost -m include_role -a name=constrict0r.upgrade -K -e \ "upgrade=false" # Including on a playbook. - hosts: servers roles: - role: constrict0r.upgrade upgrade: false # To a playbook from terminal. ansible-playbook -i inventory my-playbook.yml -K -e \ "upgrade=false"
Absolute file path or URL to a .yml file that contains all or some of the variables supported by this role.
It is recommended to use a .yml or .yaml extension for the configuration file.
This variable is empty by default.
# Using file path. ansible localhost -m include_role -a name=constrict0r.upgrade -K -e \ "configuration=/home/username/my-config.yml" # Using URL. ansible localhost -m include_role -a name=constrict0r.upgrade -K -e \ "configuration=https://my-url/my-config.yml"
To see how to write a configuration file see the YAML file format section.
When passing configuration files to this role as parameters, it’s recommended to add a .yml or .yaml extension to the each file.
It is also recommended to add three dashes at the top of each file:
---
You can include in the file the variables required for your tasks:
--- upgrade: - true
If you want this role to load list of items from files and URLs you can set the expand variable to true:
--- upgrade: /home/username/my-config.yml expand: true
If the expand variable is false, any file path or URL found will be treated like plain text.
If you want to run the tests, you will also need:
MIT. See the LICENSE file for more details.
The full project structure is shown below:
The project data flow is shown below:
The Travelling Vaudeville Villain.
Enjoy!!!