Giter VIP home page Giter VIP logo

ansible-role-bootstrap's Introduction

Prepare your system to be managed by Ansible.

GitHub GitLab Downloads Version
github gitlab downloads Version

This example is taken from molecule/default/converge.yml and is tested on each push, pull request and release.

---
- name: Converge
  hosts: all
  # This role installs packages using the `raw` module and needs to connect as
  # `root`. (`sudo` is not available before bootstrapping.) All tasks in the
  # role have `become` set to `false`, so you can use either `false` or `true`
  # for `become`, the role will not use become (so `sudo`) for any task.
  become: true  # `false` will also work.
  # This role installs python, gathering facts can't be done before `python` is
  # installed. This role runs the `setup` module, so facts will be available
  # after running the role.
  gather_facts: false

  roles:
    - role: robertdebock.bootstrap

Also see a full explanation and example on how to use these roles.

The default values for the variables are set in defaults/main.yml:

---
# defaults file for bootstrap

# 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

# Tell the role to "become" or not.
bootstrap_become: true

This role is a part of many compatible roles. Have a look at the documentation of these roles for further information.

Here is an overview of related roles: dependencies

This role has been tested on these container images:

container tags
Alpine all
Amazon Candidate
EL all
Debian all
Fedora all
opensuse all
Ubuntu all

The minimum version of Ansible required is 2.12, tests have been done to:

  • The previous version.
  • The current version.
  • The development version.

If you find issues, please register them in GitHub.

Apache-2.0.

robertdebock

Please consider sponsoring me.

ansible-role-bootstrap's People

Contributors

crystalstiletto avatar fzarifian avatar infothrill avatar jellevandehaterd avatar kmonticolo avatar philippwaller avatar rembik avatar robert-de-bock avatar robertdebock avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ansible-role-bootstrap's Issues

OpenWRT support

I would be interested in adding support to bootstrap OpenWRT for ansible. Were I to make PR with OpenWRT support would you be interesting in merging it?

Alpine support

You commented out the alpine distro in meta/main.yml, any plans to add it back?

Unable to bootstrap Ubuntu hirsute

Describe the bug

When applying this role to the docker.io/ubuntu:hirsute image it fails upon installing bootstrap packages.

When I login to the container after molecule converge has failed and execute the command myself it works without issue.

mol converge # Fails with ...
...
TASK [robertdebock.bootstrap : install bootstrap packages (raw)] ***************
fatal: [instance]: FAILED! => {"changed": true, "msg": "non-zero return code", "rc": 127, "stderr": "Error: exec failed: container_linux.go:380: starting container process caused: exec: \"LANG=C\": executable file not found in $PATH: OCI not found\n", "stderr_lines": ["Error: exec failed: container_linux.go:380: starting container process caused: exec: \"LANG=C\": executable file not found in $PATH: OCI not found"], "stdout": "", "stdout_lines": []}
...
mol login
LANG=C apt-get update && apt-get install -y python3 sudo gnupg python3-apt # Succeeds
CTRL+D
mol converge # Succeeds

Playbook

---
- name: Prepare machine for role usage
  hosts: all
  become: true
  gather_facts: false
  roles:
    - robertdebock.bootstrap

Molecule configuration

---
dependency:
  name: galaxy
driver:
  name: podman
platforms:
  - name: instance
    image: docker.io/ubuntu:hirsute
    pre_build_image: true
provisioner:
  name: ansible
verifier:
  name: ansible

Environment

  • Control node OS: Ubuntu Hirsute WSL2
  • Control node Ansible version: 2.12.1
  • Managed node OS: Ubuntu Hirsute Podman

Using this role in check_mode causes error

When running a play with this role, adding the --check flag causes an error and the play fails. I believe this is because release.stdout is undefined. In order to fix, add "check_mode: no" to the "register release" task. This will make the task run even in check mode.

install bootstrap packages mkstemp (13: Permission denied)

Describe the bug

Could not create temporary file for /var/lib/apt/extended_states - mkstemp (13: Permission denied)

Run playbook from user with sudo without password

Playbook

---
- name: Install zabbix server and web
  hosts: zabbix
  become: true

  roles:
    - role: robertdebock.bootstrap

Output

TASK [robertdebock.bootstrap : install bootstrap packages (package)] *******************************************************************************************************************
Friday 01 April 2022  14:04:06 +0600 (0:00:01.796)       0:00:11.819 **********
failed: [zabbix] (item=python3) => changed=false
  ansible_loop_var: item
  item: python3
  msg: |-
    '/usr/bin/apt-mark manual python3' failed: E: Could not create temporary file for /var/lib/apt/extended_states - mkstemp (13: Permission denied)
    E: Failed to write temporary StateFile /var/lib/apt/extended_states
  rc: 100
  stderr: |-
    E: Could not create temporary file for /var/lib/apt/extended_states - mkstemp (13: Permission denied)
    E: Failed to write temporary StateFile /var/lib/apt/extended_states
  stderr_lines: <omitted>
  stdout: ''
  stdout_lines: <omitted>
failed: [zabbix] (item=sudo) => changed=false
  ansible_loop_var: item
  item: sudo
  msg: |-
    '/usr/bin/apt-mark manual sudo' failed: E: Could not create temporary file for /var/lib/apt/extended_states - mkstemp (13: Permission denied)
    E: Failed to write temporary StateFile /var/lib/apt/extended_states
  rc: 100
  stderr: |-
    E: Could not create temporary file for /var/lib/apt/extended_states - mkstemp (13: Permission denied)
    E: Failed to write temporary StateFile /var/lib/apt/extended_states
  stderr_lines: <omitted>
  stdout: ''
  stdout_lines: <omitted>
failed: [zabbix] (item=gnupg) => changed=false
  ansible_loop_var: item
  item: gnupg
  msg: |-
    '/usr/bin/apt-mark manual gnupg' failed: E: Could not create temporary file for /var/lib/apt/extended_states - mkstemp (13: Permission denied)
    E: Failed to write temporary StateFile /var/lib/apt/extended_states
  rc: 100
  stderr: |-
    E: Could not create temporary file for /var/lib/apt/extended_states - mkstemp (13: Permission denied)
    E: Failed to write temporary StateFile /var/lib/apt/extended_states
  stderr_lines: <omitted>
  stdout: ''
  stdout_lines: <omitted>

Environment

Version

ansible [core 2.12.2]
  python version = 3.8.10 (default, Nov 26 2021, 20:14:08) [GCC 9.3.0]

Server where ansible

