How to Install Docker in Debian-like systems with Ansible?

I'm going to show you a live Playbook with some simple Ansible code.

I'm Luca Berton and welcome to today's episode of Ansible Pilot.

Ansible install Docker in Debian-like systems

  • Add Docker key => ansible.builtin.apt_key
  • Add Docker repository => ansible.builtin.apt_repository
  • Update apt cache and install Docker => ansible.builtin.apt

In order to install Docker on a Debian-like system we need to perform three different steps.

The first step is to download the GPG signature key for the repository. You are going to use the ansible.builtin.apt_key Ansible module.

This encrypted key verifies the genuinity of the packages and the repository and guarantees that the software is the same as Docker releases.

The second step is to add the add Docker repository to the distribution. It's an extra website were apt, your distribution package manager looks like for software.

You are going to use the ansible.builtin.apt_repository Ansible module.

The third step is to update the apt cache for the available packages and install Docker (docker-ce) using the ansible.builtin.apt Ansible module.

Parameters

  • apt-key url string - URL
  • apt-key state string - present/absent
  • apt_repository repo string - repository
  • apt_repository state string - present/absent
  • apt name string - name or package specific
  • apt state string - latest/present/absent
  • apt update_cache boolean - no/yes

For the ansible.builtin.apt_key Ansible module I'm going to use two parameters: "url" and "state".

The "url" parameter specifies the URL of the repository GPG signature key and the "state" verify that is present in our system after the execution.

For the ansible.builtin.apt_repository Ansible module I'm going to use two parameters: "repo" and "state".

The "repo" parameter specifies the repository parameters and the "state" verify that is present in our system after the execution.

For the ansible.builtin.apt Ansible module I'm going to use three parameters: "name", "state", and "update_cache".

The "name" parameter specifies the package name (Docker in our use-case) and the "state" verify that is present in our system after the execution.

Before installing the package the "update_cache" performs an update of the apt-cache to ensure that the latest version of the package is going to be downloaded.

Links

  • [Install Docker Engine](https://docs.docker.com/engine/install/)

## Playbook

Install Docker in Debian-like systems with Ansible Playbook

updated

Package docker-ce changed name to docker.

```yaml

---

  • name: install Docker

hosts: all

become: true

tasks:

- name: Install apt-transport-https

ansible.builtin.apt:

name:

- apt-transport-https

- ca-certificates

- lsb-release

- gnupg

state: latest

update_cache: true

- name: Add signing key

ans