Benoît Hubert 2a03aaf2b0 uninstall sudo fix 1 年之前
..
README.md 20e133954b uninstall sudo 1 年之前
ansible.cfg c3468b8edb ma propre doc WIP 1 年之前
inventory.ini c3468b8edb ma propre doc WIP 1 年之前
playbook-initial-setup-revert.yml 2a03aaf2b0 uninstall sudo fix 1 年之前
playbook-initial-setup.yml 890a7f7c4c Playbook for initial setup 1 年之前
root-creds.yml 890a7f7c4c Playbook for initial setup 1 年之前

README.md

Setup initial Debian 12 avec Ansible

Contexte :

  • On vient d'installer une debian 12.5 sans rien.
  • On veut automatiser la création de comptes utilisateurs

Mes deux hosts sur le LAN sont :

  • debian-111 : 192.168.1.18
  • debian-112 : 192.168.1.85
  • debian-113 : 192.168.1.109

Etapes

  • Création inventory.ini avec les deux hosts.
  • Création playbook qui va

    • installer sudo
    • créer des utilisateurs avec droits sudo

NOTE sur utilisation macOS comme control node

Voir ansible-macos-control-node/README.md.

On va utiliser une VM debian comme control node.

Setup control node Debian 12.5

Install Ansible

Mon control node est 192.168.1.181.

  • su - (pas encore installé sudo)
  • apt install gnupg curl
  • les commandes données dans la doc officielle pour l'install sur Debian ne marchent pas
  • curl -o ansible.gpg "https://keyserver.ubuntu.com/pks/lookup?fingerprint=on&op=get&search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367"
  • gpg --dearmour -o /usr/share/keyrings/ansible-archive-keyring.gpg ansible.gpg (toujours comme root)
  • echo "deb [signed-by=/usr/share/keyrings/ansible-archive-keyring.gpg] http://ppa.launchpad.net/ansible/ansible/ubuntu $UBUNTU_CODENAME main" | tee /etc/apt/sources.list.d/ansible.list
  • apt update
  • apt install -y ansible

MIEUX de tout faire en sudo je suppose. On va aussi installer etckeeper.

Install Git et clone repo...

... où j'ai ma config ansible.cfg et mon inventory.ini.

D'abord commandes ad-hoc pour tester

Ping

$ ansible -i ./inventory.ini all -m ping -u debian -k
SSH password:
192.168.1.18 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}
192.168.1.85 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}
192.168.1.109 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

setup

ansible -i ./inventory.ini all -m setup -k

Produit une énorme sortie.

Setup initial

sudo n'est pas installé sur les managed nodes.

On va essayer de tout config en utilisant un vault pour le password root.

$ ansible-vault create creds.yml

stocke dedans :

root_password: ******

Playbook playbook-initial-setup.yml.

Le jouer :

ansible-playbook -i inventory.ini playbook-initial-setup.yml --ask-vault-pass -u debian -k

-k pour demander password de l'utilisateur régulier debian --ask-vault-pass pour demander le mot de passe du vault

revert cette étape

  • apt uninstall sudo

→ c'est pas tellement simple... mais en même temps sans sudo on fait ce qu'on peut.

Peut-être qu'un -K pour juste demander le mot de passe root sans le mettre dans un vault...