Ansible Docker Install



Its time to get the Ansible installed with the following commands. Sudo apt-get update sudo apt-get install software-properties-common sudo apt-add-repository ppa:ansible/ansible sudo apt-get update sudo apt-get install ansible. Press Y when it asks for After the installation, let’s test whether by creating and running a demo playbook. The community.docker.docker connection plugin uses the Docker CLI utility to connect to Docker containers and execute modules in them. It essentially wraps docker exec and docker cp. This connection plugin is supported by the ansible.posix.synchronize module. Ansible is a software tool that provides simple but powerful automation for cross-platform computer support. It is primarily intended for IT professionals, who use it for application deployment, updates on workstations and servers, cloud provisioning, configuration management, intra-service orchestration, and nearly anything a systems administrator does on a weekly or daily basis. Aug 05, 2020 This tutorial provides a starting point on how to install Docker, create and run Docker containers on CentOS/RHEL 8/7, but barely scratches the surface of Docker. Step 1: Install and Configure Docker. Earlier versions of Docker were called docker or docker-engine, if you have these installed, you must uninstall them before installing a newer.

The community.docker collection offers several modules and plugins for orchestrating Docker containers and Docker Swarm.

Most of the modules and plugins in community.docker require the Docker SDK for Python. The SDK needs to be installed on the machines where the modules and plugins are executed, and for the Python version(s) with which the modules and plugins are executed. You can use the community.general.python_requirements_info module to make sure that the Docker SDK for Python is installed on the correct machine and for the Python version used by Ansible.

Note that plugins (inventory plugins and connection plugins) are always executed in the context of Ansible itself. If you use a plugin that requires the Docker SDK for Python, you need to install it on the machine running ansible or ansible-playbook and for the same Python interpreter used by Ansible. To see which Python is used, run ansible--version.

You can install the Docker SDK for Python for Python 2.7 or Python 3 as follows:

For Python 2.6, you need a version before 2.0. For these versions, the SDK was called docker-py, so you need to install it as follows:

Please install only one of docker or docker-py. Installing both will result in a broken installation. If this happens, Ansible will detect it and inform you about it. If that happens, you must uninstall both and reinstall the correct version.

If in doubt, always install docker and never docker-py.

You can connect to a local or remote API using parameters passed to each task or by setting environment variables. The order of precedence is command line parameters and then environment variables. If neither a command line option nor an environment variable is found, Ansible uses the default value provided under Parameters.

Parameters¶

Most plugins and modules can be configured by the following parameters:

docker_host

The URL or Unix socket path used to connect to the Docker API. Defaults to unix://var/run/docker.sock. To connect to a remote host, provide the TCP connection string (for example: tcp://192.0.2.23:2376). If TLS is used to encrypt the connection to the API, then the module will automatically replace ‘tcp’ in the connection URL with ‘https’.

api_version

The version of the Docker API running on the Docker Host. Defaults to the latest version of the API supported by the Docker SDK for Python installed.

timeout

The maximum amount of time in seconds to wait on a response from the API. Defaults to 60 seconds.

tls

Secure the connection to the API by using TLS without verifying the authenticity of the Docker host server. Defaults to false.

validate_certs

Secure the connection to the API by using TLS and verifying the authenticity of the Docker host server. Default is false.

cacert_path

Use a CA certificate when performing server verification by providing the path to a CA certificate file.

cert_path

Path to the client’s TLS certificate file.

key_path

Path to the client’s TLS key file.

tls_hostname

When verifying the authenticity of the Docker Host server, provide the expected name of the server. Defaults to localhost.

ssl_version

Provide a valid SSL version number. The default value is determined by the Docker SDK for Python.

Ansible Docker Install

Environment variables¶

You can also control how the plugins and modules connect to the Docker API by setting the following environment variables.

For plugins, they have to be set for the environment Ansible itself runs in. For modules, they have to be set for the environment the modules are executed in. For modules running on remote machines, the environment variables have to be set on that machine for the user used to execute the modules with.

DOCKER_HOST

The URL or Unix socket path used to connect to the Docker API.

DOCKER_API_VERSION

The version of the Docker API running on the Docker Host. Defaults to the latest version of the API supportedby docker-py.

DOCKER_TIMEOUT

The maximum amount of time in seconds to wait on a response from the API.

DOCKER_CERT_PATH

Path to the directory containing the client certificate, client key and CA certificate.

DOCKER_SSL_VERSION

Provide a valid SSL version number.

DOCKER_TLS

Secure the connection to the API by using TLS without verifying the authenticity of the Docker Host.

DOCKER_TLS_VERIFY

Secure the connection to the API by using TLS and verify the authenticity of the Docker Host.

For working with a plain Docker daemon, that is without Swarm, there are connection plugins, an inventory plugin, and several modules available:

docker connection plugin

The community.docker.docker connection plugin uses the Docker CLI utility to connect to Docker containers and execute modules in them. It essentially wraps dockerexec and dockercp. This connection plugin is supported by the ansible.posix.synchronize module.

docker_api connection plugin

The community.docker.docker_api connection plugin talks directly to the Docker daemon to connect to Docker containers and execute modules in them.

docker_containers inventory plugin
Ansible Docker Install

The community.docker.docker_containers inventory plugin allows you to dynamically add Docker containers from a Docker Daemon to your Ansible inventory. See Working with dynamic inventory for details on dynamic inventories.

The docker inventory script is deprecated. Please use the inventory plugin instead. The inventory plugin has several compatibility options. If you need to collect Docker containers from multiple Docker daemons, you need to add every Docker daemon as an individual inventory source.

docker_host_info module

