Installation Ansible

Objectifs de certification

RHCE EX294 (RHEL8)

Si vous préparez un examen de certification, ce document poursuit les objectifs suivant :

  • 3. Installation et configuration d’un nœud de contrôle Ansible
    • 3.1. Installer les paquets requis

Introduction

Ce document se fonde sur la page officielle Ansible Installation Guide. Pour commencer une automation et une gestion avec Ansible, vous avez principalement besoin :

  • d’une station Linux et de ses outils
  • Python 3
  • git
  • un éditeur de texte
  • un client openssh

Si vous utilisez une solution de lab comme https://github.com/goffinet/ansible-interactive-tutorial, cela n’est nullement nécessaire pour la plupart des opérations qui suivent.

Autrement, il est conseillé de travailler avec la virtualisation Libvirt/KVM sur un serveur Centos8 … cela ne doit pas être difficile à trouver.

1. Fedora, RHEL et CentOS

sudo dnf install ansible

Sur RHEL7 et CentOS7

sudo yum install ansible

Les fichiers RPMs pour RHEL 7 et RHEL 8 sont disponibles dans le repository Ansible Engine.

Pour l’activer sur RHEL 8 :

sudo subscription-manager repos --enable=ansible-2-for-rhel-8-x86_64-rpms

Pour l’activer sur RHEL 7 :

sudo subscription-manager repos --enable rhel-7-server-ansible-2.9-rpms

Pour construire le RPM à partir des sources et l’installer :

git clone https://github.com/ansible/ansible.git
cd ./ansible
make rpm
sudo rpm -Uvh ./rpm-build/ansible-*.noarch.rpm

2. Dernières versions via Apt (Ubuntu)

Les programmes pour sont disponibles en PPA ici.

Pour configurer PPA et installer ansible :

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

Note : Dans les anciennes versions Ubuntu, “software-properties-common” est appelé “python-software-properties”.

Les paquets Debian/Ubuntu packages peut être construits par les sources :

make deb

3. Dernières versions via Apt (Debian)

La procédure Debian est indentique à celle Ubuntu PPA.

Ajouter cette ligne au fichier /etc/apt/sources.list :

deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main

Exécuter les commandes :

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
sudo apt-get update
sudo apt-get install ansible

Note : Cette méthode a été vérifiée avec des sources Trusty sources en Debian Jessie et Stretch mais pourrait ne pas être supportée dans les versions plus récentes.

4. Installation via PIP

Centos

sudo yum install -y python3-pip
sudo alternatives --set python /usr/bin/python3
sudo pip3 install ansible --user

Debian/Ubuntu

sudo apt update
sudo apt -y install python3-pip
sudo pip3 install --upgrade pip
sudo pip3 install ansible --user
sudo apt -y install sshpass

5. Windows 10 Pro WSL

Avec une version Windows 10 Pro, il est possible d’utiliser de commander Ansible avec WSL, voir Can Ansible run on Windows? :

Il n’est pas possible de faire fonctionner Ansible sur un hôte Windows alors qu’il peut le gérer. Mais Ansible peut être exécuté sous Windows Subsystem for Linux (WSL). Notons que WSL n’est pas supporté par Microsoft ou Ansible; il ne devrait pas être utilisé sur des systèmes en production.

Pour installer Ansible sur WSL, il est nécessaire d’exécuter ces commandes dans un terminal bash :

sudo apt-get update
sudo apt-get install python-pip git libffi-dev libssl-dev -y
pip install ansible pywinrm

Pour exécuter Ansible à partir des sources plutôt qu’une version pour WSL, il faut désinstaller la version présente de pip et puis cloner le repo git.

pip uninstall ansible -y
git clone https://github.com/ansible/ansible.git
source ansible/hacking/env-setup

# to enable Ansible on login, run the following
echo ". ~/ansible/hacking/env-setup -q' >> ~/.bashrc

6. Script d’installation automatique

Script d’installation automatique de Ansible pour Centos ou Ubuntu.

cat << EOF > ./setup-ansible.sh
#!/bin/bash
if [[ ! $UID == 0 ]] ; then echo "you must be root" ; exit ; fi
#!/bin/bash
if [[ -f /etc/redhat-release ]] ; then
yum -y install epel-release && yum -y install ansible git
fi
if [[ -f /etc/lsb-release ]] ; then
apt-get update && \
apt-get upgrade --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" && \
apt-get -y install python3-pip && \
pip3 install --upgrade pip && \
pip3 install ansible --user && \
apt-get -y install sshpass
fi
EOF
bash -x ./setup-ansible.sh

7. Image Docker utilisée dans le tutoriel interactif

Source : ansible-interactive-tutorial/images/ansible-tutorial/Dockerfile

FROM goffinet/nutsh:latest

RUN apk add --no-cache openssh fping curl ansible

WORKDIR /root

RUN mkdir -p /root/.ssh && chmod 700 /root/.ssh && mkdir /etc/ansible

COPY common/ansible.cfg /etc/ansible/ansible.cfg

COPY ["common/id_rsa", "common/id_rsa.pub", "/root/.ssh/"]
COPY ["common/.vimrc", "common/.profile", "/root/"]

RUN chmod 644 /root/.ssh/id_rsa.pub && chmod 600 /root/.ssh/id_rsa

ENTRYPOINT ["nutsh", "run", "/tutorials"]

Laisser un commentaire