cat /etc/*release*
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS"
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"

Remote server

cat /etc/*release*
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS"
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"

Impossible to install any package excepting when I am root user.

Describe the bug

According to the business logic the user who installs a package is the user retrieved in bootstrap_ansible_user.
This one is bootstrap_user if and only if we could not connect with the remote_user.

In the case of using a privileged user (in my case vagrant which is a user sudoers without a password). The install bootstrap packages (package) task can never finish properly because only root can install a package. This is impossible to be "root" due to the become_user key on this task.

Playbook

Use the example playbook on the README.md file

---
- name: Converge
  hosts: all
  become: yes
  gather_facts: no

  roles:
    - role: robertdebock.bootstrap

Be sure to have a privileged user on managed node or try to do it with vagrant :

Output

TASK [robertdebock.bootstrap : install bootstrap packages name={{ item }}, state=present] ****************************************************************************************************************************************************
Monday 25 October 2021  23:33:38 +0200 (0:00:00.694)       0:00:01.286 ******** 
failed: [127.0.0.1] (item=python3) => changed=false 
  ansible_loop_var: item
  item: python3
  msg: This command has to be run under the root user.
  results: []
failed: [127.0.0.1] (item=sudo) => changed=false 
  ansible_loop_var: item
  item: sudo
  msg: This command has to be run under the root user.
  results: []

Environment

Only test with Centos-8
Step by Step to reproduce :

ansible-galaxy install robertdebock.bootstrap
mkdir /tmp/vagrant
vagrant init generic/centos8 --box-version 3.4.2 
vgt up
vim play.yml 
---
- name: Converge
  hosts: all
  become: yes
  gather_facts: no

  roles:
    - role: robertdebock.bootstrap
  
ansible-playbook -i '127.0.0.1:2200,' --private-key ./.vagrant/machines/default/virtualbox/private_key -b -u vagrant play.yml

Please consider sponsoring me.

Unable to install latest galaxy version 6.1.2

Describe the bug

I am trying to run galaxy install on the latest bootstrap version and it doesn't appear to be listed in the archive?

Requirements File


roles:

  • src: robertdebock.bootstrap
    version: 6.1.2

  • src: robertdebock.core_dependencies
    version: 2.1.11

  • src: robertdebock.users
    version: 5.4.4

collections:

  • community.general
  • community.grafana
  • ansible.posix
---
ansible-galaxy install -r temp_requirments.yml --force

Output

ansible-galaxy install -r temp_requirments.yml
[DEPRECATION WARNING]: Ansible will require Python 3.8 or newer on the controller starting with Ansible 2.12. Current version: 3.6.8 
(default, Sep 13 2022, 07:19:15) [GCC 8.5.0 20210514 (Red Hat 8.5.0-10)]. This feature will be removed from ansible-core in version 2.12. 
Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
Starting galaxy role install process
[WARNING]: - robertdebock.bootstrap (6.1.1) is already installed - use --force to change version to 6.1.2
- robertdebock.core_dependencies (2.1.11) is already installed, skipping.
- robertdebock.users (5.4.4) is already installed, skipping.
Starting galaxy collection install process
Nothing to do. All requested collections are already installed. If you want to reinstall them, consider using `--force`.

ansible-galaxy install -r temp_requirments.yml --force
[DEPRECATION WARNING]: Ansible will require Python 3.8 or newer on the controller starting with Ansible 2.12. Current version: 3.6.8 
(default, Sep 13 2022, 07:19:15) [GCC 8.5.0 20210514 (Red Hat 8.5.0-10)]. This feature will be removed from ansible-core in version 2.12. 
Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
Starting galaxy role install process
- changing role robertdebock.bootstrap from 6.1.1 to 6.1.2
- downloading role 'bootstrap', owned by robertdebock
[WARNING]: - robertdebock.bootstrap was NOT installed successfully: - the specified version (6.1.2) of robertdebock.bootstrap was not found
in the list of available versions ([{'id': 71490, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-07-25T05:57:57.514313Z',
'modified': '2018-08-08T05:41:47.378431Z', 'name': '1.0.0', 'version': '1.0.0', 'commit_date': '2018-08-05T02:13:05-04:00', 'commit_sha':
'57a7e5fea87235e6ec51188cb9014abdd2b1db73', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/1.0.0.tar.gz',
'active': None}, {'id': 72323, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-08-10T08:18:05.536947Z', 'modified':
'2018-08-10T08:18:05.536977Z', 'name': '2.0.0', 'version': '2.0.0', 'commit_date': '2018-08-10T01:28:10-04:00', 'commit_sha':
'c99563c85bb796a2e9e7953dd6883621b5954b01', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.0.0.tar.gz',
'active': None}, {'id': 72423, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-08-13T15:21:49.028180Z', 'modified':
'2018-08-13T15:21:49.028222Z', 'name': '2.1.0', 'version': '2.1.0', 'commit_date': '2018-08-13T10:47:39-04:00', 'commit_sha':
'2d55f6a6ba1956d0ec0af5cfe37557fd9d496aea', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.0.tar.gz',
'active': None}, {'id': 73074, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-08-22T11:04:23.631285Z', 'modified':
'2018-08-22T11:04:23.631313Z', 'name': '2.1.1', 'version': '2.1.1', 'commit_date': '2018-08-22T06:21:58-04:00', 'commit_sha':
'9e321dcd7b42dd88de2a018abac1562e66228df3', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.1.tar.gz',
'active': None}, {'id': 73225, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-08-25T21:19:27.876848Z', 'modified':
'2018-08-25T21:19:27.876879Z', 'name': '2.1.2', 'version': '2.1.2', 'commit_date': '2018-08-25T03:30:10-04:00', 'commit_sha':
'e923642d0a8239b4e6841530a6468d7ec32cc02e', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.2.tar.gz',
'active': None}, {'id': 73914, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-09-03T19:38:43.145460Z', 'modified':
'2018-09-03T19:38:43.145487Z', 'name': '2.1.3', 'version': '2.1.3', 'commit_date': '2018-09-03T14:18:53-04:00', 'commit_sha':
'02859572ab993f4666be868dbb1edf9339f75ecc', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.3.tar.gz',
'active': None}, {'id': 74214, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-09-12T05:18:33.988527Z', 'modified':
'2018-09-12T05:18:33.988564Z', 'name': '2.1.4', 'version': '2.1.4', 'commit_date': '2018-09-12T00:40:46-04:00', 'commit_sha':
'a0ac166270310f820ca199e747f3f431dc41cfbd', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.4.tar.gz',
'active': None}, {'id': 74288, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-09-13T19:34:31.396144Z', 'modified':
'2018-09-13T19:34:31.396166Z', 'name': '2.1.5', 'version': '2.1.5', 'commit_date': '2018-09-13T00:53:58-04:00', 'commit_sha':
'03c4ff2b42d67c653e861302c90dcbf200d94ec8', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.5.tar.gz',
'active': None}, {'id': 75304, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-09-25T20:58:11.727627Z', 'modified':
'2018-09-25T20:58:11.727650Z', 'name': '2.1.6', 'version': '2.1.6', 'commit_date': '2018-09-24T11:23:20-04:00', 'commit_sha':
'ae72742fa1e87451d9357db54404713c3c1c17ed', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.6.tar.gz',
'active': None}, {'id': 76028, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-10-04T06:01:55.022599Z', 'modified':
'2018-10-04T06:01:55.022631Z', 'name': '2.1.7', 'version': '2.1.7', 'commit_date': '2018-10-03T23:05:59-04:00', 'commit_sha':
'6aca746c6924dfe8ff0b757eaabbecd23613e92d', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.7.tar.gz',
'active': None}, {'id': 76047, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-10-04T14:45:18.315118Z', 'modified':
'2018-10-04T14:45:18.315143Z', 'name': '2.2.0', 'version': '2.2.0', 'commit_date': '2018-10-04T08:11:21-04:00', 'commit_sha':
'7693a24602bc83fcadc8ff847360792ec64a05a3', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.2.0.tar.gz',
'active': None}, {'id': 76389, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-10-09T20:15:50.938431Z', 'modified':
'2018-10-09T20:15:50.938456Z', 'name': '2.2.1', 'version': '2.2.1', 'commit_date': '2018-10-09T14:32:17-04:00', 'commit_sha':
'1a0e001c9f22153c73a52acda03f722feb7f006a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.2.1.tar.gz',
'active': None}, {'id': 76772, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-10-12T20:38:17.160448Z', 'modified':
'2018-10-12T20:38:17.160476Z', 'name': '2.3.0', 'version': '2.3.0', 'commit_date': '2018-10-12T15:38:51-04:00', 'commit_sha':
'eed3d2648d722b2b946e3384f501f62b32ba6b95', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.3.0.tar.gz',
'active': None}, {'id': 77345, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-10-20T00:33:57.472390Z', 'modified':
'2018-10-20T00:33:57.472415Z', 'name': '2.3.1', 'version': '2.3.1', 'commit_date': '2018-10-18T04:34:07-04:00', 'commit_sha':
'fc218327048910500551f691b345653376b692f2', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.3.1.tar.gz',
'active': None}, {'id': 77940, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-10-23T05:49:54.697013Z', 'modified':
'2018-10-23T05:49:54.697052Z', 'name': '2.4.0', 'version': '2.4.0', 'commit_date': '2018-10-23T00:56:09-04:00', 'commit_sha':
'2a0a89ed2d10e8f0a62c927185f3889ff919b0a9', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.4.0.tar.gz',
'active': None}, {'id': 79536, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-09T08:49:36.383326Z', 'modified':
'2018-11-09T08:49:36.383350Z', 'name': '2.5.0', 'version': '2.5.0', 'commit_date': '2018-11-07T15:27:07-05:00', 'commit_sha':
'646c379fef309be7e4dda59b84c498cda02dbc83', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.5.0.tar.gz',
'active': None}, {'id': 80153, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-15T21:18:02.010782Z', 'modified':
'2018-11-15T21:18:02.010816Z', 'name': '2.5.1', 'version': '2.5.1', 'commit_date': '2018-11-15T15:21:34-05:00', 'commit_sha':
'7ef115168adc5830f239c85efe24d358b0d86d71', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.5.1.tar.gz',
'active': None}, {'id': 80278, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-17T23:11:53.879178Z', 'modified':
'2018-11-17T23:11:53.879200Z', 'name': '2.5.2', 'version': '2.5.2', 'commit_date': '2018-11-17T16:25:22-05:00', 'commit_sha':
'55dc080ba7eb80561920eef4947f9e8d8520af3f', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.5.2.tar.gz',
'active': None}, {'id': 80310, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-18T16:02:35.311403Z', 'modified':
'2018-11-18T16:02:35.311424Z', 'name': '2.6.0', 'version': '2.6.0', 'commit_date': '2018-11-18T08:18:14-05:00', 'commit_sha':
'6cdbba4e206eb481ce25c64a0550a142188d46d7', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.6.0.tar.gz',
'active': None}, {'id': 80905, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-24T15:16:08.600157Z', 'modified':
'2018-11-24T15:16:08.600173Z', 'name': '2.6.1', 'version': '2.6.1', 'commit_date': '2018-11-22T00:18:55-05:00', 'commit_sha':
'9c1ab0faaec2adec513b90f1e5b24872d6a6974e', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.6.1.tar.gz',
'active': None}, {'id': 81324, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-29T13:57:34.901918Z', 'modified':
'2018-11-29T13:57:34.901941Z', 'name': '2.7.0', 'version': '2.7.0', 'commit_date': '2018-11-25T23:46:28-05:00', 'commit_sha':
'832d984edc06f30f57a36e0c46456a579c91c4dc', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.7.0.tar.gz',
'active': None}, {'id': 81369, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-30T07:30:40.837011Z', 'modified':
'2018-11-30T07:30:40.837039Z', 'name': '2.7.1', 'version': '2.7.1', 'commit_date': '2018-11-30T01:16:38-05:00', 'commit_sha':
'4b3e424124f9eb8a3e235c620731a70966b98c6a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.7.1.tar.gz',
'active': None}, {'id': 82511, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-12-07T12:33:19.961238Z', 'modified':
'2018-12-07T12:33:19.961260Z', 'name': '2.7.2', 'version': '2.7.2', 'commit_date': '2018-12-06T14:22:52-05:00', 'commit_sha':
'ac84292689be5a9baf518cb8ede4230cc3afb0f5', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.7.2.tar.gz',
'active': None}, {'id': 83461, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-12-14T18:39:31.646187Z', 'modified':
'2018-12-14T18:39:31.646212Z', 'name': '2.7.3', 'version': '2.7.3', 'commit_date': '2018-12-09T00:10:18-05:00', 'commit_sha':
'4448474736005d95d53bebe957f93ab36e2e51ee', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.7.3.tar.gz',
'active': None}, {'id': 83674, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-12-18T14:03:21.798904Z', 'modified':
'2018-12-18T14:03:21.798928Z', 'name': '2.8.0', 'version': '2.8.0', 'commit_date': '2018-12-18T05:51:43-05:00', 'commit_sha':
'708d33aafd5f4d5c54b998e8a6b336be035b459c', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.8.0.tar.gz',
'active': None}, {'id': 84137, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-12-24T22:21:09.615053Z', 'modified':
'2018-12-24T22:21:09.615078Z', 'name': '2.8.1', 'version': '2.8.1', 'commit_date': '2018-12-24T16:45:40-05:00', 'commit_sha':
'ccb9cb1fe9a8acfc43843996884f894cbb3aa3ff', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.8.1.tar.gz',
'active': None}, {'id': 84176, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-12-27T07:29:49.346737Z', 'modified':
'2018-12-27T07:29:49.346758Z', 'name': '2.9.1', 'version': '2.9.1', 'commit_date': '2018-12-26T10:47:01-05:00', 'commit_sha':
'86d40ccc22c9670fbbb5ff39ebc8e61a52b47577', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.9.1.tar.gz',
'active': None}, {'id': 84353, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-12-29T12:22:35.581567Z', 'modified':
'2018-12-29T12:22:35.581600Z', 'name': '2.9.2', 'version': '2.9.2', 'commit_date': '2018-12-29T00:33:42-05:00', 'commit_sha':
'39f0b04b81266aa0ee376639e5fc9b8f4d7620dc', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.9.2.tar.gz',
'active': None}, {'id': 85343, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-01-11T04:15:37.628979Z', 'modified':
'2019-01-11T04:15:37.629019Z', 'name': '2.9.3', 'version': '2.9.3', 'commit_date': '2019-01-05T16:51:49-05:00', 'commit_sha':
'1f6f879d2b9f5324518eb93e9b221522fc0c435d', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.9.3.tar.gz',
'active': None}, {'id': 85402, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-01-13T10:36:34.757891Z', 'modified':
'2019-01-13T10:36:34.757913Z', 'name': '2.10.0', 'version': '2.10.0', 'commit_date': '2019-01-12T10:16:18-05:00', 'commit_sha':
'56ccb3a7dabb4ee0d8ee0e1177e7e9a8ef50c6a6', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.10.0.tar.gz',
'active': None}, {'id': 87017, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-01-30T20:15:40.674081Z', 'modified':
'2019-01-30T20:15:40.674111Z', 'name': '2.11.0', 'version': '2.11.0', 'commit_date': '2019-01-20T07:54:37-05:00', 'commit_sha':
'32657f5375440b3910b4d43d8486c9e4cc713423', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.11.0.tar.gz',
'active': None}, {'id': 87508, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-02-07T03:50:22.587096Z', 'modified':
'2019-02-07T03:50:22.587120Z', 'name': '2.11.1', 'version': '2.11.1', 'commit_date': '2019-02-01T10:28:29-05:00', 'commit_sha':
'ae60ffb4a26f7f87a9c0382b2a3f7885f2638589', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.11.1.tar.gz',
'active': None}, {'id': 87707, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-02-10T08:19:01.669345Z', 'modified':
'2019-02-10T08:19:01.669377Z', 'name': '2.11.2', 'version': '2.11.2', 'commit_date': '2019-02-07T01:17:46-05:00', 'commit_sha':
'3aec65a8d83ac84fa4b5a40346c13230716305c3', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.11.2.tar.gz',
'active': None}, {'id': 88727, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-02-26T14:00:10.065301Z', 'modified':
'2019-02-26T14:00:10.065337Z', 'name': '2.11.3', 'version': '2.11.3', 'commit_date': '2019-02-13T00:23:30-05:00', 'commit_sha':
'd7a3dc9cb3ee5966ce7b201bc871e89a6c61fb49', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.11.3.tar.gz',
'active': None}, {'id': 89259, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-03-04T09:39:16.834396Z', 'modified':
'2019-03-04T09:39:16.834419Z', 'name': '2.11.4', 'version': '2.11.4', 'commit_date': '2019-03-01T01:44:34-05:00', 'commit_sha':
'91b337f87d05929e01ea95f9fd853ee8a43fba97', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.11.4.tar.gz',
'active': None}, {'id': 89649, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-03-08T21:05:49.470271Z', 'modified':
'2019-03-08T21:05:49.470305Z', 'name': '3.0.0', 'version': '3.0.0', 'commit_date': '2019-03-08T15:19:09-05:00', 'commit_sha':
'0ac73e9feea6292c6d505c207b685e1ee643482e', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.0.tar.gz',
'active': None}, {'id': 89972, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-03-13T08:18:35.599414Z', 'modified':
'2019-03-13T08:18:35.599438Z', 'name': '3.0.1', 'version': '3.0.1', 'commit_date': '2019-03-12T01:53:35-04:00', 'commit_sha':
'3391c0250fce97e10979d0e5964f191dde86f6e1', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.1.tar.gz',
'active': None}, {'id': 90474, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-03-20T06:48:22.622410Z', 'modified':
'2019-03-20T06:48:22.622443Z', 'name': '3.0.2', 'version': '3.0.2', 'commit_date': '2019-03-17T09:36:06-04:00', 'commit_sha':
'329f8e913fb27434b4ac36624d6b130c16c7cd8c', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.2.tar.gz',
'active': None}, {'id': 90856, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-03-27T08:54:21.728361Z', 'modified':
'2019-03-27T08:54:21.728385Z', 'name': '3.0.3', 'version': '3.0.3', 'commit_date': '2019-03-27T02:22:21-04:00', 'commit_sha':
'e5e3e5bc0e8d9015de9a50d3a35533f2576b0c7b', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.3.tar.gz',
'active': None}, {'id': 91613, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-04-10T22:57:04.711215Z', 'modified':
'2019-04-10T22:57:04.711242Z', 'name': '3.0.4', 'version': '3.0.4', 'commit_date': '2019-04-06T03:38:43-04:00', 'commit_sha':
'97b1fd2c5751f0e4aff0669478d04cdf5e86d52e', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.4.tar.gz',
'active': None}, {'id': 93243, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-05-08T20:01:02.380977Z', 'modified':
'2019-05-08T20:01:02.381012Z', 'name': '3.0.5', 'version': '3.0.5', 'commit_date': '2019-05-07T14:18:23-04:00', 'commit_sha':
'e26acdd6dd79782d4f0ccd738b9e467accf15287', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.5.tar.gz',
'active': None}, {'id': 93959, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-05-19T11:29:59.522646Z', 'modified':
'2019-05-19T11:29:59.522670Z', 'name': '3.1.0', 'version': '3.1.0', 'commit_date': '2019-05-19T07:19:57-04:00', 'commit_sha':
'ba9acd08122742ef9bd271cc65fe11e122422369', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.1.0.tar.gz',
'active': None}, {'id': 94581, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-05-28T09:42:11.213766Z', 'modified':
'2019-05-28T09:42:11.213789Z', 'name': '3.1.1', 'version': '3.1.1', 'commit_date': '2019-05-24T01:06:50-04:00', 'commit_sha':
'205e59647d78b630850b2147217f1ad27cc3f29a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.1.1.tar.gz',
'active': None}, {'id': 95276, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-06-06T20:46:12.393741Z', 'modified':
'2019-06-06T20:46:12.393771Z', 'name': '3.1.2', 'version': '3.1.2', 'commit_date': '2019-06-06T16:05:04-04:00', 'commit_sha':
'17d167ecb9eb7c40e56cff46a0bf3d9d739546af', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.1.2.tar.gz',
'active': None}, {'id': 96002, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-06-12T05:03:56.600229Z', 'modified':
'2019-06-12T05:03:56.600257Z', 'name': '3.1.3', 'version': '3.1.3', 'commit_date': '2019-06-11T05:15:11-04:00', 'commit_sha':
'cab4beb9201f6b7ebc2372b086bec569e64a4a67', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.1.3.tar.gz',
'active': None}, {'id': 96003, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-06-12T05:03:56.867518Z', 'modified':
'2019-06-12T05:03:56.867548Z', 'name': '3.1.4', 'version': '3.1.4', 'commit_date': '2019-06-12T00:25:31-04:00', 'commit_sha':
'2b640850b5cabc7918f4c7fa19ceaf735a0790f7', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.1.4.tar.gz',
'active': None}, {'id': 96427, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-06-16T22:31:01.629886Z', 'modified':
'2019-06-16T22:31:01.629915Z', 'name': '3.1.5', 'version': '3.1.5', 'commit_date': '2019-06-14T00:28:57-04:00', 'commit_sha':
'278b5df8d60d0b2167dddd6e7d4cb60742dcd4f2', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.1.5.tar.gz',
'active': None}, {'id': 96586, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-06-19T01:41:37.177087Z', 'modified':
'2019-06-19T01:41:37.177115Z', 'name': '3.2.0', 'version': '3.2.0', 'commit_date': '2019-06-18T00:38:18-04:00', 'commit_sha':
'a3a86b3c69f4deb1c7629388f271af3ccf899047', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.2.0.tar.gz',
'active': None}, {'id': 97757, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-07-02T04:26:17.175078Z', 'modified':
'2019-07-02T04:26:17.175105Z', 'name': '3.3.0', 'version': '3.3.0', 'commit_date': '2019-07-01T16:18:36-04:00', 'commit_sha':
'c117a4e835bc16246fb7dbb079b4be4fcf4418e4', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.3.0.tar.gz',
'active': None}, {'id': 97815, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-07-03T08:22:37.546798Z', 'modified':
'2019-07-03T08:22:37.546826Z', 'name': '3.3.1', 'version': '3.3.1', 'commit_date': '2019-07-01T23:52:21-04:00', 'commit_sha':
'd2f7f03b26aa07a63bc8412af88232b5b3054023', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.3.1.tar.gz',
'active': None}, {'id': 97902, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-07-03T18:39:40.751221Z', 'modified':
'2019-07-03T18:39:40.751251Z', 'name': '3.4.0', 'version': '3.4.0', 'commit_date': '2019-07-03T09:41:53-04:00', 'commit_sha':
'16134ef34b42b97e2de906d4fa96207a0a032eaf', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.0.tar.gz',
'active': None}, {'id': 98741, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-07-12T12:38:45.654017Z', 'modified':
'2019-07-12T12:38:45.654045Z', 'name': '3.4.1', 'version': '3.4.1', 'commit_date': '2019-07-06T01:55:50-04:00', 'commit_sha':
'6e919718cc292dab06d4e07b668dac375267d885', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.1.tar.gz',
'active': None}, {'id': 99049, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-07-17T06:17:15.046673Z', 'modified':
'2019-07-17T06:17:15.046700Z', 'name': '3.4.2', 'version': '3.4.2', 'commit_date': '2019-07-15T00:46:13-04:00', 'commit_sha':
'562e2bc9802fe6449a6f7d8a14ebd6a5159e8fbf', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.2.tar.gz',
'active': None}, {'id': 100272, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-08-04T09:42:00.100012Z', 'modified':
'2019-08-04T09:42:00.100039Z', 'name': '3.4.3', 'version': '3.4.3', 'commit_date': '2019-08-04T00:58:55-04:00', 'commit_sha':
'1a41e53bff8295c1e82086d418f575384aee37e2', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.3.tar.gz',
'active': None}, {'id': 102156, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-08-21T06:41:28.355904Z', 'modified':
'2019-08-21T06:41:28.355930Z', 'name': '3.4.4', 'version': '3.4.4', 'commit_date': '2019-08-20T02:47:55-04:00', 'commit_sha':
'd3e37210079cfc6c42c89c152f8bf4ef697301d0', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.4.tar.gz',
'active': None}, {'id': 103141, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-09-07T01:20:51.921763Z', 'modified':
'2019-09-07T01:20:51.921822Z', 'name': '2.4.5', 'version': '2.4.5', 'commit_date': '2019-09-02T10:00:28-04:00', 'commit_sha':
'55b2698a51fdbd64066fe87e827e964ee3a014ca', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.4.5.tar.gz',
'active': None}, {'id': 104580, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-09-26T03:04:33.527931Z', 'modified':
'2019-09-26T03:04:33.527956Z', 'name': '2.4.6', 'version': '2.4.6', 'commit_date': '2019-09-25T09:14:47-04:00', 'commit_sha':
'f9bbf85da4bc4240da3c37c08e079af856a88b2d', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.4.6.tar.gz',
'active': None}, {'id': 104600, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-09-26T18:28:47.566991Z', 'modified':
'2019-09-26T18:28:47.567019Z', 'name': '3.4.6', 'version': '3.4.6', 'commit_date': '2019-09-25T09:14:47-04:00', 'commit_sha':
'f9bbf85da4bc4240da3c37c08e079af856a88b2d', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.6.tar.gz',
'active': None}, {'id': 104701, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-09-29T18:13:00.450040Z', 'modified':
'2019-09-29T18:13:00.450068Z', 'name': '3.4.7', 'version': '3.4.7', 'commit_date': '2019-09-29T11:07:08-04:00', 'commit_sha':
'7874f77c9c3586914e4097186e1b2a4589044ad6', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.7.tar.gz',
'active': None}, {'id': 104981, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-02T15:22:53.821569Z', 'modified':
'2019-10-02T15:22:53.821598Z', 'name': '3.5.0', 'version': '3.5.0', 'commit_date': '2019-10-02T05:16:59-04:00', 'commit_sha':
'6c34fff06beeb25738325e1910aafd2cc6dedb1c', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.0.tar.gz',
'active': None}, {'id': 105066, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-03T09:11:26.825202Z', 'modified':
'2019-10-03T09:11:26.825245Z', 'name': '3.5.1', 'version': '3.5.1', 'commit_date': '2019-10-03T01:11:57-04:00', 'commit_sha':
'548d643cb4c4ffd07485901e63a7f9e9521136a5', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.1.tar.gz',
'active': None}, {'id': 105313, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-06T13:43:45.866281Z', 'modified':
'2019-10-06T13:43:45.866320Z', 'name': '3.5.2', 'version': '3.5.2', 'commit_date': '2019-10-04T08:09:00-04:00', 'commit_sha':
'374fb2d9f5420ac0eda22a28de1e3f60c09e67ff', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.2.tar.gz',
'active': None}, {'id': 105823, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-10T19:05:38.397381Z', 'modified':
'2019-10-10T19:05:38.397408Z', 'name': '3.5.3', 'version': '3.5.3', 'commit_date': '2019-10-10T15:01:13-04:00', 'commit_sha':
'bd8cd2ea873a5441b1d5c7fba2d38fa6d33cb9a2', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.3.tar.gz',
'active': None}, {'id': 106571, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-21T10:32:44.246644Z', 'modified':
'2019-10-21T10:32:44.246671Z', 'name': '3.5.4', 'version': '3.5.4', 'commit_date': '2019-10-21T04:50:46-04:00', 'commit_sha':
'9ca5390d71a20b535e2a3a6ead999c9b6597ec97', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.4.tar.gz',
'active': None}, {'id': 107200, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-25T19:50:21.331309Z', 'modified':
'2019-10-25T19:50:21.331358Z', 'name': '3.5.5', 'version': '3.5.5', 'commit_date': '2019-10-21T11:36:48-04:00', 'commit_sha':
'4e49ecd2ef20c74501293acab15b91652e8902a6', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.5.tar.gz',
'active': None}, {'id': 107521, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-28T04:49:41.022081Z', 'modified':
'2019-10-28T04:49:41.022109Z', 'name': '3.5.6', 'version': '3.5.6', 'commit_date': '2019-10-25T11:40:15-04:00', 'commit_sha':
'768c302520c7e24df66f31be5fba9318a09feb94', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.6.tar.gz',
'active': None}, {'id': 107871, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-11-02T09:57:40.667159Z', 'modified':
'2019-11-02T09:57:40.667187Z', 'name': '3.5.7', 'version': '3.5.7', 'commit_date': '2019-11-01T11:29:24-04:00', 'commit_sha':
'8a230d6fb97b0afe16fe06a8d6332633cb4e35ab', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.7.tar.gz',
'active': None}, {'id': 108203, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-11-06T00:53:06.816267Z', 'modified':
'2019-11-06T00:53:06.816295Z', 'name': '3.5.8', 'version': '3.5.8', 'commit_date': '2019-11-05T15:06:15-05:00', 'commit_sha':
'4910489641ee0d5471e94376d8024c2ecc126b15', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.8.tar.gz',
'active': None}, {'id': 108331, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-11-07T08:10:02.545897Z', 'modified':
'2019-11-07T08:10:02.545937Z', 'name': '3.5.9', 'version': '3.5.9', 'commit_date': '2019-11-06T11:18:37-05:00', 'commit_sha':
'67c281a5913798b53eeac4c114bc40b6efe138c8', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.9.tar.gz',
'active': None}, {'id': 108372, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-11-07T17:05:16.336581Z', 'modified':
'2019-11-07T17:05:16.336617Z', 'name': '3.5.10', 'version': '3.5.10', 'commit_date': '2019-11-07T09:58:53-05:00', 'commit_sha':
'9e4dfe51d3e2b9c68b984ac810ed4a2502b3b541', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.10.tar.gz',
'active': None}, {'id': 108721, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-11-11T12:20:40.202670Z', 'modified':
'2019-11-11T12:20:40.202706Z', 'name': '3.5.11', 'version': '3.5.11', 'commit_date': '2019-11-10T14:35:11-05:00', 'commit_sha':
'134dcc216e84ce4b2030a55a4f8b15a027f357c4', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.11.tar.gz',
'active': None}, {'id': 109016, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-11-14T04:08:24.186419Z', 'modified':
'2019-11-14T04:08:24.186447Z', 'name': '3.5.12', 'version': '3.5.12', 'commit_date': '2019-11-13T11:27:59-05:00', 'commit_sha':
'c0f2a43b8747e1a6deedb7ad5b71819f9a7c21b0', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.12.tar.gz',
'active': None}, {'id': 110534, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-12-03T10:07:54.626123Z', 'modified':
'2019-12-03T10:07:54.626151Z', 'name': '4.0.0', 'version': '4.0.0', 'commit_date': '2019-12-03T01:13:52-05:00', 'commit_sha':
'd5c7758dda0afb799956f23ce8a8ab470c9ff9e2', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.0.0.tar.gz',
'active': None}, {'id': 110805, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-12-09T10:36:23.313452Z', 'modified':
'2019-12-09T10:36:23.313496Z', 'name': '4.0.1', 'version': '4.0.1', 'commit_date': '2019-12-06T01:20:49-05:00', 'commit_sha':
'3f41af165533cbdbd59becd8c1d8cbd2836f8d19', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.0.1.tar.gz',
'active': None}, {'id': 111049, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-12-11T11:01:14.235164Z', 'modified':
'2019-12-11T11:01:14.235206Z', 'name': '4.0.2', 'version': '4.0.2', 'commit_date': '2019-12-11T00:45:07-05:00', 'commit_sha':
'561ddbeb8e843026c665931540ea6835d5b45f5f', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.0.2.tar.gz',
'active': None}, {'id': 111774, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-12-19T14:32:25.896405Z', 'modified':
'2019-12-19T14:32:25.896436Z', 'name': '4.0.3', 'version': '4.0.3', 'commit_date': '2019-12-11T04:45:40-05:00', 'commit_sha':
'45910a93da1ab04376de08057e6cd2e4da0f977d', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.0.3.tar.gz',
'active': None}, {'id': 112203, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-12-29T07:12:50.335351Z', 'modified':
'2019-12-29T07:12:50.335382Z', 'name': '4.0.4', 'version': '4.0.4', 'commit_date': '2019-12-27T14:36:47-05:00', 'commit_sha':
'75c8ffab3ce2f01620c8cc8655b2b167f896f73f', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.0.4.tar.gz',
'active': None}, {'id': 112707, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-01-06T16:33:55.861797Z', 'modified':
'2020-01-06T16:33:55.861827Z', 'name': '4.1.0', 'version': '4.1.0', 'commit_date': '2020-01-06T11:15:00-05:00', 'commit_sha':
'c75d07a4c27fc14bfb6c742c739be5e660b18b5f', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.0.tar.gz',
'active': None}, {'id': 113288, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-01-11T20:05:38.506479Z', 'modified':
'2020-01-11T20:05:38.506506Z', 'name': '4.1.1', 'version': '4.1.1', 'commit_date': '2020-01-09T13:35:05-05:00', 'commit_sha':
'af0f9cdac39aec7f9852103eb80b65e04cd108e1', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.1.tar.gz',
'active': None}, {'id': 115106, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-02-04T06:28:25.100221Z', 'modified':
'2020-02-04T06:28:25.100247Z', 'name': '4.1.2', 'version': '4.1.2', 'commit_date': '2020-02-03T11:24:37-05:00', 'commit_sha':
'6a4c679d222bb2f7c5c1c3b839eb14fdb24fe063', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.2.tar.gz',
'active': None}, {'id': 115701, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-02-12T11:26:27.990395Z', 'modified':
'2020-02-12T11:26:27.990424Z', 'name': '4.1.3', 'version': '4.1.3', 'commit_date': '2020-02-08T02:10:45-05:00', 'commit_sha':
'2906380bbaba12642bdefd89206eb46b3e4f2485', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.3.tar.gz',
'active': None}, {'id': 116223, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-02-15T08:43:17.544791Z', 'modified':
'2020-02-15T08:43:17.544820Z', 'name': '4.1.4', 'version': '4.1.4', 'commit_date': '2020-02-14T06:20:31-05:00', 'commit_sha':
'72539876a0ec71b949fbfb16cc078ed1a1dc0e81', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.4.tar.gz',
'active': None}, {'id': 118724, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-02-25T07:00:23.339534Z', 'modified':
'2020-02-25T07:00:23.339573Z', 'name': '4.1.5', 'version': '4.1.5', 'commit_date': '2020-02-21T08:11:41-05:00', 'commit_sha':
'db6374d62835c5125f4557a0fd02e3d61268655a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.5.tar.gz',
'active': None}, {'id': 124650, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-04-25T18:09:21.564992Z', 'modified':
'2020-04-25T18:09:21.565018Z', 'name': '4.1.6', 'version': '4.1.6', 'commit_date': '2020-04-20T12:52:38-04:00', 'commit_sha':
'0b04fb63af24e023227b6e864486f8cd0348e248', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.6.tar.gz',
'active': None}, {'id': 125205, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-05-01T09:57:42.593370Z', 'modified':
'2020-05-01T09:57:42.593395Z', 'name': '4.1.7', 'version': '4.1.7', 'commit_date': '2020-05-01T05:33:47-04:00', 'commit_sha':
'0b44eb1c5bab68ffada8dec1e44f62d32c460b7b', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.7.tar.gz',
'active': None}, {'id': 126667, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-05-18T04:59:21.451687Z', 'modified':
'2020-05-18T04:59:21.451715Z', 'name': '4.1.8', 'version': '4.1.8', 'commit_date': '2020-05-14T02:48:43-04:00', 'commit_sha':
'00cba566b111b4d16afe68f73b60fd8cbe02eb6a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.8.tar.gz',
'active': None}, {'id': 127398, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-05-23T06:20:34.976349Z', 'modified':
'2020-05-23T06:20:34.976375Z', 'name': '4.1.9', 'version': '4.1.9', 'commit_date': '2020-05-20T13:53:53-04:00', 'commit_sha':
'7cafa387ac0e2c5fe4a455dc2aef52e317b926eb', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.9.tar.gz',
'active': None}, {'id': 128847, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-06-11T05:22:01.528491Z', 'modified':
'2020-06-11T05:22:01.528521Z', 'name': '4.1.10', 'version': '4.1.10', 'commit_date': '2020-06-10T15:04:50-04:00', 'commit_sha':
'f3bb819ba2f885fb5b682b86f9e41db3980b14ae', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.10.tar.gz',
'active': None}, {'id': 130477, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-07-05T07:58:58.514752Z', 'modified':
'2020-07-05T07:58:58.514778Z', 'name': '4.2.0', 'version': '4.2.0', 'commit_date': '2020-07-03T06:10:09-04:00', 'commit_sha':
'67314f6bdc5a4d3aef3f24a841704660d541ff03', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.0.tar.gz',
'active': None}, {'id': 131397, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-07-13T04:28:48.142102Z', 'modified':
'2020-07-13T04:28:48.142128Z', 'name': '4.2.1', 'version': '4.2.1', 'commit_date': '2020-07-07T15:40:30-04:00', 'commit_sha':
'e706d8d4ac5b25ad3c9f21eaae5b360e4c5fe042', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.1.tar.gz',
'active': None}, {'id': 131909, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-07-20T06:44:10.525320Z', 'modified':
'2020-07-20T06:44:10.525349Z', 'name': '4.2.2', 'version': '4.2.2', 'commit_date': '2020-07-16T02:59:31-04:00', 'commit_sha':
'1d07c88f9b95c0fe48b6511f5c38dcf512bc3b35', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.2.tar.gz',
'active': None}, {'id': 133879, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-08-19T13:47:00.908594Z', 'modified':
'2020-08-19T13:47:00.908633Z', 'name': '4.2.3', 'version': '4.2.3', 'commit_date': '2020-08-19T08:31:31-04:00', 'commit_sha':
'6b74bf2c2d9e07b3b49aaebe79356f7095f9a029', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.3.tar.gz',
'active': None}, {'id': 134585, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-08-25T19:59:43.851866Z', 'modified':
'2020-08-25T19:59:43.851895Z', 'name': '4.2.4', 'version': '4.2.4', 'commit_date': '2020-08-20T03:38:23-04:00', 'commit_sha':
'25d316a9b3fb88b1cc253126ce82c5ff6dd67f65', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.4.tar.gz',
'active': None}, {'id': 135159, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-08-28T18:37:54.325979Z', 'modified':
'2020-08-28T18:37:54.326006Z', 'name': '4.2.5', 'version': '4.2.5', 'commit_date': '2020-08-27T04:05:54-04:00', 'commit_sha':
'1cbb0ca628d899f5c002a649e89b09d3a9faa105', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.5.tar.gz',
'active': None}, {'id': 135884, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-09-10T08:24:59.645060Z', 'modified':
'2020-09-10T08:24:59.645089Z', 'name': '4.2.6', 'version': '4.2.6', 'commit_date': '2020-09-03T04:10:09-04:00', 'commit_sha':
'dffbf549162a7c3130c425ba57c877fca044001a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.6.tar.gz',
'active': None}, {'id': 136252, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-09-16T19:49:53.045628Z', 'modified':
'2020-09-16T19:49:53.045654Z', 'name': '4.2.7', 'version': '4.2.7', 'commit_date': '2020-09-16T00:34:23-04:00', 'commit_sha':
'575dd06a8324476b3b28636ef82facc9ff47e269', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.7.tar.gz',
'active': None}, {'id': 137222, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-10-01T14:04:17.822648Z', 'modified':
'2020-10-01T14:04:17.822675Z', 'name': '4.3.0', 'version': '4.3.0', 'commit_date': '2020-10-01T09:15:09-04:00', 'commit_sha':
'025fcc14f11a5cdc111181b926507aaf14de5131', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.3.0.tar.gz',
'active': None}, {'id': 137742, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-10-08T13:55:11.618946Z', 'modified':
'2020-10-08T13:55:11.618970Z', 'name': '4.3.1', 'version': '4.3.1', 'commit_date': '2020-10-05T15:35:30-04:00', 'commit_sha':
'06e788c820fb4b6fde810af96206838d2c6dd84a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.3.1.tar.gz',
'active': None}, {'id': 138144, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-10-12T14:38:53.332772Z', 'modified':
'2020-10-12T14:38:53.332806Z', 'name': '4.3.2', 'version': '4.3.2', 'commit_date': '2020-10-09T04:16:45-04:00', 'commit_sha':
'8d9685bdb1106d5e2f44f608af0e3878f19f7ca6', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.3.2.tar.gz',
'active': None}, {'id': 139012, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-10-27T12:42:48.825544Z', 'modified':
'2020-10-27T12:42:48.825569Z', 'name': '4.3.3', 'version': '4.3.3', 'commit_date': '2020-10-16T04:32:54-04:00', 'commit_sha':
'ed3b3cca7702b70f5f96b3d52ecfd979afdfcbac', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.3.3.tar.gz',
'active': None}, {'id': 147729, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2021-02-24T09:41:29.184057Z', 'modified':
'2021-02-24T09:41:29.184083Z', 'name': '5.0.2', 'version': '5.0.2', 'commit_date': '2021-02-24T02:43:25-05:00', 'commit_sha':
'b3f99fde7d1a16934b01cbece4fa830cf5670ad3', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.0.2.tar.gz',
'active': None}, {'id': 169160, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2021-11-19T10:17:48.442589Z', 'modified':
'2021-11-19T10:17:48.442625Z', 'name': '5.2.9', 'version': '5.2.9', 'commit_date': '2021-11-15T08:47:18-05:00', 'commit_sha':
'574471673fe5e824e73319ed330b4c5c528c5169', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.2.9.tar.gz',
'active': None}, {'id': 147422, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2021-02-22T12:35:33.916654Z', 'modified':
'2021-02-22T12:35:33.916680Z', 'name': '5.0.1', 'version': '5.0.1', 'commit_date': '2021-02-22T06:27:49-05:00', 'commit_sha':
'd8f0c3ed90945ac30b54ff95bed8a32d3d4a397f', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.0.1.tar.gz',
'active': None}, {'id': 157983, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2021-07-06T05:11:24.387475Z', 'modified':
'2021-07-06T05:11:24.387502Z', 'name': '5.2.1', 'version': '5.2.1', 'commit_date': '2021-07-05T10:35:38-04:00', 'commit_sha':
'2c650496963ca604f03f1514e28f482ce98ebfa9', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.2.1.tar.gz',
'active': None}, {'id': 76047, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-10-04T14:45:18.315118Z', 'modified':
'2018-10-04T14:45:18.315143Z', 'name': '2.2.0', 'version': '2.2.0', 'commit_date': '2018-10-04T08:11:21-04:00', 'commit_sha':
'7693a24602bc83fcadc8ff847360792ec64a05a3', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.2.0.tar.gz',
'active': None}, {'id': 80278, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-17T23:11:53.879178Z', 'modified':
'2018-11-17T23:11:53.879200Z', 'name': '2.5.2', 'version': '2.5.2', 'commit_date': '2018-11-17T16:25:22-05:00', 'commit_sha':
'55dc080ba7eb80561920eef4947f9e8d8520af3f', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.5.2.tar.gz',
'active': None}, {'id': 89972, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-03-13T08:18:35.599414Z', 'modified':
'2019-03-13T08:18:35.599438Z', 'name': '3.0.1', 'version': '3.0.1', 'commit_date': '2019-03-12T01:53:35-04:00', 'commit_sha':
'3391c0250fce97e10979d0e5964f191dde86f6e1', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.1.tar.gz',
'active': None}, {'id': 176118, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2022-02-08T14:12:53.599956Z', 'modified':
'2022-02-08T14:12:53.599983Z', 'name': '6.0.2', 'version': '6.0.2', 'commit_date': '2022-02-07T04:49:32-05:00', 'commit_sha':
'4d47462281603c19ec3d4b07dd0f303014bad6f9', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/6.0.2.tar.gz',
'active': None}, {'id': 98741, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-07-12T12:38:45.654017Z', 'modified':
'2019-07-12T12:38:45.654045Z', 'name': '3.4.1', 'version': '3.4.1', 'commit_date': '2019-07-06T01:55:50-04:00', 'commit_sha':
'6e919718cc292dab06d4e07b668dac375267d885', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.1.tar.gz',
'active': None}, {'id': 106571, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-21T10:32:44.246644Z', 'modified':
'2019-10-21T10:32:44.246671Z', 'name': '3.5.4', 'version': '3.5.4', 'commit_date': '2019-10-21T04:50:46-04:00', 'commit_sha':
'9ca5390d71a20b535e2a3a6ead999c9b6597ec97', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.4.tar.gz',
'active': None}, {'id': 74288, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-09-13T19:34:31.396144Z', 'modified':
'2018-09-13T19:34:31.396166Z', 'name': '2.1.5', 'version': '2.1.5', 'commit_date': '2018-09-13T00:53:58-04:00', 'commit_sha':
'03c4ff2b42d67c653e861302c90dcbf200d94ec8', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.5.tar.gz',
'active': None}, {'id': 174971, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2022-01-27T15:21:07.623361Z', 'modified':
'2022-01-27T15:21:07.623388Z', 'name': '5.2.12', 'version': '5.2.12', 'commit_date': '2022-01-27T04:33:59-05:00', 'commit_sha':
'b7938d45abac6fb2a03d8bc186630eae6a0cc62c', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.2.12.tar.gz',
'active': None}, {'id': 104981, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-02T15:22:53.821569Z', 'modified':
'2019-10-02T15:22:53.821598Z', 'name': '3.5.0', 'version': '3.5.0', 'commit_date': '2019-10-02T05:16:59-04:00', 'commit_sha':
'6c34fff06beeb25738325e1910aafd2cc6dedb1c', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.0.tar.gz',
'active': None}, {'id': 74214, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-09-12T05:18:33.988527Z', 'modified':
'2018-09-12T05:18:33.988564Z', 'name': '2.1.4', 'version': '2.1.4', 'commit_date': '2018-09-12T00:40:46-04:00', 'commit_sha':
'a0ac166270310f820ca199e747f3f431dc41cfbd', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.4.tar.gz',
'active': None}, {'id': 137742, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-10-08T13:55:11.618946Z', 'modified':
'2020-10-08T13:55:11.618970Z', 'name': '4.3.1', 'version': '4.3.1', 'commit_date': '2020-10-05T15:35:30-04:00', 'commit_sha':
'06e788c820fb4b6fde810af96206838d2c6dd84a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.3.1.tar.gz',
'active': None}, {'id': 153479, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2021-05-09T10:53:28.846935Z', 'modified':
'2021-05-09T10:53:28.846964Z', 'name': '5.0.6', 'version': '5.0.6', 'commit_date': '2021-05-09T03:04:58-04:00', 'commit_sha':
'9159f4144a76b0227c1943fc0398ac99e00cd63d', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.0.6.tar.gz',
'active': None}, {'id': 87017, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-01-30T20:15:40.674081Z', 'modified':
'2019-01-30T20:15:40.674111Z', 'name': '2.11.0', 'version': '2.11.0', 'commit_date': '2019-01-20T07:54:37-05:00', 'commit_sha':
'32657f5375440b3910b4d43d8486c9e4cc713423', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.11.0.tar.gz',
'active': None}, {'id': 124650, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-04-25T18:09:21.564992Z', 'modified':
'2020-04-25T18:09:21.565018Z', 'name': '4.1.6', 'version': '4.1.6', 'commit_date': '2020-04-20T12:52:38-04:00', 'commit_sha':
'0b04fb63af24e023227b6e864486f8cd0348e248', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.6.tar.gz',
'active': None}, {'id': 176375, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2022-02-11T08:13:48.665881Z', 'modified':
'2022-02-11T08:13:48.665920Z', 'name': '6.0.3', 'version': '6.0.3', 'commit_date': '2022-02-10T08:17:38-05:00', 'commit_sha':
'75d4b60ec41b7514f6669a54604f9d4be023c36b', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/6.0.3.tar.gz',
'active': None}, {'id': 128847, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-06-11T05:22:01.528491Z', 'modified':
'2020-06-11T05:22:01.528521Z', 'name': '4.1.10', 'version': '4.1.10', 'commit_date': '2020-06-10T15:04:50-04:00', 'commit_sha':
'f3bb819ba2f885fb5b682b86f9e41db3980b14ae', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.10.tar.gz',
'active': None}, {'id': 91613, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-04-10T22:57:04.711215Z', 'modified':
'2019-04-10T22:57:04.711242Z', 'name': '3.0.4', 'version': '3.0.4', 'commit_date': '2019-04-06T03:38:43-04:00', 'commit_sha':
'97b1fd2c5751f0e4aff0669478d04cdf5e86d52e', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.4.tar.gz',
'active': None}, {'id': 193709, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2022-09-21T08:01:59.033069Z', 'modified':
'2022-09-21T08:01:59.033098Z', 'name': '6.1.1', 'version': '6.1.1', 'commit_date': '2022-09-19T04:02:05-04:00', 'commit_sha':
'aa9d051d786d2c722034c3c9c02892f6040fdd3c', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/6.1.1.tar.gz',
'active': None}, {'id': 72323, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-08-10T08:18:05.536947Z', 'modified':
'2018-08-10T08:18:05.536977Z', 'name': '2.0.0', 'version': '2.0.0', 'commit_date': '2018-08-10T01:28:10-04:00', 'commit_sha':
'c99563c85bb796a2e9e7953dd6883621b5954b01', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.0.0.tar.gz',
'active': None}, {'id': 157679, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2021-07-01T08:01:03.243148Z', 'modified':
'2021-07-01T08:01:03.243175Z', 'name': '5.2.0', 'version': '5.2.0', 'commit_date': '2021-07-01T03:44:14-04:00', 'commit_sha':
'8e9ff40857b26cafa048c7d25af8ad48451b15b5', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.2.0.tar.gz',
'active': None}, {'id': 163269, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2021-08-30T14:30:53.660953Z', 'modified':
'2021-08-30T14:30:53.660982Z', 'name': '5.2.4', 'version': '5.2.4', 'commit_date': '2021-08-30T08:54:56-04:00', 'commit_sha':
'f6f75b5e08bbc95e1b39d47e46b124dee81765f0', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.2.4.tar.gz',
'active': None}, {'id': 176035, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2022-02-07T09:27:49.993465Z', 'modified':
'2022-02-07T09:27:49.993491Z', 'name': '6.0.1', 'version': '6.0.1', 'commit_date': '2022-02-07T03:58:19-05:00', 'commit_sha':
'c7cc6d4eeff4c64584d76a5c1d9964e7b5395d15', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/6.0.1.tar.gz',
'active': None}, {'id': 79536, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-09T08:49:36.383326Z', 'modified':
'2018-11-09T08:49:36.383350Z', 'name': '2.5.0', 'version': '2.5.0', 'commit_date': '2018-11-07T15:27:07-05:00', 'commit_sha':
'646c379fef309be7e4dda59b84c498cda02dbc83', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.5.0.tar.gz',
'active': None}, {'id': 102156, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-08-21T06:41:28.355904Z', 'modified':
'2019-08-21T06:41:28.355930Z', 'name': '3.4.4', 'version': '3.4.4', 'commit_date': '2019-08-20T02:47:55-04:00', 'commit_sha':
'd3e37210079cfc6c42c89c152f8bf4ef697301d0', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.4.tar.gz',
'active': None}, {'id': 89259, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-03-04T09:39:16.834396Z', 'modified':
'2019-03-04T09:39:16.834419Z', 'name': '2.11.4', 'version': '2.11.4', 'commit_date': '2019-03-01T01:44:34-05:00', 'commit_sha':
'91b337f87d05929e01ea95f9fd853ee8a43fba97', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.11.4.tar.gz',
'active': None}, {'id': 81324, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-29T13:57:34.901918Z', 'modified':
'2018-11-29T13:57:34.901941Z', 'name': '2.7.0', 'version': '2.7.0', 'commit_date': '2018-11-25T23:46:28-05:00', 'commit_sha':
'832d984edc06f30f57a36e0c46456a579c91c4dc', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.7.0.tar.gz',
'active': None}, {'id': 165729, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2021-10-05T19:30:32.648143Z', 'modified':
'2021-10-05T19:30:32.648196Z', 'name': '5.2.7', 'version': '5.2.7', 'commit_date': '2021-10-05T14:55:42-04:00', 'commit_sha':
'c48df547090c78ac3174d293edd2866a868e292a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.2.7.tar.gz',
'active': None}, {'id': 112203, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-12-29T07:12:50.335351Z', 'modified':
'2019-12-29T07:12:50.335382Z', 'name': '4.0.4', 'version': '4.0.4', 'commit_date': '2019-12-27T14:36:47-05:00', 'commit_sha':
'75c8ffab3ce2f01620c8cc8655b2b167f896f73f', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.0.4.tar.gz',
'active': None}, {'id': 105066, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-03T09:11:26.825202Z', 'modified':
'2019-10-03T09:11:26.825245Z', 'name': '3.5.1', 'version': '3.5.1', 'commit_date': '2019-10-03T01:11:57-04:00', 'commit_sha':
'548d643cb4c4ffd07485901e63a7f9e9521136a5', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.1.tar.gz',
'active': None}, {'id': 104701, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-09-29T18:13:00.450040Z', 'modified':
'2019-09-29T18:13:00.450068Z', 'name': '3.4.7', 'version': '3.4.7', 'commit_date': '2019-09-29T11:07:08-04:00', 'commit_sha':
'7874f77c9c3586914e4097186e1b2a4589044ad6', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.7.tar.gz',
'active': None}, {'id': 93959, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-05-19T11:29:59.522646Z', 'modified':
'2019-05-19T11:29:59.522670Z', 'name': '3.1.0', 'version': '3.1.0', 'commit_date': '2019-05-19T07:19:57-04:00', 'commit_sha':
'ba9acd08122742ef9bd271cc65fe11e122422369', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.1.0.tar.gz',
'active': None}, {'id': 104600, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-09-26T18:28:47.566991Z', 'modified':
'2019-09-26T18:28:47.567019Z', 'name': '3.4.6', 'version': '3.4.6', 'commit_date': '2019-09-25T09:14:47-04:00', 'commit_sha':
'f9bbf85da4bc4240da3c37c08e079af856a88b2d', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.6.tar.gz',
'active': None}, {'id': 163746, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2021-09-06T09:08:10.538903Z', 'modified':
'2021-09-06T09:08:10.538932Z', 'name': '5.2.5', 'version': '5.2.5', 'commit_date': '2021-08-30T12:57:39-04:00', 'commit_sha':
'54f5110ae7f793a3e66307b07c3704c0c8d1321e', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.2.5.tar.gz',
'active': None}, {'id': 80905, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-24T15:16:08.600157Z', 'modified':
'2018-11-24T15:16:08.600173Z', 'name': '2.6.1', 'version': '2.6.1', 'commit_date': '2018-11-22T00:18:55-05:00', 'commit_sha':
'9c1ab0faaec2adec513b90f1e5b24872d6a6974e', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.6.1.tar.gz',
'active': None}]).

Environment

  • Control node OS: [AlmaLinux release 8.6 (Sky Tiger)]
  • Control node Ansible version: [2.11.12]

Please consider sponsoring me.

Error on Ubuntu 20.04 - "ERROR! this task 'ansible.builtin.include_tasks' has extra params"

Hi. I just cloned the bootstrap repo and tried to run the playbook on an Ubuntu 20.04 VM.
Browsing latest commits I saw that you tried to solve it
fc282b5
but it isn't working, at least on Ubuntu 20.04

Here are the details:

Playbook:

---
- name: Prepare server
  hosts: test
  gather_facts: no
  become: yes

  roles:
    - role: ansible-role-bootstrap
    - role: ansible-role-epel

Command:

ansible-playbook prepare.yml

Error:


ERROR! this task 'ansible.builtin.include_tasks' has extra params, which is only allowed in the following modules: command, raw, group_by, include_role, win_command, set_fact, meta, script, include, win_shell, import_tasks, shell, add_host, include_vars, include_tasks, import_role

The error appears to be in '/etc/ansible/roles/ansible-role-bootstrap/tasks/main.yml': line 28, column 7, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

  rescue:
    - name: gather bootstrap facts
      ^ here

Environment:

$cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

$ ansible --version
ansible 2.9.6
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/ansible/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]

OpenSUSE stumbling on python3

Describe the bug

It seems this risky commit is causing some trouble on my OpenSUSE Tumbleweed VM

Switching back to python and python-xml resolves the issue

Playbook

role: ansible-role-bootstrap 

Output

Problem: python3-3.8.2-3.1.x86_64 requires python3-base = 3.8.2, but this requirement cannot be provided\n not installable providers: python3-base-3.8.2-3.1.x86_64[openSUSE-20200501-0]

Environment

  • Virtualbox, OpenSUSE Tumbleweed, version "20210115"

Error executing on Ubuntu 20.04.1 LTS

Describe the bug

I just try to execute the role in roles and get:

TASK [robertdebock.obsproject : install requirements] *****************************************************************************************************************************************************
[WARNING]: Updating cache and auto-installing missing dependency: python3-apt
fatal: [127.0.0.1]: FAILED! => {"changed": false, "msg": "Could not import python modules: apt, apt_pkg. Please install python3-apt package."}

Playbook

Playbook:

---
- hosts: all

  vars_files:
    - default.config.yml

  pre_tasks:
    - include_vars: "{{ item }}"
      with_fileglob:
        - "{{ playbook_dir }}/config.yml"
      tags: ["always"]

  roles:
    - role: robertdebock.obsproject
      tags: ['obs']
      become: true

  tasks:
    - include_tasks: tasks/packages.yml
      when: install_packages
      tags: ["packages"]

    - include_tasks: tasks/ansible-setup.yml

    - include_tasks: tasks/sudoers.yml
      when: configure_sudoers

    - include_tasks: tasks/extra-packages.yml
      tags: ["extra-packages"]

    - name: Run configured post-provision ansible task files.
      include_tasks: "{{ outer_item }}"
      loop_control:
        loop_var: outer_item
      with_fileglob: "{{ post_provision_tasks|default(omit) }}"

Requirements:

---
- name: robertdebock.obsproject

Inventory (localhost):

[all]
127.0.0.1  ansible_connection=local

Command:

$ ansible-playbook main.yml -i inventory --ask-become-pass --tags "obs"

Output

BECOME password: 

PLAY [all] ************************************************************************************************************************************************************************************************

TASK [Gathering Facts] ************************************************************************************************************************************************************************************
[WARNING]: Unhandled error in Python interpreter discovery for host 127.0.0.1: '<' not supported between instances of 'str' and 'int'
[WARNING]: Platform linux on host 127.0.0.1 is using the discovered Python interpreter at /home/static/.pyenv/shims/python3.7, but future installation of another Python interpreter could change the
meaning of that path. See https://docs.ansible.com/ansible/2.10/reference_appendices/interpreter_discovery.html for more information.
ok: [127.0.0.1]

TASK [include_vars] ***************************************************************************************************************************************************************************************
ok: [127.0.0.1] => (item=/home/static/workspace/linux-developer-playbook/config.yml)

TASK [robertdebock.obsproject : install requirements] *****************************************************************************************************************************************************
[WARNING]: Updating cache and auto-installing missing dependency: python3-apt
fatal: [127.0.0.1]: FAILED! => {"changed": false, "msg": "Could not import python modules: apt, apt_pkg. Please install python3-apt package."}

PLAY RECAP ************************************************************************************************************************************************************************************************
127.0.0.1                  : ok=2    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0 

Environment

  • Control node OS: [e.g. Debian 9] (cat /etc/os-release):
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
  • Control node Ansible version: [e.g. 2.9.1] (ansible --version)
ansible 2.10.3
  config file = /home/static/workspace/linux-developer-playbook/ansible.cfg
  configured module search path = ['/home/static/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/static/.pyenv/versions/3.9.0/lib/python3.9/site-packages/ansible
  executable location = /home/static/.pyenv/versions/3.9.0/bin/ansible
  python version = 3.9.0 (default, Oct 30 2020, 21:19:31) [GCC 9.3.0]
  • Managed node OS: [e.g. CentOS 7] (cat /etc/os-release) it is the same, since I am running on localhost.

Modules lvol and lvg are not working

After running this role, it's not possible to use the (preview) modules lvol and/or lvg.

For CentOS the package lvm2 is required.

To verify if this has been fixed, run these tasks.

- name: create volume group vg
  lvg:
    vg: vg
    pvs: /dev/sdb

- name: create logical volume
  lvol:
    vg: vg
    lv: lv
    size: 1024

Version 5.2.3 is currently unavailable from Ansible Galaxy?

Describe the bug

ansible-galaxy install robertdebock.bootstrap,5.2.3 --force

[WARNING]: - robertdebock.bootstrap was NOT installed successfully: - the specified version (5.2.3) of robertdebock.bootstrap was not found in the list of available versions

It seems most other versions of this role are listed in Ansible Galaxy and Ansible Galaxy on the web interface certainly shows this role as being available at version 5.2.3

Playbook

Please paste the playbook you are using. (Consider requirements.yml and
optionally the command you've invoked.)

Output

ansible-galaxy install robertdebock.bootstrap,5.2.3 --force
Starting galaxy role install process
- changing role robertdebock.bootstrap from 5.2.3 to 5.2.3
- downloading role 'bootstrap', owned by robertdebock
[WARNING]: - robertdebock.bootstrap was NOT installed successfully: - the specified version (5.2.3) of robertdebock.bootstrap was not found in the list of available versions ([{'id': 71490, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2018-07-25T05:57:57.514313Z', 'modified': '2018-08-08T05:41:47.378431Z', 'name': '1.0.0', 'version': '1.0.0', 'commit_date': '2018-08-05T02:13:05-04:00', 'commit_sha': '57a7e5fea87235e6ec51188cb9014abdd2b1db73', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/1.0.0.tar.gz', 'active': None}, {'id': 72323, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-08-10T08:18:05.536947Z', 'modified': '2018-08-10T08:18:05.536977Z', 'name':
'2.0.0', 'version': '2.0.0', 'commit_date': '2018-08-10T01:28:10-04:00', 'commit_sha': 'c99563c85bb796a2e9e7953dd6883621b5954b01', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.0.0.tar.gz', 'active': None}, {'id':
72423, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-08-13T15:21:49.028180Z', 'modified': '2018-08-13T15:21:49.028222Z', 'name': '2.1.0', 'version': '2.1.0', 'commit_date': '2018-08-13T10:47:39-04:00', 'commit_sha':
'2d55f6a6ba1956d0ec0af5cfe37557fd9d496aea', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.0.tar.gz', 'active': None}, {'id': 73074, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2018-08-22T11:04:23.631285Z', 'modified': '2018-08-22T11:04:23.631313Z', 'name': '2.1.1', 'version': '2.1.1', 'commit_date': '2018-08-22T06:21:58-04:00', 'commit_sha': '9e321dcd7b42dd88de2a018abac1562e66228df3', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.1.tar.gz', 'active': None}, {'id': 73225, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-08-25T21:19:27.876848Z', 'modified': '2018-08-25T21:19:27.876879Z', 'name':
'2.1.2', 'version': '2.1.2', 'commit_date': '2018-08-25T03:30:10-04:00', 'commit_sha': 'e923642d0a8239b4e6841530a6468d7ec32cc02e', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.2.tar.gz', 'active': None}, {'id':
73914, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-09-03T19:38:43.145460Z', 'modified': '2018-09-03T19:38:43.145487Z', 'name': '2.1.3', 'version': '2.1.3', 'commit_date': '2018-09-03T14:18:53-04:00', 'commit_sha':
'02859572ab993f4666be868dbb1edf9339f75ecc', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.3.tar.gz', 'active': None}, {'id': 74214, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2018-09-12T05:18:33.988527Z', 'modified': '2018-09-12T05:18:33.988564Z', 'name': '2.1.4', 'version': '2.1.4', 'commit_date': '2018-09-12T00:40:46-04:00', 'commit_sha': 'a0ac166270310f820ca199e747f3f431dc41cfbd', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.4.tar.gz', 'active': None}, {'id': 74288, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-09-13T19:34:31.396144Z', 'modified': '2018-09-13T19:34:31.396166Z', 'name':
'2.1.5', 'version': '2.1.5', 'commit_date': '2018-09-13T00:53:58-04:00', 'commit_sha': '03c4ff2b42d67c653e861302c90dcbf200d94ec8', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.5.tar.gz', 'active': None}, {'id':
75304, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-09-25T20:58:11.727627Z', 'modified': '2018-09-25T20:58:11.727650Z', 'name': '2.1.6', 'version': '2.1.6', 'commit_date': '2018-09-24T11:23:20-04:00', 'commit_sha':
'ae72742fa1e87451d9357db54404713c3c1c17ed', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.6.tar.gz', 'active': None}, {'id': 76028, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2018-10-04T06:01:55.022599Z', 'modified': '2018-10-04T06:01:55.022631Z', 'name': '2.1.7', 'version': '2.1.7', 'commit_date': '2018-10-03T23:05:59-04:00', 'commit_sha': '6aca746c6924dfe8ff0b757eaabbecd23613e92d', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.7.tar.gz', 'active': None}, {'id': 76047, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-10-04T14:45:18.315118Z', 'modified': '2018-10-04T14:45:18.315143Z', 'name':
'2.2.0', 'version': '2.2.0', 'commit_date': '2018-10-04T08:11:21-04:00', 'commit_sha': '7693a24602bc83fcadc8ff847360792ec64a05a3', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.2.0.tar.gz', 'active': None}, {'id':
76389, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-10-09T20:15:50.938431Z', 'modified': '2018-10-09T20:15:50.938456Z', 'name': '2.2.1', 'version': '2.2.1', 'commit_date': '2018-10-09T14:32:17-04:00', 'commit_sha':
'1a0e001c9f22153c73a52acda03f722feb7f006a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.2.1.tar.gz', 'active': None}, {'id': 76772, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2018-10-12T20:38:17.160448Z', 'modified': '2018-10-12T20:38:17.160476Z', 'name': '2.3.0', 'version': '2.3.0', 'commit_date': '2018-10-12T15:38:51-04:00', 'commit_sha': 'eed3d2648d722b2b946e3384f501f62b32ba6b95', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.3.0.tar.gz', 'active': None}, {'id': 77345, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-10-20T00:33:57.472390Z', 'modified': '2018-10-20T00:33:57.472415Z', 'name':
'2.3.1', 'version': '2.3.1', 'commit_date': '2018-10-18T04:34:07-04:00', 'commit_sha': 'fc218327048910500551f691b345653376b692f2', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.3.1.tar.gz', 'active': None}, {'id':
77940, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-10-23T05:49:54.697013Z', 'modified': '2018-10-23T05:49:54.697052Z', 'name': '2.4.0', 'version': '2.4.0', 'commit_date': '2018-10-23T00:56:09-04:00', 'commit_sha':
'2a0a89ed2d10e8f0a62c927185f3889ff919b0a9', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.4.0.tar.gz', 'active': None}, {'id': 79536, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2018-11-09T08:49:36.383326Z', 'modified': '2018-11-09T08:49:36.383350Z', 'name': '2.5.0', 'version': '2.5.0', 'commit_date': '2018-11-07T15:27:07-05:00', 'commit_sha': '646c379fef309be7e4dda59b84c498cda02dbc83', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.5.0.tar.gz', 'active': None}, {'id': 80153, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-15T21:18:02.010782Z', 'modified': '2018-11-15T21:18:02.010816Z', 'name':
'2.5.1', 'version': '2.5.1', 'commit_date': '2018-11-15T15:21:34-05:00', 'commit_sha': '7ef115168adc5830f239c85efe24d358b0d86d71', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.5.1.tar.gz', 'active': None}, {'id':
80278, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-17T23:11:53.879178Z', 'modified': '2018-11-17T23:11:53.879200Z', 'name': '2.5.2', 'version': '2.5.2', 'commit_date': '2018-11-17T16:25:22-05:00', 'commit_sha':
'55dc080ba7eb80561920eef4947f9e8d8520af3f', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.5.2.tar.gz', 'active': None}, {'id': 80310, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2018-11-18T16:02:35.311403Z', 'modified': '2018-11-18T16:02:35.311424Z', 'name': '2.6.0', 'version': '2.6.0', 'commit_date': '2018-11-18T08:18:14-05:00', 'commit_sha': '6cdbba4e206eb481ce25c64a0550a142188d46d7', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.6.0.tar.gz', 'active': None}, {'id': 80905, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-24T15:16:08.600157Z', 'modified': '2018-11-24T15:16:08.600173Z', 'name':
'2.6.1', 'version': '2.6.1', 'commit_date': '2018-11-22T00:18:55-05:00', 'commit_sha': '9c1ab0faaec2adec513b90f1e5b24872d6a6974e', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.6.1.tar.gz', 'active': None}, {'id':
81324, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-29T13:57:34.901918Z', 'modified': '2018-11-29T13:57:34.901941Z', 'name': '2.7.0', 'version': '2.7.0', 'commit_date': '2018-11-25T23:46:28-05:00', 'commit_sha':
'832d984edc06f30f57a36e0c46456a579c91c4dc', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.7.0.tar.gz', 'active': None}, {'id': 81369, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2018-11-30T07:30:40.837011Z', 'modified': '2018-11-30T07:30:40.837039Z', 'name': '2.7.1', 'version': '2.7.1', 'commit_date': '2018-11-30T01:16:38-05:00', 'commit_sha': '4b3e424124f9eb8a3e235c620731a70966b98c6a', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.7.1.tar.gz', 'active': None}, {'id': 82511, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-12-07T12:33:19.961238Z', 'modified': '2018-12-07T12:33:19.961260Z', 'name':
'2.7.2', 'version': '2.7.2', 'commit_date': '2018-12-06T14:22:52-05:00', 'commit_sha': 'ac84292689be5a9baf518cb8ede4230cc3afb0f5', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.7.2.tar.gz', 'active': None}, {'id':
83461, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-12-14T18:39:31.646187Z', 'modified': '2018-12-14T18:39:31.646212Z', 'name': '2.7.3', 'version': '2.7.3', 'commit_date': '2018-12-09T00:10:18-05:00', 'commit_sha':
'4448474736005d95d53bebe957f93ab36e2e51ee', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.7.3.tar.gz', 'active': None}, {'id': 83674, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2018-12-18T14:03:21.798904Z', 'modified': '2018-12-18T14:03:21.798928Z', 'name': '2.8.0', 'version': '2.8.0', 'commit_date': '2018-12-18T05:51:43-05:00', 'commit_sha': '708d33aafd5f4d5c54b998e8a6b336be035b459c', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.8.0.tar.gz', 'active': None}, {'id': 84137, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-12-24T22:21:09.615053Z', 'modified': '2018-12-24T22:21:09.615078Z', 'name':
'2.8.1', 'version': '2.8.1', 'commit_date': '2018-12-24T16:45:40-05:00', 'commit_sha': 'ccb9cb1fe9a8acfc43843996884f894cbb3aa3ff', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.8.1.tar.gz', 'active': None}, {'id':
84176, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-12-27T07:29:49.346737Z', 'modified': '2018-12-27T07:29:49.346758Z', 'name': '2.9.1', 'version': '2.9.1', 'commit_date': '2018-12-26T10:47:01-05:00', 'commit_sha':
'86d40ccc22c9670fbbb5ff39ebc8e61a52b47577', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.9.1.tar.gz', 'active': None}, {'id': 84353, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2018-12-29T12:22:35.581567Z', 'modified': '2018-12-29T12:22:35.581600Z', 'name': '2.9.2', 'version': '2.9.2', 'commit_date': '2018-12-29T00:33:42-05:00', 'commit_sha': '39f0b04b81266aa0ee376639e5fc9b8f4d7620dc', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.9.2.tar.gz', 'active': None}, {'id': 85343, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-01-11T04:15:37.628979Z', 'modified': '2019-01-11T04:15:37.629019Z', 'name':
'2.9.3', 'version': '2.9.3', 'commit_date': '2019-01-05T16:51:49-05:00', 'commit_sha': '1f6f879d2b9f5324518eb93e9b221522fc0c435d', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.9.3.tar.gz', 'active': None}, {'id':
85402, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-01-13T10:36:34.757891Z', 'modified': '2019-01-13T10:36:34.757913Z', 'name': '2.10.0', 'version': '2.10.0', 'commit_date': '2019-01-12T10:16:18-05:00', 'commit_sha':
'56ccb3a7dabb4ee0d8ee0e1177e7e9a8ef50c6a6', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.10.0.tar.gz', 'active': None}, {'id': 87017, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-01-30T20:15:40.674081Z', 'modified': '2019-01-30T20:15:40.674111Z', 'name': '2.11.0', 'version': '2.11.0', 'commit_date': '2019-01-20T07:54:37-05:00', 'commit_sha': '32657f5375440b3910b4d43d8486c9e4cc713423', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.11.0.tar.gz', 'active': None}, {'id': 87508, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-02-07T03:50:22.587096Z', 'modified': '2019-02-07T03:50:22.587120Z', 'name':
'2.11.1', 'version': '2.11.1', 'commit_date': '2019-02-01T10:28:29-05:00', 'commit_sha': 'ae60ffb4a26f7f87a9c0382b2a3f7885f2638589', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.11.1.tar.gz', 'active': None}, {'id':
87707, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-02-10T08:19:01.669345Z', 'modified': '2019-02-10T08:19:01.669377Z', 'name': '2.11.2', 'version': '2.11.2', 'commit_date': '2019-02-07T01:17:46-05:00', 'commit_sha':
'3aec65a8d83ac84fa4b5a40346c13230716305c3', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.11.2.tar.gz', 'active': None}, {'id': 88727, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-02-26T14:00:10.065301Z', 'modified': '2019-02-26T14:00:10.065337Z', 'name': '2.11.3', 'version': '2.11.3', 'commit_date': '2019-02-13T00:23:30-05:00', 'commit_sha': 'd7a3dc9cb3ee5966ce7b201bc871e89a6c61fb49', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.11.3.tar.gz', 'active': None}, {'id': 89259, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-03-04T09:39:16.834396Z', 'modified': '2019-03-04T09:39:16.834419Z', 'name':
'2.11.4', 'version': '2.11.4', 'commit_date': '2019-03-01T01:44:34-05:00', 'commit_sha': '91b337f87d05929e01ea95f9fd853ee8a43fba97', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.11.4.tar.gz', 'active': None}, {'id':
89649, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-03-08T21:05:49.470271Z', 'modified': '2019-03-08T21:05:49.470305Z', 'name': '3.0.0', 'version': '3.0.0', 'commit_date': '2019-03-08T15:19:09-05:00', 'commit_sha':
'0ac73e9feea6292c6d505c207b685e1ee643482e', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.0.tar.gz', 'active': None}, {'id': 89972, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-03-13T08:18:35.599414Z', 'modified': '2019-03-13T08:18:35.599438Z', 'name': '3.0.1', 'version': '3.0.1', 'commit_date': '2019-03-12T01:53:35-04:00', 'commit_sha': '3391c0250fce97e10979d0e5964f191dde86f6e1', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.1.tar.gz', 'active': None}, {'id': 90474, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-03-20T06:48:22.622410Z', 'modified': '2019-03-20T06:48:22.622443Z', 'name':
'3.0.2', 'version': '3.0.2', 'commit_date': '2019-03-17T09:36:06-04:00', 'commit_sha': '329f8e913fb27434b4ac36624d6b130c16c7cd8c', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.2.tar.gz', 'active': None}, {'id':
90856, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-03-27T08:54:21.728361Z', 'modified': '2019-03-27T08:54:21.728385Z', 'name': '3.0.3', 'version': '3.0.3', 'commit_date': '2019-03-27T02:22:21-04:00', 'commit_sha':
'e5e3e5bc0e8d9015de9a50d3a35533f2576b0c7b', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.3.tar.gz', 'active': None}, {'id': 91613, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-04-10T22:57:04.711215Z', 'modified': '2019-04-10T22:57:04.711242Z', 'name': '3.0.4', 'version': '3.0.4', 'commit_date': '2019-04-06T03:38:43-04:00', 'commit_sha': '97b1fd2c5751f0e4aff0669478d04cdf5e86d52e', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.4.tar.gz', 'active': None}, {'id': 93243, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-05-08T20:01:02.380977Z', 'modified': '2019-05-08T20:01:02.381012Z', 'name':
'3.0.5', 'version': '3.0.5', 'commit_date': '2019-05-07T14:18:23-04:00', 'commit_sha': 'e26acdd6dd79782d4f0ccd738b9e467accf15287', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.5.tar.gz', 'active': None}, {'id':
93959, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-05-19T11:29:59.522646Z', 'modified': '2019-05-19T11:29:59.522670Z', 'name': '3.1.0', 'version': '3.1.0', 'commit_date': '2019-05-19T07:19:57-04:00', 'commit_sha':
'ba9acd08122742ef9bd271cc65fe11e122422369', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.1.0.tar.gz', 'active': None}, {'id': 94581, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-05-28T09:42:11.213766Z', 'modified': '2019-05-28T09:42:11.213789Z', 'name': '3.1.1', 'version': '3.1.1', 'commit_date': '2019-05-24T01:06:50-04:00', 'commit_sha': '205e59647d78b630850b2147217f1ad27cc3f29a', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.1.1.tar.gz', 'active': None}, {'id': 95276, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-06-06T20:46:12.393741Z', 'modified': '2019-06-06T20:46:12.393771Z', 'name':
'3.1.2', 'version': '3.1.2', 'commit_date': '2019-06-06T16:05:04-04:00', 'commit_sha': '17d167ecb9eb7c40e56cff46a0bf3d9d739546af', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.1.2.tar.gz', 'active': None}, {'id':
96002, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-06-12T05:03:56.600229Z', 'modified': '2019-06-12T05:03:56.600257Z', 'name': '3.1.3', 'version': '3.1.3', 'commit_date': '2019-06-11T05:15:11-04:00', 'commit_sha':
'cab4beb9201f6b7ebc2372b086bec569e64a4a67', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.1.3.tar.gz', 'active': None}, {'id': 96003, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-06-12T05:03:56.867518Z', 'modified': '2019-06-12T05:03:56.867548Z', 'name': '3.1.4', 'version': '3.1.4', 'commit_date': '2019-06-12T00:25:31-04:00', 'commit_sha': '2b640850b5cabc7918f4c7fa19ceaf735a0790f7', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.1.4.tar.gz', 'active': None}, {'id': 96427, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-06-16T22:31:01.629886Z', 'modified': '2019-06-16T22:31:01.629915Z', 'name':
'3.1.5', 'version': '3.1.5', 'commit_date': '2019-06-14T00:28:57-04:00', 'commit_sha': '278b5df8d60d0b2167dddd6e7d4cb60742dcd4f2', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.1.5.tar.gz', 'active': None}, {'id':
96586, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-06-19T01:41:37.177087Z', 'modified': '2019-06-19T01:41:37.177115Z', 'name': '3.2.0', 'version': '3.2.0', 'commit_date': '2019-06-18T00:38:18-04:00', 'commit_sha':
'a3a86b3c69f4deb1c7629388f271af3ccf899047', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.2.0.tar.gz', 'active': None}, {'id': 97757, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-07-02T04:26:17.175078Z', 'modified': '2019-07-02T04:26:17.175105Z', 'name': '3.3.0', 'version': '3.3.0', 'commit_date': '2019-07-01T16:18:36-04:00', 'commit_sha': 'c117a4e835bc16246fb7dbb079b4be4fcf4418e4', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.3.0.tar.gz', 'active': None}, {'id': 97815, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-07-03T08:22:37.546798Z', 'modified': '2019-07-03T08:22:37.546826Z', 'name':
'3.3.1', 'version': '3.3.1', 'commit_date': '2019-07-01T23:52:21-04:00', 'commit_sha': 'd2f7f03b26aa07a63bc8412af88232b5b3054023', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.3.1.tar.gz', 'active': None}, {'id':
97902, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-07-03T18:39:40.751221Z', 'modified': '2019-07-03T18:39:40.751251Z', 'name': '3.4.0', 'version': '3.4.0', 'commit_date': '2019-07-03T09:41:53-04:00', 'commit_sha':
'16134ef34b42b97e2de906d4fa96207a0a032eaf', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.0.tar.gz', 'active': None}, {'id': 98741, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-07-12T12:38:45.654017Z', 'modified': '2019-07-12T12:38:45.654045Z', 'name': '3.4.1', 'version': '3.4.1', 'commit_date': '2019-07-06T01:55:50-04:00', 'commit_sha': '6e919718cc292dab06d4e07b668dac375267d885', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.1.tar.gz', 'active': None}, {'id': 99049, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-07-17T06:17:15.046673Z', 'modified': '2019-07-17T06:17:15.046700Z', 'name':
'3.4.2', 'version': '3.4.2', 'commit_date': '2019-07-15T00:46:13-04:00', 'commit_sha': '562e2bc9802fe6449a6f7d8a14ebd6a5159e8fbf', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.2.tar.gz', 'active': None}, {'id':
100272, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-08-04T09:42:00.100012Z', 'modified': '2019-08-04T09:42:00.100039Z', 'name': '3.4.3', 'version': '3.4.3', 'commit_date': '2019-08-04T00:58:55-04:00', 'commit_sha':
'1a41e53bff8295c1e82086d418f575384aee37e2', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.3.tar.gz', 'active': None}, {'id': 102156, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-08-21T06:41:28.355904Z', 'modified': '2019-08-21T06:41:28.355930Z', 'name': '3.4.4', 'version': '3.4.4', 'commit_date': '2019-08-20T02:47:55-04:00', 'commit_sha': 'd3e37210079cfc6c42c89c152f8bf4ef697301d0', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.4.tar.gz', 'active': None}, {'id': 103141, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-09-07T01:20:51.921763Z', 'modified': '2019-09-07T01:20:51.921822Z', 'name':
'2.4.5', 'version': '2.4.5', 'commit_date': '2019-09-02T10:00:28-04:00', 'commit_sha': '55b2698a51fdbd64066fe87e827e964ee3a014ca', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.4.5.tar.gz', 'active': None}, {'id':
104580, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-09-26T03:04:33.527931Z', 'modified': '2019-09-26T03:04:33.527956Z', 'name': '2.4.6', 'version': '2.4.6', 'commit_date': '2019-09-25T09:14:47-04:00', 'commit_sha':
'f9bbf85da4bc4240da3c37c08e079af856a88b2d', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.4.6.tar.gz', 'active': None}, {'id': 104600, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-09-26T18:28:47.566991Z', 'modified': '2019-09-26T18:28:47.567019Z', 'name': '3.4.6', 'version': '3.4.6', 'commit_date': '2019-09-25T09:14:47-04:00', 'commit_sha': 'f9bbf85da4bc4240da3c37c08e079af856a88b2d', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.6.tar.gz', 'active': None}, {'id': 104701, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-09-29T18:13:00.450040Z', 'modified': '2019-09-29T18:13:00.450068Z', 'name':
'3.4.7', 'version': '3.4.7', 'commit_date': '2019-09-29T11:07:08-04:00', 'commit_sha': '7874f77c9c3586914e4097186e1b2a4589044ad6', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.7.tar.gz', 'active': None}, {'id':
104981, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-02T15:22:53.821569Z', 'modified': '2019-10-02T15:22:53.821598Z', 'name': '3.5.0', 'version': '3.5.0', 'commit_date': '2019-10-02T05:16:59-04:00', 'commit_sha':
'6c34fff06beeb25738325e1910aafd2cc6dedb1c', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.0.tar.gz', 'active': None}, {'id': 105066, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-10-03T09:11:26.825202Z', 'modified': '2019-10-03T09:11:26.825245Z', 'name': '3.5.1', 'version': '3.5.1', 'commit_date': '2019-10-03T01:11:57-04:00', 'commit_sha': '548d643cb4c4ffd07485901e63a7f9e9521136a5', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.1.tar.gz', 'active': None}, {'id': 105313, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-06T13:43:45.866281Z', 'modified': '2019-10-06T13:43:45.866320Z', 'name':
'3.5.2', 'version': '3.5.2', 'commit_date': '2019-10-04T08:09:00-04:00', 'commit_sha': '374fb2d9f5420ac0eda22a28de1e3f60c09e67ff', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.2.tar.gz', 'active': None}, {'id':
105823, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-10T19:05:38.397381Z', 'modified': '2019-10-10T19:05:38.397408Z', 'name': '3.5.3', 'version': '3.5.3', 'commit_date': '2019-10-10T15:01:13-04:00', 'commit_sha':
'bd8cd2ea873a5441b1d5c7fba2d38fa6d33cb9a2', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.3.tar.gz', 'active': None}, {'id': 106571, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-10-21T10:32:44.246644Z', 'modified': '2019-10-21T10:32:44.246671Z', 'name': '3.5.4', 'version': '3.5.4', 'commit_date': '2019-10-21T04:50:46-04:00', 'commit_sha': '9ca5390d71a20b535e2a3a6ead999c9b6597ec97', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.4.tar.gz', 'active': None}, {'id': 107200, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-25T19:50:21.331309Z', 'modified': '2019-10-25T19:50:21.331358Z', 'name':
'3.5.5', 'version': '3.5.5', 'commit_date': '2019-10-21T11:36:48-04:00', 'commit_sha': '4e49ecd2ef20c74501293acab15b91652e8902a6', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.5.tar.gz', 'active': None}, {'id':
107521, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-28T04:49:41.022081Z', 'modified': '2019-10-28T04:49:41.022109Z', 'name': '3.5.6', 'version': '3.5.6', 'commit_date': '2019-10-25T11:40:15-04:00', 'commit_sha':
'768c302520c7e24df66f31be5fba9318a09feb94', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.6.tar.gz', 'active': None}, {'id': 107871, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-11-02T09:57:40.667159Z', 'modified': '2019-11-02T09:57:40.667187Z', 'name': '3.5.7', 'version': '3.5.7', 'commit_date': '2019-11-01T11:29:24-04:00', 'commit_sha': '8a230d6fb97b0afe16fe06a8d6332633cb4e35ab', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.7.tar.gz', 'active': None}, {'id': 108203, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-11-06T00:53:06.816267Z', 'modified': '2019-11-06T00:53:06.816295Z', 'name':
'3.5.8', 'version': '3.5.8', 'commit_date': '2019-11-05T15:06:15-05:00', 'commit_sha': '4910489641ee0d5471e94376d8024c2ecc126b15', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.8.tar.gz', 'active': None}, {'id':
108331, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-11-07T08:10:02.545897Z', 'modified': '2019-11-07T08:10:02.545937Z', 'name': '3.5.9', 'version': '3.5.9', 'commit_date': '2019-11-06T11:18:37-05:00', 'commit_sha':
'67c281a5913798b53eeac4c114bc40b6efe138c8', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.9.tar.gz', 'active': None}, {'id': 108372, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-11-07T17:05:16.336581Z', 'modified': '2019-11-07T17:05:16.336617Z', 'name': '3.5.10', 'version': '3.5.10', 'commit_date': '2019-11-07T09:58:53-05:00', 'commit_sha': '9e4dfe51d3e2b9c68b984ac810ed4a2502b3b541', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.10.tar.gz', 'active': None}, {'id': 108721, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-11-11T12:20:40.202670Z', 'modified': '2019-11-11T12:20:40.202706Z', 'name':
'3.5.11', 'version': '3.5.11', 'commit_date': '2019-11-10T14:35:11-05:00', 'commit_sha': '134dcc216e84ce4b2030a55a4f8b15a027f357c4', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.11.tar.gz', 'active': None}, {'id':
109016, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-11-14T04:08:24.186419Z', 'modified': '2019-11-14T04:08:24.186447Z', 'name': '3.5.12', 'version': '3.5.12', 'commit_date': '2019-11-13T11:27:59-05:00', 'commit_sha':
'c0f2a43b8747e1a6deedb7ad5b71819f9a7c21b0', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.12.tar.gz', 'active': None}, {'id': 110534, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-12-03T10:07:54.626123Z', 'modified': '2019-12-03T10:07:54.626151Z', 'name': '4.0.0', 'version': '4.0.0', 'commit_date': '2019-12-03T01:13:52-05:00', 'commit_sha': 'd5c7758dda0afb799956f23ce8a8ab470c9ff9e2', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.0.0.tar.gz', 'active': None}, {'id': 110805, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-12-09T10:36:23.313452Z', 'modified': '2019-12-09T10:36:23.313496Z', 'name':
'4.0.1', 'version': '4.0.1', 'commit_date': '2019-12-06T01:20:49-05:00', 'commit_sha': '3f41af165533cbdbd59becd8c1d8cbd2836f8d19', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.0.1.tar.gz', 'active': None}, {'id':
111049, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-12-11T11:01:14.235164Z', 'modified': '2019-12-11T11:01:14.235206Z', 'name': '4.0.2', 'version': '4.0.2', 'commit_date': '2019-12-11T00:45:07-05:00', 'commit_sha':
'561ddbeb8e843026c665931540ea6835d5b45f5f', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.0.2.tar.gz', 'active': None}, {'id': 111774, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-12-19T14:32:25.896405Z', 'modified': '2019-12-19T14:32:25.896436Z', 'name': '4.0.3', 'version': '4.0.3', 'commit_date': '2019-12-11T04:45:40-05:00', 'commit_sha': '45910a93da1ab04376de08057e6cd2e4da0f977d', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.0.3.tar.gz', 'active': None}, {'id': 112203, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-12-29T07:12:50.335351Z', 'modified': '2019-12-29T07:12:50.335382Z', 'name':
'4.0.4', 'version': '4.0.4', 'commit_date': '2019-12-27T14:36:47-05:00', 'commit_sha': '75c8ffab3ce2f01620c8cc8655b2b167f896f73f', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.0.4.tar.gz', 'active': None}, {'id':
112707, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-01-06T16:33:55.861797Z', 'modified': '2020-01-06T16:33:55.861827Z', 'name': '4.1.0', 'version': '4.1.0', 'commit_date': '2020-01-06T11:15:00-05:00', 'commit_sha':
'c75d07a4c27fc14bfb6c742c739be5e660b18b5f', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.0.tar.gz', 'active': None}, {'id': 113288, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2020-01-11T20:05:38.506479Z', 'modified': '2020-01-11T20:05:38.506506Z', 'name': '4.1.1', 'version': '4.1.1', 'commit_date': '2020-01-09T13:35:05-05:00', 'commit_sha': 'af0f9cdac39aec7f9852103eb80b65e04cd108e1', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.1.tar.gz', 'active': None}, {'id': 115106, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-02-04T06:28:25.100221Z', 'modified': '2020-02-04T06:28:25.100247Z', 'name':
'4.1.2', 'version': '4.1.2', 'commit_date': '2020-02-03T11:24:37-05:00', 'commit_sha': '6a4c679d222bb2f7c5c1c3b839eb14fdb24fe063', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.2.tar.gz', 'active': None}, {'id':
115701, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-02-12T11:26:27.990395Z', 'modified': '2020-02-12T11:26:27.990424Z', 'name': '4.1.3', 'version': '4.1.3', 'commit_date': '2020-02-08T02:10:45-05:00', 'commit_sha':
'2906380bbaba12642bdefd89206eb46b3e4f2485', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.3.tar.gz', 'active': None}, {'id': 116223, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2020-02-15T08:43:17.544791Z', 'modified': '2020-02-15T08:43:17.544820Z', 'name': '4.1.4', 'version': '4.1.4', 'commit_date': '2020-02-14T06:20:31-05:00', 'commit_sha': '72539876a0ec71b949fbfb16cc078ed1a1dc0e81', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.4.tar.gz', 'active': None}, {'id': 118724, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-02-25T07:00:23.339534Z', 'modified': '2020-02-25T07:00:23.339573Z', 'name':
'4.1.5', 'version': '4.1.5', 'commit_date': '2020-02-21T08:11:41-05:00', 'commit_sha': 'db6374d62835c5125f4557a0fd02e3d61268655a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.5.tar.gz', 'active': None}, {'id':
124650, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-04-25T18:09:21.564992Z', 'modified': '2020-04-25T18:09:21.565018Z', 'name': '4.1.6', 'version': '4.1.6', 'commit_date': '2020-04-20T12:52:38-04:00', 'commit_sha':
'0b04fb63af24e023227b6e864486f8cd0348e248', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.6.tar.gz', 'active': None}, {'id': 125205, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2020-05-01T09:57:42.593370Z', 'modified': '2020-05-01T09:57:42.593395Z', 'name': '4.1.7', 'version': '4.1.7', 'commit_date': '2020-05-01T05:33:47-04:00', 'commit_sha': '0b44eb1c5bab68ffada8dec1e44f62d32c460b7b', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.7.tar.gz', 'active': None}, {'id': 126667, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-05-18T04:59:21.451687Z', 'modified': '2020-05-18T04:59:21.451715Z', 'name':
'4.1.8', 'version': '4.1.8', 'commit_date': '2020-05-14T02:48:43-04:00', 'commit_sha': '00cba566b111b4d16afe68f73b60fd8cbe02eb6a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.8.tar.gz', 'active': None}, {'id':
127398, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-05-23T06:20:34.976349Z', 'modified': '2020-05-23T06:20:34.976375Z', 'name': '4.1.9', 'version': '4.1.9', 'commit_date': '2020-05-20T13:53:53-04:00', 'commit_sha':
'7cafa387ac0e2c5fe4a455dc2aef52e317b926eb', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.9.tar.gz', 'active': None}, {'id': 128847, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2020-06-11T05:22:01.528491Z', 'modified': '2020-06-11T05:22:01.528521Z', 'name': '4.1.10', 'version': '4.1.10', 'commit_date': '2020-06-10T15:04:50-04:00', 'commit_sha': 'f3bb819ba2f885fb5b682b86f9e41db3980b14ae', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.10.tar.gz', 'active': None}, {'id': 130477, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-07-05T07:58:58.514752Z', 'modified': '2020-07-05T07:58:58.514778Z', 'name':
'4.2.0', 'version': '4.2.0', 'commit_date': '2020-07-03T06:10:09-04:00', 'commit_sha': '67314f6bdc5a4d3aef3f24a841704660d541ff03', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.0.tar.gz', 'active': None}, {'id':
131397, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-07-13T04:28:48.142102Z', 'modified': '2020-07-13T04:28:48.142128Z', 'name': '4.2.1', 'version': '4.2.1', 'commit_date': '2020-07-07T15:40:30-04:00', 'commit_sha':
'e706d8d4ac5b25ad3c9f21eaae5b360e4c5fe042', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.1.tar.gz', 'active': None}, {'id': 131909, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2020-07-20T06:44:10.525320Z', 'modified': '2020-07-20T06:44:10.525349Z', 'name': '4.2.2', 'version': '4.2.2', 'commit_date': '2020-07-16T02:59:31-04:00', 'commit_sha': '1d07c88f9b95c0fe48b6511f5c38dcf512bc3b35', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.2.tar.gz', 'active': None}, {'id': 133879, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-08-19T13:47:00.908594Z', 'modified': '2020-08-19T13:47:00.908633Z', 'name':
'4.2.3', 'version': '4.2.3', 'commit_date': '2020-08-19T08:31:31-04:00', 'commit_sha': '6b74bf2c2d9e07b3b49aaebe79356f7095f9a029', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.3.tar.gz', 'active': None}, {'id':
134585, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-08-25T19:59:43.851866Z', 'modified': '2020-08-25T19:59:43.851895Z', 'name': '4.2.4', 'version': '4.2.4', 'commit_date': '2020-08-20T03:38:23-04:00', 'commit_sha':
'25d316a9b3fb88b1cc253126ce82c5ff6dd67f65', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.4.tar.gz', 'active': None}, {'id': 135159, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2020-08-28T18:37:54.325979Z', 'modified': '2020-08-28T18:37:54.326006Z', 'name': '4.2.5', 'version': '4.2.5', 'commit_date': '2020-08-27T04:05:54-04:00', 'commit_sha': '1cbb0ca628d899f5c002a649e89b09d3a9faa105', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.5.tar.gz', 'active': None}, {'id': 135884, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-09-10T08:24:59.645060Z', 'modified': '2020-09-10T08:24:59.645089Z', 'name':
'4.2.6', 'version': '4.2.6', 'commit_date': '2020-09-03T04:10:09-04:00', 'commit_sha': 'dffbf549162a7c3130c425ba57c877fca044001a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.6.tar.gz', 'active': None}, {'id':
136252, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-09-16T19:49:53.045628Z', 'modified': '2020-09-16T19:49:53.045654Z', 'name': '4.2.7', 'version': '4.2.7', 'commit_date': '2020-09-16T00:34:23-04:00', 'commit_sha':
'575dd06a8324476b3b28636ef82facc9ff47e269', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.2.7.tar.gz', 'active': None}, {'id': 137222, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2020-10-01T14:04:17.822648Z', 'modified': '2020-10-01T14:04:17.822675Z', 'name': '4.3.0', 'version': '4.3.0', 'commit_date': '2020-10-01T09:15:09-04:00', 'commit_sha': '025fcc14f11a5cdc111181b926507aaf14de5131', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.3.0.tar.gz', 'active': None}, {'id': 137742, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-10-08T13:55:11.618946Z', 'modified': '2020-10-08T13:55:11.618970Z', 'name':
'4.3.1', 'version': '4.3.1', 'commit_date': '2020-10-05T15:35:30-04:00', 'commit_sha': '06e788c820fb4b6fde810af96206838d2c6dd84a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.3.1.tar.gz', 'active': None}, {'id':
138144, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-10-12T14:38:53.332772Z', 'modified': '2020-10-12T14:38:53.332806Z', 'name': '4.3.2', 'version': '4.3.2', 'commit_date': '2020-10-09T04:16:45-04:00', 'commit_sha':
'8d9685bdb1106d5e2f44f608af0e3878f19f7ca6', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.3.2.tar.gz', 'active': None}, {'id': 139012, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2020-10-27T12:42:48.825544Z', 'modified': '2020-10-27T12:42:48.825569Z', 'name': '4.3.3', 'version': '4.3.3', 'commit_date': '2020-10-16T04:32:54-04:00', 'commit_sha': 'ed3b3cca7702b70f5f96b3d52ecfd979afdfcbac', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.3.3.tar.gz', 'active': None}, {'id': 147422, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2021-02-22T12:35:33.916654Z', 'modified': '2021-02-22T12:35:33.916680Z', 'name':
'5.0.1', 'version': '5.0.1', 'commit_date': '2021-02-22T06:27:49-05:00', 'commit_sha': 'd8f0c3ed90945ac30b54ff95bed8a32d3d4a397f', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.0.1.tar.gz', 'active': None}, {'id':
157983, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2021-07-06T05:11:24.387475Z', 'modified': '2021-07-06T05:11:24.387502Z', 'name': '5.2.1', 'version': '5.2.1', 'commit_date': '2021-07-05T10:35:38-04:00', 'commit_sha':
'2c650496963ca604f03f1514e28f482ce98ebfa9', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.2.1.tar.gz', 'active': None}, {'id': 76047, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2018-10-04T14:45:18.315118Z', 'modified': '2018-10-04T14:45:18.315143Z', 'name': '2.2.0', 'version': '2.2.0', 'commit_date': '2018-10-04T08:11:21-04:00', 'commit_sha': '7693a24602bc83fcadc8ff847360792ec64a05a3', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.2.0.tar.gz', 'active': None}, {'id': 80278, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-17T23:11:53.879178Z', 'modified': '2018-11-17T23:11:53.879200Z', 'name':
'2.5.2', 'version': '2.5.2', 'commit_date': '2018-11-17T16:25:22-05:00', 'commit_sha': '55dc080ba7eb80561920eef4947f9e8d8520af3f', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.5.2.tar.gz', 'active': None}, {'id':
89972, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-03-13T08:18:35.599414Z', 'modified': '2019-03-13T08:18:35.599438Z', 'name': '3.0.1', 'version': '3.0.1', 'commit_date': '2019-03-12T01:53:35-04:00', 'commit_sha':
'3391c0250fce97e10979d0e5964f191dde86f6e1', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.1.tar.gz', 'active': None}, {'id': 176118, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2022-02-08T14:12:53.599956Z', 'modified': '2022-02-08T14:12:53.599983Z', 'name': '6.0.2', 'version': '6.0.2', 'commit_date': '2022-02-07T04:49:32-05:00', 'commit_sha': '4d47462281603c19ec3d4b07dd0f303014bad6f9', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/6.0.2.tar.gz', 'active': None}, {'id': 98741, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-07-12T12:38:45.654017Z', 'modified': '2019-07-12T12:38:45.654045Z', 'name':
'3.4.1', 'version': '3.4.1', 'commit_date': '2019-07-06T01:55:50-04:00', 'commit_sha': '6e919718cc292dab06d4e07b668dac375267d885', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.1.tar.gz', 'active': None}, {'id':
106571, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-21T10:32:44.246644Z', 'modified': '2019-10-21T10:32:44.246671Z', 'name': '3.5.4', 'version': '3.5.4', 'commit_date': '2019-10-21T04:50:46-04:00', 'commit_sha':
'9ca5390d71a20b535e2a3a6ead999c9b6597ec97', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.4.tar.gz', 'active': None}, {'id': 74288, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2018-09-13T19:34:31.396144Z', 'modified': '2018-09-13T19:34:31.396166Z', 'name': '2.1.5', 'version': '2.1.5', 'commit_date': '2018-09-13T00:53:58-04:00', 'commit_sha': '03c4ff2b42d67c653e861302c90dcbf200d94ec8', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.5.tar.gz', 'active': None}, {'id': 174971, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2022-01-27T15:21:07.623361Z', 'modified': '2022-01-27T15:21:07.623388Z', 'name':
'5.2.12', 'version': '5.2.12', 'commit_date': '2022-01-27T04:33:59-05:00', 'commit_sha': 'b7938d45abac6fb2a03d8bc186630eae6a0cc62c', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.2.12.tar.gz', 'active': None}, {'id':
104981, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-10-02T15:22:53.821569Z', 'modified': '2019-10-02T15:22:53.821598Z', 'name': '3.5.0', 'version': '3.5.0', 'commit_date': '2019-10-02T05:16:59-04:00', 'commit_sha':
'6c34fff06beeb25738325e1910aafd2cc6dedb1c', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.0.tar.gz', 'active': None}, {'id': 74214, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2018-09-12T05:18:33.988527Z', 'modified': '2018-09-12T05:18:33.988564Z', 'name': '2.1.4', 'version': '2.1.4', 'commit_date': '2018-09-12T00:40:46-04:00', 'commit_sha': 'a0ac166270310f820ca199e747f3f431dc41cfbd', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.1.4.tar.gz', 'active': None}, {'id': 137742, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-10-08T13:55:11.618946Z', 'modified': '2020-10-08T13:55:11.618970Z', 'name':
'4.3.1', 'version': '4.3.1', 'commit_date': '2020-10-05T15:35:30-04:00', 'commit_sha': '06e788c820fb4b6fde810af96206838d2c6dd84a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.3.1.tar.gz', 'active': None}, {'id':
153479, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2021-05-09T10:53:28.846935Z', 'modified': '2021-05-09T10:53:28.846964Z', 'name': '5.0.6', 'version': '5.0.6', 'commit_date': '2021-05-09T03:04:58-04:00', 'commit_sha':
'9159f4144a76b0227c1943fc0398ac99e00cd63d', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.0.6.tar.gz', 'active': None}, {'id': 87017, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-01-30T20:15:40.674081Z', 'modified': '2019-01-30T20:15:40.674111Z', 'name': '2.11.0', 'version': '2.11.0', 'commit_date': '2019-01-20T07:54:37-05:00', 'commit_sha': '32657f5375440b3910b4d43d8486c9e4cc713423', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.11.0.tar.gz', 'active': None}, {'id': 124650, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2020-04-25T18:09:21.564992Z', 'modified': '2020-04-25T18:09:21.565018Z', 'name':
'4.1.6', 'version': '4.1.6', 'commit_date': '2020-04-20T12:52:38-04:00', 'commit_sha': '0b04fb63af24e023227b6e864486f8cd0348e248', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.6.tar.gz', 'active': None}, {'id':
176375, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2022-02-11T08:13:48.665881Z', 'modified': '2022-02-11T08:13:48.665920Z', 'name': '6.0.3', 'version': '6.0.3', 'commit_date': '2022-02-10T08:17:38-05:00', 'commit_sha':
'75d4b60ec41b7514f6669a54604f9d4be023c36b', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/6.0.3.tar.gz', 'active': None}, {'id': 128847, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2020-06-11T05:22:01.528491Z', 'modified': '2020-06-11T05:22:01.528521Z', 'name': '4.1.10', 'version': '4.1.10', 'commit_date': '2020-06-10T15:04:50-04:00', 'commit_sha': 'f3bb819ba2f885fb5b682b86f9e41db3980b14ae', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.1.10.tar.gz', 'active': None}, {'id': 91613, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-04-10T22:57:04.711215Z', 'modified': '2019-04-10T22:57:04.711242Z', 'name':
'3.0.4', 'version': '3.0.4', 'commit_date': '2019-04-06T03:38:43-04:00', 'commit_sha': '97b1fd2c5751f0e4aff0669478d04cdf5e86d52e', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.0.4.tar.gz', 'active': None}, {'id':
72323, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-08-10T08:18:05.536947Z', 'modified': '2018-08-10T08:18:05.536977Z', 'name': '2.0.0', 'version': '2.0.0', 'commit_date': '2018-08-10T01:28:10-04:00', 'commit_sha':
'c99563c85bb796a2e9e7953dd6883621b5954b01', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.0.0.tar.gz', 'active': None}, {'id': 157679, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2021-07-01T08:01:03.243148Z', 'modified': '2021-07-01T08:01:03.243175Z', 'name': '5.2.0', 'version': '5.2.0', 'commit_date': '2021-07-01T03:44:14-04:00', 'commit_sha': '8e9ff40857b26cafa048c7d25af8ad48451b15b5', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.2.0.tar.gz', 'active': None}, {'id': 163269, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2021-08-30T14:30:53.660953Z', 'modified': '2021-08-30T14:30:53.660982Z', 'name':
'5.2.4', 'version': '5.2.4', 'commit_date': '2021-08-30T08:54:56-04:00', 'commit_sha': 'f6f75b5e08bbc95e1b39d47e46b124dee81765f0', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.2.4.tar.gz', 'active': None}, {'id':
176035, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2022-02-07T09:27:49.993465Z', 'modified': '2022-02-07T09:27:49.993491Z', 'name': '6.0.1', 'version': '6.0.1', 'commit_date': '2022-02-07T03:58:19-05:00', 'commit_sha':
'c7cc6d4eeff4c64584d76a5c1d9964e7b5395d15', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/6.0.1.tar.gz', 'active': None}, {'id': 79536, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2018-11-09T08:49:36.383326Z', 'modified': '2018-11-09T08:49:36.383350Z', 'name': '2.5.0', 'version': '2.5.0', 'commit_date': '2018-11-07T15:27:07-05:00', 'commit_sha': '646c379fef309be7e4dda59b84c498cda02dbc83', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.5.0.tar.gz', 'active': None}, {'id': 102156, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-08-21T06:41:28.355904Z', 'modified': '2019-08-21T06:41:28.355930Z', 'name':
'3.4.4', 'version': '3.4.4', 'commit_date': '2019-08-20T02:47:55-04:00', 'commit_sha': 'd3e37210079cfc6c42c89c152f8bf4ef697301d0', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.4.tar.gz', 'active': None}, {'id':
89259, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-03-04T09:39:16.834396Z', 'modified': '2019-03-04T09:39:16.834419Z', 'name': '2.11.4', 'version': '2.11.4', 'commit_date': '2019-03-01T01:44:34-05:00', 'commit_sha':
'91b337f87d05929e01ea95f9fd853ee8a43fba97', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.11.4.tar.gz', 'active': None}, {'id': 81324, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2018-11-29T13:57:34.901918Z', 'modified': '2018-11-29T13:57:34.901941Z', 'name': '2.7.0', 'version': '2.7.0', 'commit_date': '2018-11-25T23:46:28-05:00', 'commit_sha': '832d984edc06f30f57a36e0c46456a579c91c4dc', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.7.0.tar.gz', 'active': None}, {'id': 165729, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2021-10-05T19:30:32.648143Z', 'modified': '2021-10-05T19:30:32.648196Z', 'name':
'5.2.7', 'version': '5.2.7', 'commit_date': '2021-10-05T14:55:42-04:00', 'commit_sha': 'c48df547090c78ac3174d293edd2866a868e292a', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.2.7.tar.gz', 'active': None}, {'id':
112203, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-12-29T07:12:50.335351Z', 'modified': '2019-12-29T07:12:50.335382Z', 'name': '4.0.4', 'version': '4.0.4', 'commit_date': '2019-12-27T14:36:47-05:00', 'commit_sha':
'75c8ffab3ce2f01620c8cc8655b2b167f896f73f', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/4.0.4.tar.gz', 'active': None}, {'id': 105066, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-10-03T09:11:26.825202Z', 'modified': '2019-10-03T09:11:26.825245Z', 'name': '3.5.1', 'version': '3.5.1', 'commit_date': '2019-10-03T01:11:57-04:00', 'commit_sha': '548d643cb4c4ffd07485901e63a7f9e9521136a5', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.5.1.tar.gz', 'active': None}, {'id': 104701, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-09-29T18:13:00.450040Z', 'modified': '2019-09-29T18:13:00.450068Z', 'name':
'3.4.7', 'version': '3.4.7', 'commit_date': '2019-09-29T11:07:08-04:00', 'commit_sha': '7874f77c9c3586914e4097186e1b2a4589044ad6', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.7.tar.gz', 'active': None}, {'id':
93959, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2019-05-19T11:29:59.522646Z', 'modified': '2019-05-19T11:29:59.522670Z', 'name': '3.1.0', 'version': '3.1.0', 'commit_date': '2019-05-19T07:19:57-04:00', 'commit_sha':
'ba9acd08122742ef9bd271cc65fe11e122422369', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.1.0.tar.gz', 'active': None}, {'id': 104600, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2019-09-26T18:28:47.566991Z', 'modified': '2019-09-26T18:28:47.567019Z', 'name': '3.4.6', 'version': '3.4.6', 'commit_date': '2019-09-25T09:14:47-04:00', 'commit_sha': 'f9bbf85da4bc4240da3c37c08e079af856a88b2d', 'download_url':
'https://github.com/robertdebock/ansible-role-bootstrap/archive/3.4.6.tar.gz', 'active': None}, {'id': 163746, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2021-09-06T09:08:10.538903Z', 'modified': '2021-09-06T09:08:10.538932Z', 'name':
'5.2.5', 'version': '5.2.5', 'commit_date': '2021-08-30T12:57:39-04:00', 'commit_sha': '54f5110ae7f793a3e66307b07c3704c0c8d1321e', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/5.2.5.tar.gz', 'active': None}, {'id':
80905, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-11-24T15:16:08.600157Z', 'modified': '2018-11-24T15:16:08.600173Z', 'name': '2.6.1', 'version': '2.6.1', 'commit_date': '2018-11-22T00:18:55-05:00', 'commit_sha':
'9c1ab0faaec2adec513b90f1e5b24872d6a6974e', 'download_url': 'https://github.com/robertdebock/ansible-role-bootstrap/archive/2.6.1.tar.gz', 'active': None}]).
ERROR! - you can use --ignore-errors to skip failed roles and finish processing the list.

Execution failed: No package matching 'gnupg' is available

Hey @robertdebock,

happy new year! I have come across an issue that can be fixed in several ways. I wanted to get your opinion before I create a pull request.

Describe the bug

When I run the role against the official Debian 11 cloud image, I get the following error message:

TASK [robertdebock.bootstrap : install bootstrap packages (package)] *************************************************************************************************************************************
ok: [10.10.0.119] => (item=python3)
ok: [10.10.0.119] => (item=sudo)
failed: [10.10.0.119] (item=gnupg) => changed=false 
  ansible_loop_var: item
  item: gnupg
  msg: No package matching 'gnupg' is available
ok: [10.10.0.119] => (item=python3-apt)

The execution fails because the image is delivered without package cache. If I manually preheat the cache (apt-get update) , everything goes well. According to the tasks/main.yaml file, the cache warm up is intended in the install bootstrap packages (raw) step. But in my case, the step is not executed since the test connection went successful.

I didn't get if the install bootstrap packages (package) task is supposed to act as a safety net and only checks if the raw step has been executed or if it is also supposed to install packages. If the latter, I would create a PR add an OS specific "update cache" task.

Can you please help shed some light on this?

No real idempotence

Describe the bug
No real idempotence as described here.

To Reproduce
Steps to reproduce the behavior:

---
- name: Idempotence
  hosts: all
  gather_facts: false
  become: no
  vars:
    ansible_user: admin

  roles:
    - role: bootstrap
    - role: users
      vars:
        users:
          - name: admin
            comment: Ansible Management User
            uid: 2000
            cron: yes
            sudo: yes
            ssh_key:
              - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVpUJQCOaPg3p5xro9e+1fkGRWNOGrrExiKMqTE91Fwu349bxfMnMzRS0PAERouR9EEL+Ee4Yzhav/uNc35eCtXzACtluXnAncMrQj6pM3IqASynhvXTygHljmcMbBSDQtLrTZeW+YzIcOgk5UM1yBi26WoUYva2aCr9IRvKdYreAK08OiMdZedpOye0ZdvIYJGcyITwc6YMmrAhP7jZlrk/mDEkf2a4eBp+475o7MJtaC9npqYkToM8vqvx5AGEKqXt7/f1/paOY7KsR+VGPQy6k2RkXjWBsXPesZ3d3XLZHE60wAk0EsuJO8A25+uWSB6ILQeRSYYmGea/WIf6kd [email protected]"
            generate_ssh_key: yes

Expected behavior
No connection errors.

Error
Connection errors.

Environment

  • Control node OS: [all]
  • Control node Ansible version: [all]
  • Managed node OS: [all]

Additional context
None.

Setup tasks fails

Describe the bug
Setup tasks (gather_facts) is not working due to ssh authentication process with the wrong user

To Reproduce
Run the playbook from an ansible controller host with an user without ssh permission to remote host but with boostrap_user variable set to a user with right sudo permission and ssh config.

Then when setup task (gather_facts) is executed try to authenticate via ssh with ansible_user instead of bootstrap_user.

I think the problem is in vars/main.yml in this line:

bootstrap_remote_user: "{{ (ansible_user | default(omit, true)) if bootstrap_connect is succeeded else bootstrap_user }}"

Expected behavior
Run playbook normally.

Error
Invalid/incorrect password: OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: auto-mux: Trying existing master
debug1: Control socket "/home/josesalvador/.ansible/cp/1dda857b6e" does not exist
debug2: resolving "goblin.accessett.local" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to goblin.accessett.local [10.6.0.42]ort 22.
debug2: fd 3 setting O_NONBLOCK
debug1: fd 3 clearing O_NONBLOCK
debug1: Connection established.
debug3: timeout: 9992 ms remain after connect
debug1: identity file /home/josesalvador/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory
debug1: identity file /home/josesalvador/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/josesalvador/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/josesalvador/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/josesalvador/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/josesalvador/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/josesalvador/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/josesalvador/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
debug1: Remoterotocol version 2.0, remote software version OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
debug1: match: OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 pat OpenSSH* compat 0x04000000
debug2: fd 3 setting O_NONBLOCK
debug1: Authenticating to goblin.accessett.local:22 as 'josesalvador'
debug3: hostkeys_foreach: reading file "/dev/null"
debug3: send packet: type 20
debug1: SSH2_MSG_KEXINIT sent
debug3: receive packet: type 20
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,ext-info-c
debug2: host key algorithms: [email protected],[email protected],[email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
debug2: ciphers ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: ciphers stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: [email protected],zlib,none
debug2: compression stoc: [email protected],zlib,none
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1
debug2: host key algorithms: ssh-rsa,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519
debug2: ciphers ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: ciphers stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected]
debug2: compression stoc: none,[email protected]
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: compression: [email protected]
debug1: kex: client->server cipher: [email protected] MAC: compression: [email protected]
debug3: send packet: type 30
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug3: receive packet: type 31
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:r1yDyYP249o0gW+eB1J3D05dVcNjTfLm3VN2Ft/1j8g
debug3: hostkeys_foreach: reading file "/dev/null"
debug3: hostkeys_foreach: reading file "/dev/null"
Warning: Permanently added 'goblin.accessett.local,10.6.0.42' (ECDSA) to the list of known hosts.
debug3: send packet: type 21
debug2: set_newkeys: mode 1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: receive packet: type 21
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey after 134217728 blocks
debug2: key: /home/josesalvador/.ssh/id_rsa (0x55db6f077b00), agent
debug2: key: /home/josesalvador/.ssh/id_dsa ((nil))
debug2: key: /home/josesalvador/.ssh/id_ecdsa ((nil))
debug2: key: /home/josesalvador/.ssh/id_ed25519 ((nil))
debug3: send packet: type 5
debug3: receive packet: type 7
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:Q1Qih+kATZWQGhusgCl/Vn3IviPRFFfAAvZthq5DV6s /home/josesalvador/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/josesalvador/.ssh/id_dsa
debug3: no such identity: /home/josesalvador/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /home/josesalvador/.ssh/id_ecdsa
debug3: no such identity: /home/josesalvador/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /home/josesalvador/.ssh/id_ed25519
debug3: no such identity: /home/josesalvador/.ssh/id_ed25519: No such file or directory
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
debug3: send packet: type 50
debug2: we sent a password packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.

Environment

  • Control node OS: Ubuntu 18.04
  • Control node Ansible version: 2.8.3
  • Managed node OS: Ubuntu 18.04

Role need Ansible version >=2.8

Describe the bug
Because of python3 usage without static declaration of ansible_python_interpreter this role only works for newer linux distributions under use of Ansible 2.8 or higher.

To Reproduce
Run this role with ansible 2.7

Expected behavior

Error

Environment

  • Control node OS: [e.g. Debian 9]
  • Control node Ansible version: [e.g. 2.7.X]
  • Managed node OS: [e.g. CentOS 7]

Additional context
Change minimal required ansible version in meta data.

Missing python-lxml package from CentOS systems

Describe the bug
The role doesn't check for the python-lxml package which is required for the xml module.

To Reproduce
Steps to reproduce the behavior:

  1. Run this role:
  2. Attempt to run a task which uses the xml module
  3. Error shows 'No module named lxml'

Error
image

Environment

  • Control node OS: CentOS 7
  • Control node Ansible version: 2.8.2
  • Managed node OS: CentOS 7

This command has to be run under the root user

Describe the bug
Hello, I wanted to disable root login, and use another user named "ansible". This "ansible" user is a sudoer user and has all root privileges. The "install bootstrap packages" require to be run under the root user? Is there any way I can bypass this because I don't want to use root?

Playbook

- hosts: all
  #become: yes
  remote_user: ansible
  become_method: sudo
  gather_facts: no
  roles:
    - role: robertdebock.bootstrap

Output
TASK [robertdebock.bootstrap : install bootstrap packages]
failed: [xxx.xxx.xxx] (item=python3) => {"ansible_loop_var": "item", "attempts": 3, "changed": false, "item": "python3", "msg": "This command has to be run under the root user.", "results": []}

Expected behavior
Should install python if user got sudo privilege

Environment

  • Control Node: MacOS
  • Control Node Ansible Ver: Ansible 2.9.3
  • Managed Node: CentOS 8

Not all OS' have /etc/*-release

This role bases it's actions on a pattern found in /etc/*-release. Not all OS's have this file, it's a bit fragile. Maybe it's better to base the actions on the available package manager.

On some (digitalocean) distributions: bash: /usr/bin/python: No such file or directory

Describe the bug
On some digitalocean images an error appears when bootstrapping a machine. This happens on the first task.

I can only reproduce the issue from TravisCI (control-node) to DigitalOcean (managed nodes) on specific images.

To Reproduce
Steps to reproduce the behavior:

  1. Do an update to the ansible-integration repository.
  2. See the error appear in the build.

Expected behavior
A bootstrapped system, without this error.

Logfiles

fatal: [node]: UNREACHABLE! => {"changed": false, "msg": "EOF on stream; last 300 bytes received: u'bash: /usr/bin/python: No such file or directory\\n'", "unreachable": true}

Environment

  • OS controler node: Ubuntu 14.04.5 LTS using Python 2.7.14.
  • OS managed node: fedora-28-x64, ubuntu-18-04-x64
  • Ansible version of control node: ansible-2.6.2

Additional context
Bootstrapping works on these managed nodes:

  • debian-9-x64
  • centos-7-x64

When trying from my laptop, I can't reproduce the issue.

CentOS 8 support

Jim sent me a mail with a request to support RHEL 8/CentOS 8. Here is the contents of the mail.

Thanks Jim for your feedback!

  1. No version of Python is pre-installed on a CentOS 8 minimal install. robertdebock.bootstrap attempts to install, but fails because of package names; bootstrap wants to install python, but in the CentOS 8 default repos the Python install packages are named python2 and python36.

  2. The reason bootstrap tries to install python is because CentOS 8 now uses dnf for the installer (yum is just a symlink to dnf on CentOS 8), so /vars/main.yml logic uses bootstrap_dnf_packages instead of bootstrap_yum_packages, resulting in trying to install python.

  3. There appears to be a subtle error in vars/main.yml that causes default _bootstrap_packages and _bootstrap_stable_packages to be chosen instead of os-version-specific package lists. Here is a fix:

-bootstrap_ansible_distribution_major_version: ansible_distibution_major_version | default('none')
+bootstrap_ansible_distribution_major_version: "{{ ansible_distribution_major_version | default('none') }}"
  1. yum-plugin-ovl is not available in the repos and probably does not apply.

  2. There does not appear to be a policycoreutils-python in the repos. I’ve not investigated this.

  3. meta/main.yml needs version 8 added.

Suggestion: Move to Python 3 for Ubuntu hosts

Is your feature request related to a problem? Please describe.

  • EOL of python 2.7
  • support for python 3 being stable since ansible 2.5
  • ansible firewalld module does not work with Ubuntu 18.04 LTS

Describe the solution you'd like
Install python 3 packages instead of python 2 for Ubuntu hosts.

Describe alternatives you've considered
Overwrite bootstrap_apt_packages, _bootstrap_packages and _bootstrap_stable_packages.

I can prepare a pull request.

Ansible 2.5 is (almost) available.

ISSUE TYPE
  • Feature Idea
ANSIBLE VERSION
2.5, what else?
SUMMARY

Ansible 2.5 should be available tomorrow, 15th of March 2018.

All builds (.travis.yml) sould be updated with:

env:

  - ansible_version=">=2.3,<2.4"
  - ansible_version=">=2.4,<2.5"
  - ansible_version=">=2.5,<2.6"
EXPECTED RESULTS

Successful builds, and working code against Ansible 2.5

Add possibility to update package manager caches

I tried to use the ansible-role-java in conjunction with the ansible-role-bootstrap on containers for those the package cache was removed and observed that installing of packages fail due to lack of data about available packages.

Because of dependent roles use the package Ansible module it's not possible to use options update_cache available in some modules (e.g. yum).

I would like to propose to add an additional switch/feature like update_packages_cache to the role ansible-role-bootstrap.

I can do some work to implement that feature by myself.

What to do you think about that proposal?

Switch to "strategy: free" in molecule

Your environment

ansible, molecule & travis.

What are you seeing?

Sometimes builds time out.

What were you expecting?

Switching to strategy: free may:

  • Speed up the build
  • Prevent timeouts.

This is a feature any Ansible role may benefit from.

running bootstrap against centos8 fails with "The conditional check 'bootstrap_wait_for_host is boolean' failed"

Describe the bug

Have used this role for a long time (last update was 6+ months before), did update today to latest version robertdebock.bootstrap, 4.3.6

Playbook

my used playbook is simple:
YOUR PLAYBOOK HERE

---
- name: bootstrap all hosts
  hosts: all
  become: yes
  gather_facts: yes

  roles:
    - role: robertdebock.bootstrap
      bootstrap_user: root
---

Output

TASK [robertdebock.bootstrap : include assert.yml] ******************************************************************
included: /home/lnxadm/.ansible/roles/robertdebock.bootstrap/tasks/assert.yml for cos8e.local.net

TASK [robertdebock.bootstrap : test if bootstrap_user is set correctly] *********************************************
ok: [cos8e.local.net]

TASK [robertdebock.bootstrap : test if bootstrap_wait_for_host is set correctly] ************************************
fatal: [cos8e.local.net]: FAILED! => {"msg": "The conditional check 'bootstrap_wait_for_host is boolean' failed. The error was: template error while templating string: no test named 'boolean'. String: {% if bootstrap_wait_for_host is boolean %} True {% else %} False {% endif %}"}

Then i removed the offending lines from assert and main files:

--- assert.yml
- name: test if bootstrap_wait_for_host is set correctly
  assert:
    that:
      - bootstrap_wait_for_host is defined
 #     - bootstrap_wait_for_host is boolean
    quiet: yes
---- mail.yml	
#- name: wait for host
#  wait_for:
#    port: "{{ ansible_port | default('22') }}"
#    host: "{{ (ansible_ssh_host | default(ansible_host) | default(inventory_hostname)) }}"
#  connection: local
#  become: no
#  when:
#    - ansible_connection is defined
#    - ansible_connection not in [ "docker", "container" ]
#    - bootstrap_wait_for_host | bool

it worked then...

Environment

  • Control node OS: [e.g. Debian 9] (cat /etc/os-release)
    NAME="Ubuntu"
    VERSION="20.04.1 LTS (Focal Fossa)"
    ID=ubuntu
    ID_LIKE=debian
    PRETTY_NAME="Ubuntu 20.04.1 LTS"
    VERSION_ID="20.04"
    HOME_URL="https://www.ubuntu.com/"
    SUPPORT_URL="https://help.ubuntu.com/"
    BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
    PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
    VERSION_CODENAME=focal
    UBUNTU_CODENAME=focal

  • Control node Ansible version: [e.g. 2.9.1] (ansible --version)
    ansible 2.9.6
    config file = /etc/ansible/ansible.cfg
    configured module search path = ['/home/lnxadm/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
    ansible python module location = /usr/lib/python3/dist-packages/ansible
    executable location = /usr/bin/ansible
    python version = 3.8.5 (default, Jul 28 2020, 12:59:40) [GCC 9.3.0]

  • Managed node OS: [e.g. CentOS 7] (cat /etc/os-release)

Please consider sponsoring me.
NAME="CentOS Linux"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"

Make dependencies implicit.

Your environment

GitHub and Galaxy.

What are you seeing?

All Ansible roles now now explicitly mention depending roles in meta/main.yml. To make roles more portable I'd like to switch to implicit dependencies; remove the dependencies inmeta/main.yml and add them in README.md and molecule/*/playbook.yml.

