simplification et rajout install git et vim

This commit is contained in:
2022-11-15 15:20:14 +01:00
parent 0a6c39884b
commit 013e55c843

View File

@@ -2,23 +2,21 @@
## Remarques préliminaires: ## Remarques préliminaires:
le fichier hosts est un fichier d'inventaire ansible contenant mes cibles
## Télécharger des fichiers sur la cible avec get_url ## Télécharger des fichiers sur la cible avec get_url
Récupérer dans /tmp le fichier : https://starship.rs/install.sh Récupérer dans /tmp le fichier : https://starship.rs/install.sh
```bash ```bash
ansible -i hosts -o -u root all -m get_url -a "url=https://starship.rs/install.sh dest=/tmp mode=0700" ansible -o all -m get_url -a 'url=https://starship.rs/install.sh dest=/tmp mode=0700'
``` ```
## Exécuter des scripts à distance avec command ## 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à Exécuter le script précédemment récupéré, uniquement si le fichier /usr/local/bin/starship n'existe pas déjà
```bash ```bash
ansible -i hosts -o -u root all -m command -a 'cmd="/tmp/install.sh --yes" creates="/usr/local/bin/starship"' ansible -o all -m command -a '/tmp/install.sh --yes creates="/usr/local/bin/starship"'
#ou, si on n'a pas pensé à rendre le fichier exécutable précédemment: #ou, si on n'a pas pensé à rendre le fichier exécutable précédemment:
ansible -i hosts -o -u root all -m command -a 'cmd="sh /tmp/install.sh --yes" creates="/usr/local/bin/starship"' ansible -o all -m command -a 'sh tmp/install.sh --yes creates="/usr/local/bin/starship"'
``` ```
## Déployer un fichier avec copy ## Déployer un fichier avec copy
@@ -32,18 +30,30 @@ S'assurer de la présence du fichier /etc/profile.d/zstarship.sh avec le contenu
Pour un contenu aussi léger, pas besoin d'avoir à maintenir un fichier local comme source, on va plutôt utiliser l'argument _content_: Pour un contenu aussi léger, pas besoin d'avoir à maintenir un fichier local comme source, on va plutôt utiliser l'argument _content_:
```bash ```bash
ansible -i hosts -o -u root all -m copy -a 'content="eval \"$(/usr/local/bin/starship init bash)\"" dest=/etc/profile.d/zstarship.sh' ansible -o all -m copy -a 'content="eval \"$(/usr/local/bin/starship init bash)\"" dest=/etc/profile.d/zstarship.sh'
``` ```
⚠️ aux quotes ! ⚠️ aux quotes !
## S'assurer de la présende de git sur les cibles
```bash
ansible -o all -m package -a 'name=git state=present'
```
## Cloner des dépôts avec git ## Cloner des dépôts avec git
Cloner le dépôt https://infra.opendoor.fr/git/tom/vim_formation.git dans /opt/vim/ Cloner le dépôt https://infra.opendoor.fr/git/tom/vim_formation.git dans /opt/vim/
```bash ```bash
ansible -i hosts -o -u root all -m git -a "repo=https://infra.opendoor.fr/git/tom/vim_formation.git dest=/opt/vim" ansible -o all -m git -a "repo=https://infra.opendoor.fr/git/tom/vim_formation.git dest=/opt/vim"
```
## S'assurer de la présende de vim sur les cibles
```bash
ansible -o all -m package -a 'name=vim state=present'
``` ```
## S'assurer de l'absence de fichier avec file ## S'assurer de l'absence de fichier avec file
@@ -51,7 +61,7 @@ ansible -i hosts -o -u root all -m git -a "repo=https://infra.opendoor.fr/git/t
Supprimer le fichier /etc/vimrc existant Supprimer le fichier /etc/vimrc existant
```bash ```bash
ansible -i hosts -o -u root all -m file -a "path=/etc/vim state=absent" ansible -o all -m file -a "path=/etc/vim state=absent"
``` ```
## Gérer des liens symboliques, toujours avec file ## Gérer des liens symboliques, toujours avec file
@@ -59,7 +69,7 @@ ansible -i hosts -o -u root all -m file -a "path=/etc/vim state=absent"
Faire un lien symbolique /etc/vimrc vers /opt/vim/vimrc Faire un lien symbolique /etc/vimrc vers /opt/vim/vimrc
```bash ```bash
ansible -i hosts -o -u root all -m file -a "path=/etc/vimrc state=link src=/opt/vim/vimrc" ansible -o all -m file -a "path=/etc/vimrc state=link src=/opt/vim/vimrc"
``` ```
## Modifier des fichiers avec lineinfile ## Modifier des fichiers avec lineinfile
@@ -67,26 +77,26 @@ ansible -i hosts -o -u root all -m file -a "path=/etc/vimrc state=link src=/opt
dans /etc/vimrc, assurez-vous que la ligne 62 (qui commence par set list listchars...) soit _décommentée_ dans /etc/vimrc, assurez-vous que la ligne 62 (qui commence par set list listchars...) soit _décommentée_
```bash ```bash
ansible -i hosts -o -u root all -m lineinfile -a 'path=/etc/vimrc regex="^\"(set list listchars.*)" line=\1 backrefs=true' ansible -o all -m lineinfile -a 'path=/etc/vimrc regex="^\"(set list listchars.*)" line=\1 backrefs=true'
#ou en recopiant la ligne entière #ou en recopiant la ligne entière
ansible -i hosts -o -u root all -m lineinfile -a 'path=/etc/vimrc regex="^\"set list listchars.*" line=set list listchars=nbsp:▶,tab:··,trail:¤,extends:▶,precedes:◀' ansible -o all -m lineinfile -a 'path=/etc/vimrc regex="^\"set list listchars.*" line=set list listchars=nbsp:▶,tab:··,trail:¤,extends:▶,precedes:◀'
``` ```
## Planifier l'exécution de la tâche "_Exécuter des scripts à distance avec command_" toutes les semaines le dimanche soir avec cron ## Planifier l'exécution de la tâche "_Exécuter des scripts à distance avec command_" toutes les semaines le dimanche soir avec cron
```bash ```bash
ansible -i hosts -o -u root -m cron -a 'name="update starship" cron_file="starship" hour="12" minute="01" weekday="sun" job="sh /tmp/install.sh -y" user="root' ansible -o -m cron -a 'name="update starship" cron_file="starship" hour="12" minute="01" weekday="sun" job="sh /tmp/install.sh -y" user="root'
``` ```
```bash ```bash
# avec distribution horaire aléatoire ⚠️ principe d'indempotence non respecté # avec distribution horaire aléatoire ⚠️ principe d'indempotence non respecté
ansible -i hosts -o -u root -m cron -a 'name="update starship" cron_file="starship" hour="12" minute="{{ 59 | random() }}" weekday="sun" job="sh /tmp/install.sh -y" user="root"' ansible -o -m cron -a 'name="update starship" cron_file="starship" hour="12" minute="{{ 59 | random() }}" weekday="sun" job="sh /tmp/install.sh -y" user="root"'
``` ```
```bash ```bash
# avec distribution horaire aléatoire principe d'indempotence respecté # avec distribution horaire aléatoire principe d'indempotence respecté
ansible -i hosts -o -u root -m cron -a 'name="update starship" cron_file="starship" hour="12" minute="{{ 59 | random(seed=inventory_hostname) }}" weekday="sun" job="sh /tmp/install.sh -y" user="root"' ansible -o -m cron -a 'name="update starship" cron_file="starship" hour="12" minute="{{ 59 | random(seed=inventory_hostname) }}" weekday="sun" job="sh /tmp/install.sh -y" user="root"'
``` ```