Ansible is a widely used automation tool that runs seamlessly on Ubuntu, making it an excellent choice for managing infrastructure and applications. This article explores how to install and use Ansible on Ubuntu to simplify automation workflows.

Can Ansible Run on Ubuntu?

Yes, Ansible runs perfectly on Ubuntu, both as a control node (where Ansible is installed and executed) and as a managed node (where Ansible performs tasks). Its compatibility with Ubuntu’s package management system and extensive module library ensures efficient automation on Ubuntu systems.

Key Features:

  • Native Support: Available in Ubuntu’s default repositories.
  • Cross-Platform Management: Manage Ubuntu alongside other operating systems.
  • Rich Module Library: Includes modules tailored for Ubuntu-based tasks.

Installing Ansible on Ubuntu

Step 1: Update the System

Ensure your Ubuntu system is up-to-date:

sudo apt update && sudo apt upgrade -y

Step 2: Add the Ansible PPA (Optional)

To get the latest Ansible version, add the official Ansible PPA:

sudo apt install -y software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible

Step 3: Install Ansible

Install Ansible using the apt package manager:

sudo apt install -y ansible

Step 4: Verify the Installation

Check the installed Ansible version:

ansible --version

Step 5: Configure the Inventory File

The default inventory file is located at /etc/ansible/hosts. Add your managed nodes:

[ubuntu_servers]
192.168.1.10 ansible_user=ubuntu ansible_ssh_private_key_file=/path/to/key.pem

Running Ansible Playbooks on Ubuntu

Example: Updating Packages

Create a playbook to update all packages on Ubuntu servers:

- name: Update Ubuntu packages
  hosts: ubuntu_servers
  tasks:
    - name: Update APT cache
      apt:
        update_cache: yes

    - name: Upgrade all packages
      apt:
        upgrade: dist

Run the playbook:

ansible-playbook -i /etc/ansible/hosts update-packages.yml

Example: Installing Software

Create a playbook to install Nginx on Ubuntu:

- name: Install Nginx on Ubuntu
  hosts: ubuntu_servers
  tasks:
    - name: Install Nginx
      apt:
        name: nginx
        state: present

    - name: Start and enable Nginx
      service:
        name: nginx
        state: started
        enabled: yes

Common Use Cases for Ansible on Ubuntu

  1. Server Configuration: Automate server setup, including user management, firewall rules, and software installation.

  2. Application Deployment: Deploy web applications, databases, and services efficiently.

  3. Infrastructure Management: Manage cloud instances, Docker containers, or Kubernetes clusters on Ubuntu.

  4. Compliance Enforcement: Ensure servers adhere to organizational security policies.

Best Practices for Using Ansible on Ubuntu

  1. Secure Connections: Use SSH keys for authentication and encrypt sensitive data with Ansible Vault.

  2. Use Variables: Parameterize playbooks to adapt to different environments:

    vars:
      package_name: nginx
    
  3. Leverage Roles: Organize complex playbooks into reusable roles for better maintainability:

    roles/
    ├── common/
    │   ├── tasks/
    │   │   └── main.yml
    │   └── vars/
    │       └── main.yml
    
  4. Test Playbooks: Use --check mode to validate playbooks before execution:

    ansible-playbook playbook.yml --check
    
  5. Monitor Performance: Track execution times and resource usage to optimize playbooks.

Conclusion

Ansible is an excellent automation tool for Ubuntu, enabling you to manage infrastructure and applications with ease. Its integration with Ubuntu’s ecosystem, combined with its powerful features, makes Ansible a go-to solution for automation on Ubuntu systems.

Learn More About Ansible on Ubuntu

Subscribe to the YouTube channel, Medium, and Website, X (formerly Twitter) to not miss the next episode of the Ansible Pilot.

Academy

Explore practical examples of Ansible automation on Ubuntu in Ansible by Examples.

BUY the Complete PDF BOOK to easily Copy and Paste the 250+ Ansible code

Support this project by contributing today.

Patreon Buy me a Pizza