Table des matières

Ansible

Installer ansible

sudo apt-add-repository ppa:ansible/ansible
 
sudo apt install ansible
Les NOUVEAUX paquets suivants seront installés :
  ansible ansible-core python-babel-localedata python3-babel python3-jinja2 python3-jmespath python3-kerberos
  python3-ntlm-auth python3-requests-kerberos python3-requests-ntlm python3-resolvelib python3-winrm python3-xmltodict
  sshpass

Définir le user ssh, changer le port :

$ ansible <all|the_host> -e "ansible_user=debian" -e "ansible_port=30001" -m ping

OpenStack

Voir aussi: openstack

Install Openstack python client

sudo apt-get install python-os-client-config python-shade

Get the Openstack.rc file

Then source it (api password will be asked), and give a try

$ wget https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/openstack.py
$ chmod +x openstack.py
$ source xxxxxxxxxxx-openrc.sh
$ ./openstack.py --list

Docker

Pratique d'utiliser Docker pour tester des playbooks.

Attention, on ne peut pas tout faire car il manque la gestion des services, mais pour des manipulations de fichiers ça le fait. Il y a des images avec systemd mais quid des nouveaux ports à exposer ? Je n'ai pas encore trouvé de solution toute simple :-(.

Une image docker à partir de Debian pour faire tourner un serveur OpenSSH

Aperçu de l'idée de la Dockerfile:

#
# Run an OpenSSH server
#
# Build:
# docker build -t "cyrille37/openssh-server" -f openssh.dockerfile .
# Run:
# docker run -p 22:22 --name "sshd" --rm cyrille37/openssh-server
# Stop:
# docker stop sshd
#

FROM debian:12-slim

LABEL MAINTAINER Cyrille37

RUN apt -y update && apt -y install openssh-server sudo locales \
    && rm -rf /var/lib/apt/lists/*

# set locale to fr_FR to allow french accented characters
RUN localedef -i fr_FR -c -f UTF-8 -A /usr/share/locale/locale.alias fr_FR.UTF-8
ENV LANG fr_FR.utf8

# create user "milou" with password "secret" and permits `sudo` without password
RUN useradd -m -s /bin/bash -G sudo -u 1000 milou
RUN usermod -aG sudo milou
RUN  echo 'milou:secret' | chpasswd
RUN echo "milou ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

# Mandatory to avoid "Missing privilege separation directory: /run/sshd"
RUN service ssh start

EXPOSE 22

CMD ["/usr/sbin/sshd","-D"]

Pour aller plus loin:

Vagrant