Benoît Hubert 7c00d31149 Merge branch 'main' of git.hubbros.fr:bh/my-ansible-experiments před 1 rokem
..
README.md 941285b17d ajouter debian aux sudoers před 1 rokem
ansible.cfg c3468b8edb ma propre doc WIP před 1 rokem
inventory.ini 7c00d31149 Merge branch 'main' of git.hubbros.fr:bh/my-ansible-experiments před 1 rokem
playbook-add-debian-sudoers.yml 941285b17d ajouter debian aux sudoers před 1 rokem
playbook-create-sudoers.yml 860df6bdca add stuff před 1 rokem
playbook-initial-setup-revert.yml 68ad9429af add -y to avoid hanging forever před 1 rokem
playbook-initial-setup.yml 890a7f7c4c Playbook for initial setup před 1 rokem
playbook-install-python-alpine.yml 6e0810a4aa ajouts hosts alpine + playbook install python s/ alpine před 1 rokem
playbook-install-vim.yml 860df6bdca add stuff před 1 rokem
playbook-whoami.yml 860df6bdca add stuff před 1 rokem
root-creds.yml 890a7f7c4c Playbook for initial setup před 1 rokem

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