From 42dba701392d528b847b7192b36fd30c103e8606 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Wed, 19 Nov 2025 21:30:26 +0100 Subject: [PATCH] add hiden doc Signed-off-by: GnomeZworc --- Agent Network.md | 77 ++- images/archi_network.drawio.svg | 835 +++++++++++++++++++++++++ images/syonard/Syonard.mm | 150 +++++ images/syonard/Syonard.svg | 1007 +++++++++++++++++++++++++++++++ 4 files changed, 2068 insertions(+), 1 deletion(-) create mode 100644 images/syonard/Syonard.mm create mode 100644 images/syonard/Syonard.svg diff --git a/Agent Network.md b/Agent Network.md index 24072e2..ab0733d 100644 --- a/Agent Network.md +++ b/Agent Network.md @@ -191,4 +191,79 @@ CreateBridge("br-vx-1", "") // root LinkBridgeNetns("veth1", "veth1-peer", "/var/run/netns/netns-1", "br-vx-1", "br-subnet-1") AddIPToBridge("/var/run/netns/netns-1", "br-subnet-1", "10.0.1.1/32") AddLinkLocalRoute("/var/run/netns/netns-1") -``` \ No newline at end of file +``` + +# systemd pour dnsmasq et metadata + +Oui, c’est **tout à fait possible** avec la bibliothèque `go-systemd`, en particulier via le **module `dbus`**, qui permet de démarrer, arrêter et interroger l'état des unités `systemd`. + +Voici un exemple minimal de code Go pour **démarrer** et **arrêter** une unité comme `dnsmasq@vpc-00003_br-00000.service` : + +--- + +### ✅ Exemple de code pour start/stop via `go-systemd`: + +```go +package main + +import ( + "context" + "fmt" + "log" + "time" + + "github.com/coreos/go-systemd/v22/dbus" +) + +func main() { + conn, err := dbus.NewSystemdConnectionContext(context.Background()) + if err != nil { + log.Fatalf("Erreur de connexion à systemd: %v", err) + } + defer conn.Close() + + unitName := "dnsmasq@vpc-00003_br-00000.service" + + // Démarrer l'unité + jobID, err := conn.StartUnitContext(context.Background(), unitName, "replace", nil) + if err != nil { + log.Fatalf("Erreur au démarrage de l'unité: %v", err) + } + fmt.Printf("Service démarré (job ID: %s)\n", jobID) + + time.Sleep(3 * time.Second) // attendre un peu + + // Arrêter l'unité + jobID, err = conn.StopUnitContext(context.Background(), unitName, "replace", nil) + if err != nil { + log.Fatalf("Erreur à l'arrêt de l'unité: %v", err) + } + fmt.Printf("Service arrêté (job ID: %s)\n", jobID) +} +``` + +--- + +### 🔐 Privilèges requis : + +* Il faut que votre programme Go soit exécuté avec des **droits suffisants** (souvent `sudo`) pour interagir avec systemd **au niveau système**. + +Exemple d'exécution : + +```bash +sudo ./mon-binaire-go +``` + +--- + +### 📦 Dépendance : + +Ajoutez ce module dans votre `go.mod` : + +```bash +go get github.com/coreos/go-systemd/v22 +``` + +--- + +Souhaitez-vous aussi vérifier l’état de l’unité (`Active`, `Failed`, etc.) ou juste la gestion start/stop ? diff --git a/images/archi_network.drawio.svg b/images/archi_network.drawio.svg index e69de29..f8f43b2 100644 --- a/images/archi_network.drawio.svg +++ b/images/archi_network.drawio.svg @@ -0,0 +1,835 @@ + + + + + + + + + + +
+
+
+ a-cluster-1-routeur-1 +
+
+
+
+ + a-cluster-1-routeur-1 + +
+
+
+ + + + + + + + + + +
+
+
+ a-cluster-1-kvm-1 +
+
+
+
+ + a-cluster-1-kvm-1 + +
+
+
+ + + + + + + +
+
+
+ 10.1.1/24 +
+
+
+
+ + 10.1.1/24 + +
+
+
+ + + + + + + + + + + + + +
+
+
+ a-cluster-1-kvm-2 +
+
+
+
+ + a-cluster-1-kvm-2 + +
+
+
+ + + + + + + +
+
+
+ a-cluster-1-kvm-3 +
+
+
+
+ + a-cluster-1-kvm-3 + +
+
+
+ + + + + + + + + + +
+
+
+ a-cluster-1-routeur-2 +
+
+
+
+ + a-cluster-1-routeur-2 + +
+
+
+ + + + + + + + + + +
+
+
+ a-cluster-2-routeur-1 +
+
+
+
+ + a-cluster-2-routeur-1 + +
+
+
+ + + + + + + + + + +
+
+
+ a-cluster-2-kvm-1 +
+
+
+
+ + a-cluster-2-kvm-1 + +
+
+
+ + + + + + + +
+
+
+ 10.1.2/24 +
+
+
+
+ + 10.1.2/24 + +
+
+
+ + + + + + + + + + + + + +
+
+
+ a-cluster-2-kvm-2 +
+
+
+
+ + a-cluster-2-kvm-2 + +
+
+
+ + + + + + + +
+
+
+ a-cluster-2-kvm-3 +
+
+
+
+ + a-cluster-2-kvm-3 + +
+
+
+ + + + + + + + + + +
+
+
+ a-cluster-2-routeur-2 +
+
+
+
+ + a-cluster-2-routeur-2 + +
+
+
+ + + + + + + + + + +
+
+
+ 10.1/16 +
+
+
+
+ + 10.1/16 + +
+
+
+ + + + + + + + + + + + + + + + + + + +
+
+
+ a-routeur-1 +
+
+
+
+ + a-routeur-1 + +
+
+
+ + + + + + + +
+
+
+ a-routeur-2 +
+
+
+
+ + a-routeur-2 + +
+
+
+ + + + + + + + + + + + + + + + +
+
+
+ b-cluster-1-routeur-1 +
+
+
+
+ + b-cluster-1-routeur-1 + +
+
+
+ + + + + + + + + + +
+
+
+ b-cluster-1-kvm-1 +
+
+
+
+ + b-cluster-1-kvm-1 + +
+
+
+ + + + + + + +
+
+
+ 10.2.1/24 +
+
+
+
+ + 10.2.1/24 + +
+
+
+ + + + + + + + + + + + + +
+
+
+ b-cluster-1-kvm-2 +
+
+
+
+ + b-cluster-1-kvm-2 + +
+
+
+ + + + + + + +
+
+
+ b-cluster-1-kvm-3 +
+
+
+
+ + b-cluster-1-kvm-3 + +
+
+
+ + + + + + + + + + +
+
+
+ b-cluster-1-routeur-2 +
+
+
+
+ + b-cluster-1-routeur-2 + +
+
+
+ + + + + + + + + + +
+
+
+ b-cluster-2-routeur-1 +
+
+
+
+ + b-cluster-2-routeur-1 + +
+
+
+ + + + + + + + + + +
+
+
+ b-cluster-2-kvm-1 +
+
+
+
+ + b-cluster-2-kvm-1 + +
+
+
+ + + + + + + +
+
+
+ 10.2.2/24 +
+
+
+
+ + 10.2.2/24 + +
+
+
+ + + + + + + + + + + + + +
+
+
+ b-cluster-2-kvm-2 +
+
+
+
+ + b-cluster-2-kvm-2 + +
+
+
+ + + + + + + +
+
+
+ b-cluster-2-kvm-3 +
+
+
+
+ + b-cluster-2-kvm-3 + +
+
+
+ + + + + + + + + + +
+
+
+ b-cluster-2-routeur-2 +
+
+
+
+ + b-cluster-2-routeur-2 + +
+
+
+ + + + + + + + + + +
+
+
+ 10.2/16 +
+
+
+
+ + 10.2/16 + +
+
+
+ + + + + + + + + + + + + + + + + + + +
+
+
+ b-routeur-1 +
+
+
+
+ + b-routeur-1 + +
+
+
+ + + + + + + +
+
+
+ b-routeur-2 +
+
+
+
+ + b-routeur-2 + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + Text is not SVG - cannot display + + + +
\ No newline at end of file diff --git a/images/syonard/Syonard.mm b/images/syonard/Syonard.mm new file mode 100644 index 0000000..f02450f --- /dev/null +++ b/images/syonard/Syonard.mm @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/syonard/Syonard.svg b/images/syonard/Syonard.svg new file mode 100644 index 0000000..bc42b36 --- /dev/null +++ b/images/syonard/Syonard.svg @@ -0,0 +1,1007 @@ + + +SyonardTwo (this was outscale)AgentMetadatahttps://docs.outscale.com/fr/userguide/Acc%C3%A9der-aux-metadata-et-user-data-d-une-VM.htmlNetworkList L2 on hostRemove interfaceAdd interfaceStorageDetach volumeAsk libvirtDetach volume/VMAttach volumeAsk libvirtConnect volume/VMCreate volumeCreate a qcow2 fileLifecycleCheck local statusVM is upAsk libvirtvm still up ?NoSend Notification toIntelYesStop VMremove from local DBremove from dhcpif last vm remove networkStop VMAsk libvirtStop VMStart VMStart VMAsk libvirtStart VMQEMUDHCPMETADATACreate NetworkAdd Gateway IPIPv4Add bgp route to this ip on this hyperviseurNat trafic to VMAdd Public ip on loopbackIPv6Add bgp route to this vm on this hyperviseurAdd bridge / full configAdd dhcp confAdd in local db