# Commandes AdHoc ## Ligne de commande ```bash ansible -o -m ping all -u root -k -K ``` 1. identifier tous les éléments de cette ligne de commande 2. expliciter toutes les options utilisées 2. faire le lien entre option et directives de configuration (ansible.cfg) 3. si on omet l'option "-u root", avec quelle identité se fera la connexion ? ## Tâches d'administration système I 1. Lister sur le pad les tâches d'administration système que nous réalisons au quotidien, et que nous souhaiterions automatiser 2. Tenter, pour chaque tâche, d'identifier le(s) module(s) ansible que l'on pourra utiliser ## Tâches d'administration système II ### Télécharger des fichiers sur la cible avec get_url Récupérer dans /tmp le fichier : https://starship.rs/install.sh ### Exécuter des scripts à distance avec command Exécuter le script précédemment récupéré, uniquement si le fichier /usr/local/bin/starship n'existe pas déjà ### Déployer un fichier avec copy S'assurer de la présence du fichier /etc/profile.d/zstarship.sh avec le contenu suivant: ```bash eval "$(/usr/local/bin/starship init bash)" ``` ### Installer des packages avec git S'assurer que les paquets _vim_ et _git_ soit installées sur les cibles. ### Cloner des dépôts avec git Cloner le dépôt https://infra.opendoor.fr/git/tom/vim_formation.git dans /opt/vim/ ### S'assurer de l'absence de fichier avec file Supprimer le fichier /etc/vimrc existant ### Gérer des liens symboliques, toujours avec file Faire un lien symbolique /etc/vimrc vers /opt/vim/vimrc ### Modifier des fichiers avec lineinfile dans /etc/vimrc, assurez-vous que la ligne 62 (qui commence par set list listchars...) soit _décommentée_ ### Planifier l'exécution de la tâche "_Exécuter des scripts à distance avec command_" toutes les semaines le dimanche soir avec cron Comment éviter que cette tâche soit programmée exactement à la même heure pour toutes les machines cibles ? ### Rajouter des blocs de textes dans un fichier avec blockinfile Rajouter dans ~/.ssh/config, sur la machine *pilote* les infos suivantes: ```bash Host machinecible #cf variable inventory_hostname User: formation Port 22 ```