The community.docker.docker_host_info module allows you to retrieve information on a Docker daemon, such as all containers, images, volumes, networks and so on.

docker_login module

The community.docker.docker_login module allows you to log in and out of a remote registry, such as Docker Hub or a private registry. It provides similar functionality to the dockerlogin and dockerlogout CLI commands.

docker_prune module

The community.docker.docker_prune module allows you to prune no longer needed containers, images, volumes and so on. It provides similar functionality to the dockerprune CLI command.

docker_image module

The community.docker.docker_image module provides full control over images, including: build, pull, push, tag and remove.

Ansible docker install
docker_image_info module

The community.docker.docker_image_info module allows you to list and inspect images.

docker_network module

The community.docker.docker_network module provides full control over Docker networks.

docker_network_info module

The community.docker.docker_network_info module allows you to inspect Docker networks.

docker_volume_info module

The community.docker.docker_volume_info module provides full control over Docker volumes.

docker_volume module

The community.docker.docker_volume module allows you to inspect Docker volumes.

docker_container module

The community.docker.docker_container module manages the container lifecycle by providing the ability to create, update, stop, start and destroy a Docker container.

docker_container_info module

The community.docker.docker_container_info module allows you to inspect a Docker container.

The community.docker.docker_compose moduleallows you to use your existing Docker compose files to orchestrate containers on a single Docker daemon or on Swarm.Supports compose versions 1 and 2.

Next to Docker SDK for Python, you need to install docker-compose on the remote machines to use the module.

The community.docker.docker_machine inventory plugin allows you to dynamically add Docker Machine hosts to your Ansible inventory.

The community.docker.docker_stack module module allows you to control Docker stacks. Information on stacks can be retrieved by the community.docker.docker_stack_info module, and information on stack tasks can be retrieved by the community.docker.docker_stack_task_info module.

The community.docker collection provides multiple plugins and modules for managing Docker Swarms.

Swarm management¶

One inventory plugin and several modules are provided to manage Docker Swarms:

docker_swarm inventory plugin

The community.docker.docker_swarm inventory plugin allows you to dynamically add all Docker Swarm nodes to your Ansible inventory.

docker_swarm module

The community.docker.docker_swarm module allows you to globally configure Docker Swarm manager nodes to join and leave swarms, and to change the Docker Swarm configuration.

docker_swarm_info module

The community.docker.docker_swarm_info module allows you to retrieve information on Docker Swarm.

docker_node module

The community.docker.docker_node module allows you to manage Docker Swarm nodes.

docker_node_info module

The community.docker.docker_node_info module allows you to retrieve information on Docker Swarm nodes.

Configuration management¶

The community.docker collection offers modules to manage Docker Swarm configurations and secrets:

docker_config module

The community.docker.docker_config module allows you to create and modify Docker Swarm configs.

docker_secret module

The community.docker.docker_secret module allows you to create and modify Docker Swarm secrets.

Swarm services¶

Docker Swarm services can be created and updated with the community.docker.docker_swarm_service module, and information on them can be queried by the community.docker.docker_swarm_service_info module.

Still using Dockerfile to build images? Check out ansible-bender, and start building images from your Ansible playbooks.

Use Ansible Operator to launch your docker-compose file on OpenShift. Go from an app on your laptop to a fully scalable app in the cloud with Kubernetes in just a few moments.

These days, Ansible is a big buzzword in the IT industry. It is a radical automation DevOps tool for IT orchestration.

Ansible is an open-source tool by Red Hat. It helps to configure, provision, deploy and manage your system infrastructure across without facing any hassle.

Ansible is agentless and requires no extra software with it. It can connect via SSH, remote PowerShell, and with remote APIs. It also uses a human-readable language, YAML so that one can easily adapt Ansible.

You have everything you need for your system automation in a complete package through Ansible.

Ansible Install Docker-py

How to install Ansible on Linux

Ansible Docker Install

In this first article on Ansible, you’ll learn about installing Ansible on various Linux distributions.

Personally, I prefer to get system information before installing any kind of software. Because It may help you in many aspects for different versions of an operating system.

Installing Ansible on Ubuntu and other Debian-based Linux distributions

Ansible is normally found in the default repositories of Ubuntu and Debian. You can use the command below to install it:

Ansible Pip Install Docker

If Ansible package cannot be found, you can add the project’s PPA (personal package archive) to your system. You can add Ansible PPA by using the following command:

As you have added a new software source, you have to update your system to get packages available in the PPA. Update the software repositories list with this command:

Finally, you can install Ansible using this command:

After successful completion of the above command, Ansible will be installed on your system.

You should verify the installation by checking the version of Ansible you just installed:

Installing Ansible on CentOS, Red Hat, Fedora, SUSE etc

To install the latest version on Ansible in CentOS , you should install EPEL (Extra Packages for Enterprise Linux) first using the below command:

Install

Then you can easily install Ansible using this command:

You can check Ansible version using this command:

and its output

How to uninstall Ansible

If you want to uninstall Ansible for some reasons, you can easily do that.

Install Ansible On Docker Container

Uninstall Ansible from Ubuntu/Debian

You can uninstall or remove Ansible from Ubuntu. Use this command:

Ansible Docker Install Centos

But if you want to remove Ansible along with its all dependency packages. Use this command:

Uninstall Ansible from CentOS/Red Hat

You can uninstall or remove Ansible from CentOS using this command:

In the next article, I will cover how to connect and access several machines through SSH connection establishment using Ansible. Stay tuned for the Ansible tutorial series.

Become a Member for FREE
Become a member to get the regular Linux newsletter (2-4 times a month) and access member-only contents.

Join the conversation.