concourse
parent
c6763a6ff8
commit
82165a2482
@ -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"
|
||||||
Loading…
Reference in New Issue