--- - hosts: test-script become: true tasks: # Installer Git si nécessaire - name: Installer Git ansible.builtin.package: name: git state: present # Cloner le dépôt Git - name: Cloner le dépôt Git ansible.builtin.git: repo: 'https://laforgedeflo.myflocanhostme.fr/florent/Semaphore.git' dest: /root/semaphore-repo version: main # Copier le script manage_firewall.sh dans le répertoire root - name: Copier le script manage_firewall.sh dans le répertoire root ansible.builtin.copy: src: /root/semaphore-repo/manage_firewall.sh # Depuis la machine distante dest: /root/manage_firewall.sh # Vers le répertoire root de la machine distante remote_src: yes # Indique que le fichier se trouve déjà sur la machine distante # Copier le script install_manage_firewall.sh dans le répertoire root - name: Copier le script install_manage_firewall.sh dans le répertoire root ansible.builtin.copy: src: /root/semaphore-repo/install_manage_firewall.sh # Depuis la machine distante dest: /root/install_manage_firewall.sh # Vers le répertoire root de la machine distante remote_src: yes # Indique que le fichier se trouve déjà sur la machine distante # Rendre le script manage_firewall.sh exécutable - name: Rendre le script manage_firewall.sh exécutable ansible.builtin.command: cmd: chmod +x /root/manage_firewall.sh # Rendre le script install_manage_firewall.sh exécutable - name: Rendre le script install_manage_firewall.sh exécutable ansible.builtin.command: cmd: chmod +x /root/install_manage_firewall.sh # Exécuter le script install_manage_firewall.sh - name: Exécuter le script install_manage_firewall.sh ansible.builtin.shell: | /bin/bash /root/install_manage_firewall.sh args: creates: /path/to/expected/output/or/file # Vérifie si le script a déjà été exécuté