This issue applies to all Ansible Roles.

"test if bootstrap_wait_for_host is set correctly" fails

Description

The run fails because a conditionals check can't executed.
The bug was introduced in 005c7e0

---
  - hosts: testeinzeln
    become: yes
    gather_facts: false
    max_fail_percentage: 20%

    roles:
      - { role: robertdebock.bootstrap, tags: "bootstrap" }
      - { role: ryandaniels.create_users, tags: "user", become: yes }
      - { role: nickjj.ansible-user, tag: "ansible", become: yes }

    vars:
      ### nickjj.ansible-users
      user_name: "ansible-user"
      user_local_ssh_key_path: "/home/mg/ansible/id_rsa_ansible_user_pub"
      user_enable_passwordless_sudo: True
      ### reobertdebock.bootstrap
      bootstrap_user: mg
      bootstrap_wait_for_host: no
      bootstrap_timeout: 1
      bootstrap_retries: 1
      ### ansible
      ansible_user: "mg"
      ansible_password: "XXXXXXXXXXXX"
      ansible_become_password: "XXXXXXXXXXXX"
      ansible_ssh_common_args: "'-o StrictHostKeyChecking=no'"

# Nach dem ersten durchlaufen ist keine Anmeldung mehr per Passwort & ssh möglich. Somit scheitert auch der Versuch das Playbook ein zweites mal durchlaufen zu lassen.

