• [^] # Re: Devops

    Posté par . En réponse au journal Kickstart et Ansible pour automatiser des installations/configurations de systèmes Linux. Évalué à 1.

    Tes fichiers sont bien quelque part

    On s'est mal compris, je ne parlais pas des fichiers ou quoi que ce soit d'autre, je parlais d'exécuter plusieurs actions en même temps, tirées d'un même fichier.
    En l'occurrence, pour Vim, j'ai une fonction :

    vim() {
     install vim
     install vim-gnome
     sudo update-alternatives --set editor /usr/bin/vim.basic || abort "Failed setting vim as the default editor"
     mv_old_conf vim
     mv_old_conf viminfo
     mv_old_conf vimrc
     xdg-mime default gvim.desktop text/plain
    }

    Je peux alors lancer ./postinstall.sh vim pour exécuter ces 7 actions. Je ne connais pas de manière, avec Ansible, pour appeler 7 plays en une seule commande aussi simple, sauf à faire un playbook pour chaque programme, puis utiliser les rôles, etc etc. Donc au lieu d'un seul script, j'aurais plus de 50 petits fichiers...

    Tu as tes machines qui sont bien installé

    Tu utilises le pluriel, là c'est déjà mal parti pour qu'on se comprenne.
    Comme je l'ai dit plus haut, je parle du déploiement de ma postinstallation sur mon poste de travail. Une seule machine, sans aucun autre outil à côté. Si j'ai plusieurs machines à gérer, j'utilise un outil dédié. Ansible, SaltStack ou autre.

    Pour répondre à ta question, mon script repasse sur lui-même sans (trop de) problème. Je ne suis pas allé jusqu'à vérifier que je gère l'idempotence à 100%, mais ça ne doit pas en être très loin.

    ce script de postinstallation, je l'utilise une fois tous les 6 mois quand j'installe la version suivante d'Ubuntu.
    En cas d'erreur dans le script, je le corrige et je le relance. La plupart du temps, c'est lié à des changements entre deux versions d'Ubuntu, par exemple récemment ça a été le passage de gsettings à dconf pour pas mal d'applis...

    Ensuite je le lance occasionnellement (et partiellement, comme dans l'exemple de vim ci-dessus) pour rétablir des conf que j'ai un peu trop tripatouillées à la main.

    apt install git ansible && git clone <url> && ansible-playbook installation.yml

    Et vu que je ne me rappellerais jamais de cette commande en entier, utilisée une fois tous les 6 mois sur une machine vierge, il faudrait la mettre dans un script :)

    Comme tu le dis, chacun fait comme il veut. Pour ma part et pour cet usage, je ne vois pas d'intérêt à utiliser Ansible : un script shell est bien plus flexible et facile à utiliser in fine pour cet usage à mon sens.