Difference between revisions of "Ansible"

From rbachwiki
Jump to navigation Jump to search
Line 67: Line 67:

  GNU nano 4.8                                                                        servers.yml                                                                                  ---
---                                                                                ---
- hosts: webserver
- hosts: webserver

Revision as of 21:00, 13 June 2022

  • Download and install Miniconda:
curl -OL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
    • You will be prompted several times during the installation process. Review the terms and conditions and select “yes” for each prompt.
  • Restart your shell session for the changes to your PATH to take effect.
exec bash -l
  • Create a new virtual environment for Ansible:
conda create -n ansible-dev python=3
  • Activate the new environment:
conda activate ansible-dev
  • Check your Python version:
python --version

Ubuntu 18.04

sudo apt update
sudo apt install software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt install ansible
  • Verify that Ansible is installed:
ansible --version

Configure Ansible

By default, Ansible’s configuration file location is /etc/ansible/ansible.cfg. In most cases, the default configurations are enough to get you started using Ansible. In this example, you will use Ansible’s default configurations.

  • To view a list of all current configs available to your control node, use the ansible-config command line utility.
ansible-config list

Create an Ansible Inventory

Ansible keeps track of its managed nodes using an inventory file located in /etc/ansible/hosts. In the inventory file, you can group your managed nodes and use these groups to target specific hosts that make up your infrastructure

  • Add your nodes to the default inventory file.

File: /etc/ansible/hosts



Each bracketed label denotes an Ansible group . Grouping your nodes by function will make it easier to run commands against the correct set of nodes.


The /etc/ansible directory will not exist by default in some environments. If you find that this is the case, create it manually with the following command:

mkdir /etc/ansible/

If you are using a non-standard SSH port on your nodes, include the port after a colon on the same line within your hosts file (

Test connection to server

ansible all -u root -m ping --private-key ~/.ssh/ansible

Create a playbook

nano server.yml

--- --- - hosts: webserver

   - name: install apache
       name: apache2
       state: latest

- hosts: fileserver

   - name: install nginx
       name: nginx
       state: latest