--> Complete Repo

Output

mg@ansible:~/ansible$ ansible-playbook playbooks/base/1_bootstrap.yml -i inventories/inventory

PLAY [testeinzeln] **************************************************************************************************************************************************************************

TASK [robertdebock.bootstrap : include assert.yml] ******************************************************************************************************************************************
included: /home/mg/ansible/roles/robertdebock.bootstrap/tasks/assert.yml for vm-test.grote.lan

TASK [robertdebock.bootstrap : test if bootstrap_user is set correctly] *********************************************************************************************************************
ok: [vm-test.grote.lan]

TASK [robertdebock.bootstrap : test if bootstrap_wait_for_host is set correctly] ************************************************************************************************************
fatal: [vm-test.grote.lan]: FAILED! => {"msg": "The conditional check 'bootstrap_wait_for_host is boolean' failed. The error was: template error while templating string: no test named 'boolean'. String: {% if bootstrap_wait_for_host is boolean %} True {% else %} False {% endif %}"}

NO MORE HOSTS LEFT **************************************************************************************************************************************************************************

NO MORE HOSTS LEFT **************************************************************************************************************************************************************************

PLAY RECAP **********************************************************************************************************************************************************************************
vm-test.grote.lan          : ok=2    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0

Environment

  • Control node OS:
