Benoît Hubert 941285b17d ajouter debian aux sudoers пре 1 година
..
README.md 941285b17d ajouter debian aux sudoers пре 1 година
ansible.cfg c3468b8edb ma propre doc WIP пре 1 година
inventory.ini c3468b8edb ma propre doc WIP пре 1 година
playbook-add-debian-sudoers.yml 941285b17d ajouter debian aux sudoers пре 1 година
playbook-initial-setup-revert.yml 68ad9429af add -y to avoid hanging forever пре 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

Ajouter debian aux sudoers

ansible-playbook -i inventory.ini playbook-add-debian-sudoers.yml --ask-vault-pass -u debian -k

→ 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...