diff --git a/concourse/pipeline-concourse.yml b/concourse/pipeline-concourse.yml new file mode 100644 index 0000000..f6a6e51 --- /dev/null +++ b/concourse/pipeline-concourse.yml @@ -0,0 +1,79 @@ +# ============================================== +# Pipeline Concourse - Déploiement Automatique +# ============================================== +# Surveille le repo Git et déploie automatiquement + +resource_types: [] + +resources: + # Repo Git local (polling toutes les 30 secondes) + - name: repo + type: git + icon: gitlab + check_every: 30s + source: + uri: https://forge.gwenaelremond.fr/romain/ansiblenginx.git + branch: main + +jobs: + # Job principal : Déploiement automatique + - name: deploy-bricoloc + plan: + # 1. Récupère le code depuis Git + - get: repo + trigger: true # Déclenche automatiquement sur changement + + # 2. Déploie sur le VPS + - task: deploy-to-vps + config: + platform: linux + + image_resource: + type: registry-image + source: + repository: python + tag: "3.11-slim" + + inputs: + - name: repo + + params: + ssh_private_key: ((ssh_private_key)) + vps_host: ((vps_host)) + vps_user: ((vps_user)) + + run: + path: /bin/bash + args: + - -exc + - | + # Installer les dépendances + apt-get update && apt-get install -y openssh-client rsync sshpass + pip install ansible + + # Configurer SSH + mkdir -p ~/.ssh + echo "$ssh_private_key" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + ssh-keyscan -H $vps_host >> ~/.ssh/known_hosts 2>/dev/null + + cd repo + + # Créer l'inventaire dynamique + cat > inventory.yml << EOF + all: + hosts: + vps1: + ansible_host: $vps_host + ansible_user: $vps_user + ansible_ssh_private_key_file: ~/.ssh/id_rsa + children: + webservers: + hosts: + vps1: + EOF + + # Lancer le playbook Ansible + ansible-playbook -i inventory.yml playbook.yml + + echo "✅ Déploiement terminé sur $vps_host"