mg@ansible:~/ansible$ uname -a
Linux ansible 5.4.65-1-pve #1 SMP PVE 5.4.65-1 (Mon, 21 Sep 2020 15:40:22 +0200) x86_64 x86_64 x86_64 GNU/Linux
mg@ansible:~/ansible$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.04"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
mg@ansible:~/ansible$ ansible --version
ansible 2.10.1
  config file = /home/mg/ansible/ansible.cfg
  configured module search path = ['/home/mg/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/mg/.local/lib/python3.8/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.8.5 (default, Jul 28 2020, 12:59:40) [GCC 9.3.0]

  • Managed node OS:
mg@lxc-test:~/.ssh$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.04"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

Boostrap really need to use "root" user could it just user become true and become methode sudo and remote_user that I specified

The current bootstrap implementation is breaking my ansible flow...

I only want to install xrdp and ends out needing 3 dependencies roles... I would be easier to render xrdp role self contained...

TASK [robertdebock.bootstrap : install bootstrap packages] ********************************************************************************************************************************************************
tes - mkstemp (13: Permission denied)\nE: Failed to write temporary StateFile /var/lib/apt/extended_states\n", "rc": 100, "stderr": "E: Could not create temporary file for /var/lib/apt/extended_states - mkstemp failed: [10.2.24.27] (item=gnupg) => {"ansible_loop_var": "item", "changed": false, "item": "gnupg", "msg": "'/usr/bin/apt-mark manual gnupg' failed: E: Could not create temporary file for /var/lib/apt/extended_states - mkstemp (13: Permission denied)\nE: Failed to write temporary StateFile /var/lib/apt/extended_states\n", "rc": 100, "stderr": "E: Could not create temporary file for /var/lib/apt/extended_states - mkstemp (13: Permission denied)\nE: Failed to write temporary StateFile /var/lib/apt/extended_states\n", "stderr_lines": ["E: Could not create temporary file for /var/lib/apt/extended_states - mkstemp (13: Permission denied)", "E: Failed to write temporary StateFile /var/lib/apt/extended_states"], "stdout": "gnupg set to manually installed.\n", "stdout_lines": ["gnupg set to manually installed."]}
ded_states - mkstemp (13: Permission denied)\nE: Failed to write temporary StateFile /var/lib/apt/extended_states\n", "stderr_lines": ["E: Could not create temporary file for /var/lib/apt/extended_states - mkste

Ubuntu 18.04 (manage node and master node)

Variable Expansion in vars is not working as expected

Describe the bug
Neither ansible_user, nor bootstrap_user are being honoured at runtime.

To Reproduce
Steps to reproduce the behavior:

  1. I'm using a vanilla CentOS 7 LXC instance, but I imagine this would happen regardless. Host is called cent7ct in this example
  2. Ensure you can log in manually as root@cent7ct, accept hostkey, etc
  3. Run the following playbook
---

- hosts: lxc,vm
  gather_facts: no
  user: root

  roles:
    - robertdebock.bootstrap
  vars:
    bootstrap_user: root
    bootstrap_remote_user: root
    bootstrap_retries: 0

Expected behavior
A successful install of the various bootstrap bits

Error

TASK [robertdebock.bootstrap : register apk] **********************************************************************************************************************************************************************
task path: /home/greg/.ansible/roles/robertdebock.bootstrap/tasks/main.yml:27
<cent7ct> ESTABLISH SSH CONNECTION FOR USER: None
<cent7ct> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/home/greg/.ansible/cp/f513c56a8b -tt cent7ct 'apk --version'
<cent7ct> (255, '', "Warning: Permanently added 'cent7ct,192.168.0.245' (ECDSA) to the list of known hosts.\r\nPermission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n")
fatal: [cent7ct]: UNREACHABLE! => {
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: Warning: Permanently added 'cent7ct,192.168.0.245' (ECDSA) to the list of known hosts.\r\nPermission denied (publickey,gssapi-keyex,gssapi-with-mic,password).", 
    "unreachable": true
}

Note the line ESTABLISH SSH CONNECTION FOR USER: None

Environment

  • Control node OS: Debian 9, up to date as of 2019-02-21
  • Control node Ansible version: 2.7.7 from pip
  • Managed node OS: CentOS 7 from a while ago (dated 20171212)

Additional context
Patching 4d04560#diff-6d62b73b3f46cfa11f6466d08cf45303R4 to specify root on this line works as expected, so I'm guessing that the variable resolution is occurring earlier than expected.

ansible connection local fo Vagrant testing

Proposed feature

Testing for a custom port in Vagrant and it failed when "wait for port to be available"

Imgur

Rationale

Vagrant environment testing need ansible connection local

Additional context

Add any other context about the feature request here.

Please consider sponsoring me.

Should Arch bootstrap use "pacman --noconfirm"?

Describe the bug
When bootstrapping a new Arch Linux system, the bootstrap plays are hanging on what I think is the pacman -Syu system update command.

Expected behavior
Plays should run to completion.

Error
Edited excerpt from playbook run with -vvv:

[...]
TASK [robertdebock.bootstrap : install software with pacman] *********************************
task path: /Users/stu/.ansible/roles/robertdebock.bootstrap/tasks/main.yml:89
<foo.foo> ESTABLISH CONNECTION FOR USER: stu on PORT 22 TO foo.foo
<foo.foo> EXEC sudo -H -S  -p "[sudo via ansible, key="some key string"] password: " -u root /bin/sh -c 'echo BECOME-SUCCESS-some key string; pacman -Syu ; pacman -T python sudo || pacman -S --noconfirm python sudo'

Environment

  • Control node OS: MacOS
  • Control node Ansible version: 2.6.2
  • Managed node OS: Arch Linux

Additional context
Should the first use of pacman -Syu above have a --noconfirm option set?

This role is incompatible with ansible 4.0.0

Describe the bug

"msg": "The conditional check 'bootstrap_wait_for_host is boolean' failed. The error was: template error while templating string: no test named 'boolean'. String: {% if bootstrap_wait_for_host is boolean %} True {% else %} False {% endif %}"

In a role:

- name: ansible-users | deps | import bootstrap role
  import_role:
    name: robertdebock.bootstrap
  become: True

Output

See below, I can PR removing the checks, but I don't know if it's expected

Environment

  • Control node OS: your rdebock/fedora32 container
  • See my molecule tests

README Galaxy role downloads badge fix

Proposed feature

Got a fix for the download badge.

|GitHub|GitLab|Downloads|Version| |------|------|---------|-------| |[![github](https://github.com/robertdebock/ansible-role-bootstrap/workflows/Ansible%20Molecule/badge.svg)](https://github.com/robertdebock/ansible-role-bootstrap/actions)|[![gitlab](https://gitlab.com/robertdebock-iac/ansible-role-bootstrap/badges/master/pipeline.svg)](https://gitlab.com/robertdebock-iac/ansible-role-bootstrap)|[![downloads](https://img.shields.io/ansible/role/d/24451)](https://galaxy.ansible.com/robertdebock/bootstrap)|[![Version](https://img.shields.io/github/release/robertdebock/ansible-role-bootstrap.svg)](https://github.com/robertdebock/ansible-role-bootstrap/releases/)|

'https://img.shields.io/ansible/role/d/24451' moved here:: badges/ansible-role

gives you

Ansible Role

Rationale

Track your downloads as usual before everything went bananas.

Additional context

Happy holidays mate.

Please consider sponsoring me.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.