How 
to 
install 
docker 
using 
Ansible 
on 
Ubuntu 
22.04

Automating Docker CE Installation on Ubuntu with Ansible 🚀

Greetings! 👋 I wanted to share a quick guide on automating the installation of Docker CE across various Ubuntu Linux machines, regardless of their hosting environment (AWS, Azure, etc.).

The versatility of this automated process not only simplifies the installation but also enhances scalability, making it an invaluable resource for system administrators and developers in diverse cloud environments.

Why Ansible?

Ansible is the secret sauce behind this seamless automation. It's a powerful open-source tool designed to simplify complex IT tasks, configuration management, and application deployment. With its agentless architecture and human-readable scripts (written in YAML) called playbooks, Ansible empowers both developers and system administrators.

By automating routine tasks, Ansible boosts operational efficiency, reduces errors, and ensures consistency across systems. Whether it's configuring servers, deploying applications, or managing network devices, Ansible is a game-changer in modern IT environments.

Simplify with Ansible

While you could manually follow Docker's documentation here for installation, things get tricky when managing multiple installations across various inventories. Here's where Ansible shines, simplifying the process and ensuring a smooth setup.

Bonus: Ansible Semaphore

For those who appreciate a graphical user interface (GUI) to streamline processes and organize playbooks, consider checking out "Ansible Semaphore" at ansible-semaphore.com. This tool isn't mandatory, but it significantly improves the overall experience. Watch this video for more insights.

TL;DR

Ansible's yaml approach is so readable that I'm just going to dump everything here without breaking it down, so here's a complete version of the Ansible playbook:

- name: Install Docker (including compose)
  hosts: all
  become: true

  tasks:
    - name: Update apt cache
      apt:
        update_cache: yes

    - name: Install dependencies via apt
      apt:
        name:
          - ca-certificates
          - curl
          - gnupg

    - name: Add Docker's official GPG key
      apt_key:
        url: https://download.docker.com/linux/ubuntu/gpg
        state: present

    - name: Add Docker's APT repository
      apt_repository:
        repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_lsb.codename }} stable
        state: present

    - name: Update apt cache
      apt:
        update_cache: yes

    - name: Install Docker
      apt:
        name:
          - docker-ce
          - docker-ce-cli
          - containerd.io
          - docker-buildx-plugin
          - docker-compose-plugin
        state: present

    - name: Add user to Docker group
      user:
        name: root # Please use another user, not root :-)
        append: yes
        groups: docker

Conclusion

Thanks for reading! Feel free to reach out to me for any questions or just have a chat. 🚀 #DevOps #Automation #Docker #Ansible

Affiliate Links

Fastmail

I've been using Fastmail for over a year now, and it's been a game-changer for managing multiple email accounts. With their platform, you can seamlessly handle different email providers in one place. New users get 10% off their subscription!

Code: 7aa3c189

Tangem wallet

If you're looking for a secure and easy-to-use hardware wallet for your crypto assets, I recommend Tangem. Use my referral link to get a 10% discount on your first purchase!

Code: ZQ6MMC

1Password

1Password is the best password manager I've used. It's secure, easy to use, and has saved me countless hours.

Using these referral links helps support my work. I only recommend products I use and trust. Thank you for your support!