88 lines
2.7 KiB
YAML
88 lines
2.7 KiB
YAML
---
|
|
- name: Déployer Backend Go
|
|
hosts: edge
|
|
become: true
|
|
|
|
tasks:
|
|
- name: Installer Go et dépendances
|
|
command: |
|
|
incus exec veza-backend -- bash -c 'apt update && apt install -y wget git build-essential'
|
|
|
|
- name: Télécharger et installer Go
|
|
command: |
|
|
incus exec veza-backend -- bash -c '
|
|
cd /tmp
|
|
wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz
|
|
tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz
|
|
echo "export PATH=\$PATH:/usr/local/go/bin" >> /root/.bashrc
|
|
'
|
|
|
|
- name: Créer l'application Backend
|
|
command: |
|
|
incus exec veza-backend -- bash -c 'cat > /opt/backend.go << EOF
|
|
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"log"
|
|
"net/http"
|
|
"os"
|
|
)
|
|
|
|
func main() {
|
|
port := os.Getenv("PORT")
|
|
if port == "" { port = "8080" }
|
|
|
|
http.HandleFunc("/api/health", func(w http.ResponseWriter, r *http.Request) {
|
|
w.Header().Set("Content-Type", "application/json")
|
|
json.NewEncoder(w).Encode(map[string]string{
|
|
"status": "ok",
|
|
"service": "veza-backend",
|
|
"version": "1.0.0",
|
|
})
|
|
})
|
|
|
|
http.HandleFunc("/api/", func(w http.ResponseWriter, r *http.Request) {
|
|
w.Header().Set("Content-Type", "application/json")
|
|
json.NewEncoder(w).Encode(map[string]string{
|
|
"message": "Veza V5 Ultra Backend API",
|
|
"version": "1.0.0",
|
|
"endpoint": r.URL.Path,
|
|
})
|
|
})
|
|
|
|
log.Printf("Backend starting on :%s", port)
|
|
http.ListenAndServe(":"+port, nil)
|
|
}
|
|
EOF'
|
|
|
|
- name: Compiler le backend
|
|
command: |
|
|
incus exec veza-backend -- bash -c '
|
|
cd /opt
|
|
/usr/local/go/bin/go mod init veza-backend
|
|
/usr/local/go/bin/go build -o veza-backend backend.go
|
|
'
|
|
|
|
- name: Créer le service systemd
|
|
command: |
|
|
incus exec veza-backend -- bash -c 'cat > /etc/systemd/system/veza-backend.service << EOF
|
|
[Unit]
|
|
Description=Veza Backend API
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
ExecStart=/opt/veza-backend
|
|
Restart=always
|
|
Environment=PORT=8080
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF'
|
|
|
|
- name: Démarrer le service
|
|
command: |
|
|
incus exec veza-backend -- systemctl daemon-reload
|
|
incus exec veza-backend -- systemctl enable veza-backend
|
|
incus exec veza-backend -- systemctl start veza-backend
|