bootstrap
Role Description
Prepare your Debian and Ubuntu Systems for Ansible.
Example Playbook
This example is taken from molecule/default/converge.yml
and is tested on each push, pull request and release.
---
- name: Converge
hosts: all
become: true
gather_facts: false
roles:
- role: tehtbl.bootstrap
The machine you are running this on, may need to be prepared, I use this playbook to ensure everything is in place to let the role work.
---
- name: Prepare
hosts: all
become: true
gather_facts: false
Role Variables
These variables are set in defaults/main.yml
:
---
# ------------------------------------------------------------------------
# defaults file for bootstrap
# ------------------------------------------------------------------------
# The user to use to connect to machines.
bootstrap_user: root
# Installed software to support modules flagged as "preview" (i.e. mysql_db).
# "yes", "no" or unset are valid.
bootstrap_preview: true
# Do you want to wait for the host to be available?
bootstrap_wait_for_host: false
# The number of seconds you want to wait during connection test before failing.
bootstrap_timeout: 3
# The number of retries during installation
bootstrap_retries: 3
Requirements
- Access to a repository containing packages, likely on the internet.
- A recent version of Ansible. (Tests run on the current, previous and next release of Ansible.)
Context
This role is a part of many compatible roles. Have a look at my other roles for further information.
Compatibility
This role has been tested on these Docker images:
container | tag | allow_failures |
---|---|---|
debian | stable | no |
debian | testing | no |
debian | unstable | yes |
ubuntu | xenial | yes |
ubuntu | bionic | no |
ubuntu | focal | no |
ubuntu | devel | yes |
This role has been tested on these Ansible versions:
- ansible>=2.8, <2.9
- ansible>=2.9
- git+https://github.com/ansible/ansible.git@devel
Testing Using Tox
Unit tests are done on every commit, pull request, release and periodically.
If you find issues, please register them in GitHub
Testing is done using Tox and Molecule:
Tox tests multiple Ansible versions. Molecule tests multiple distributions.
To test using the defaults (any installed Ansible version, namespace: tehtbl
, image: ubuntu
, tag: latest
):
molecule test
# Or select a specific image:
IMAGE="ubuntu" molecule test
# Or select a specific image and a specific tag:
IMAGE="debian" TAG="stable" tox
Or you can test multiple versions of Ansible, and select the correct images:
Tox allows multiple versions of Ansible to be tested. To run the default (namespace: tehtbl
, image: ubuntu
, tag: latest
) tests:
tox
# To run Ubuntu (namespace: `tehtbl`, tag: `latest`)
IMAGE="ubuntu" tox
# Or customize more:
IMAGE="debian" TAG="stable" tox -e py37-ansible-current
Testing Using Vagrant
Install vagrant
plugins via:
vagrant plugin install vagrant-reload
Start Tests via VirtualBox Provider:
vagrant up
License
MIT License
Author Information
Sources
This work is based on the great work of many people, e.g. Robert de Bock, Jeff Geerling and Thomas Waldmann. Thank you!