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.
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.
[^] # Re: Devops
Posté par Sébastien Maccagnoni . En réponse au journal Kickstart et Ansible pour automatiser des installations/configurations de systèmes Linux. Évalué à 1.
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 :
Je peux alors lancer
./postinstall.sh vimpour 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 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.
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.