Actualités
n8n est maintenant disponible dans le Serverspace panneau de commande comme un 1-Click App
Serverspace Black Friday
BK
Octobre 11 2025
Mise à jour le 11 octobre 2025

Linux pour DevOps : automatisation et sécurité

Linux

À l'ère moderne du DevOps, l'automatisation Linux L'automatisation des systèmes devient cruciale pour garantir la fiabilité, l'évolutivité et la sécurité de l'infrastructure informatique. Cet article présente une approche globale de l'automatisation avancée. Linux machines virtuelles dans le Serverspace Cloud, couvrant cinq domaines clés : méthodes modernes de planification des tâches passant de cron à systemd-timer, gestion des ressources cloud via API, conteneurisation avec Docker Swarm, surveillance au niveau du noyau avec eBPF et sauvegardes robustes sur un stockage compatible S3. Chaque section comprend des instructions détaillées étape par étape, des scripts prêts à l'emploi et des recommandations pratiques basées sur les dernières bonnes pratiques DevOps.

1_y8RXqoTRK3mufilx3E4fxg

Automatisation de la planification des tâches

Transition de cron à systemd-timer : une approche de planification moderne

Le cron traditionnel, malgré son utilisation répandue, présente un certain nombre de limitations dans les systèmes modernes. Linux systèmes. Systemd-timer offre une alternative plus avancée avec une journalisation améliorée, des capacités de planification flexibles et une intégration native avec l'écosystème systemd.

Comment faire : Convertir une tâche cron en minuteur systemd

Étape 1. Créer le script de tâche

#!/usr/bin/env bash
rsync -a /var/www/ /backup/www-$(date +%F)/

Définissez les autorisations :

chmod 755 /usr/local/bin/backup.sh

Pasted image 20251007142729

Étape 2. Créer le fichier d'unité de service

[Unit]
Description=Backup /var/www to local folder

[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh

Pasted image 20251007142859

Étape 3. Créer le fichier d'unité de minuterie

[Unit]
Description=Run backup daily at 2 AM

[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true

[Install]
WantedBy=timers.target

Pasted image 20251007142945

Étape 4. Activer le service et la minuterie

sudo systemctl daemon-reload
sudo systemctl enable --now backup.timer

Pasted image 20251007143039

Étape 5. Vérifier le fonctionnement

systemctl list-timers backup.timer
journalctl -u backup.service --since today

Pasted image 20251007143100

Pasted image 20251007143129

maxresdefault

Les principaux avantages de systemd-timer incluent la connexion automatique à journalctl, la récupération des événements manqués et la gestion déclarative des dépendances. Les administrateurs système modernes adoptent de plus en plus systemd-timer pour les tâches critiques en raison de sa fiabilité et de son intégration aux services système.

Vérifiez la syntaxe de la planification à l’aide de l’outil intégré :

systemd-analyze calendar "*-*-* 02:00:00"

Pasted image 20251007143205

FAQ sur systemd-timer

Q: Pourquoi le minuteur ne se déclenche-t-il pas exactement à 02h00 ?
A: Les causes possibles incluent un journal systemd plein ou une heure système non synchronisée. Assurez-vous d'avoir une configuration NTP correcte et utilisez le Persistent=true option. systemd peut également ajouter un délai aléatoire pour empêcher l'exécution simultanée de plusieurs temporisateurs.

Q: Comment migrer des tâches cron complexes ?
A: Pour les scripts complexes, créez des fichiers d'unité de service distincts avec des directives de dépendance telles que After=, Requires=, ou Wants= pour assurer un ordre d'exécution correct.

Détails techniques : systemd-timer

  • Débogage: systemctl status <timer>.timer, systemctl list-timers.
  • Planifier les tests : systemd-analyze calendar.
  • Échelonner les exécutions simultanées : RandomizedDelaySec=30.

Scripts de gestion du cloud

API l'automatisation dans le Serverspace risque numérique

Serverspace fournit un puissant RESTful API pour le contrôle programmatique des ressources cloud. API prend en charge la norme HTTP méthodes (GET, POST, PUT, DELETE) et utilise JSON pour l'échange de données, permettant la création, la configuration et la suppression automatisées de machines virtuelles sans intervention manuelle.

Comment faire : créer et supprimer automatiquement des machines virtuelles via API

Étape 1. Stockez votre jeton en toute sécurité


echo "YOUR_TOKEN" > /root/.serverspace_token
chmod 600 /root/.serverspace_token

Pasted image 20251007143445

Étape 2. Script du gestionnaire

#!/usr/bin/env bash
set -euo pipefail

TOKEN=$(< /root/.serverspace_token)
ACTION=${1:-}
NAME=${2:-}

if [[ -z $ACTION || -z $NAME  ]]; then
echo "Usage: $0 {create|delete} <vm-name>"
exit 1
fi

API="https://api.serverspace.io/api/v1"

if [[ $ACTION == "create"  ]]; then
curl -X POST \
"$API/servers" \
-H "content-type: application/json" \
-H "x-api-key: $TOKEN" \
-d '{
"location_id": "am2",
"cpu": 1,
"ram_mb": 2048,
"image_id": "Debian-12-X64",
"name": "'"$NAME"'",
"networks": [{"bandwidth_mbps": 50}],
"volumes": [{"name": "boot", "size_mb": 51200}],
"ssh_key_ids": ['Your ID SSH-key']

}'

elif [[ $ACTION == "delete"  ]]; then

VM_ID=$(curl -s "$API/servers?name=$NAME" -H "x-api-key: $TOKEN" | jq -r '.servers[^0].id // empty')

if [[ -z "$VM_ID"  ]]; then
echo "VM with name '$NAME' not found"
exit 1
fi
curl -X DELETE "$API/servers/$VM_ID" -H "x-api-key: $TOKEN"

fi

Pasted image 20251007154150

Étape 3. Planifier une exécution périodique

0 6 * * * /usr/local/bin/vm_manager.sh create auto-vm-$(date +\%Y\%m\%d) >> /var/log/vm_manager.log 2>&1

Pasted image 20251007154308

Cloud API QFP

Q: Comment stocker le token en toute sécurité ?
A: Utilisez un fichier avec des permissions de 600, évitez le contrôle de source. Lisez-le en utilisant $(< file).

Détails techniques: Serverspace API

  • Gestion des erreurs : vérifier HTTP codes d'état, analyser JSON avec jq.
  • Pagination : suivez le next champ.
  • Limitation de débit : implémenter un recul exponentiel.

Conteneurisation et mise en réseau

Docker Réseaux en essaim et en superposition

Docker Swarm offre une orchestration de conteneurs intégrée avec prise en charge des réseaux superposés. Ces réseaux superposés créent une couche réseau virtuelle sur les hôtes physiques grâce à VXLAN pour l'encapsulation du trafic.

Mode d'emploi : Déploiement automatisé d'un réseau superposé

Étape 1. Initialiser Swarm


docker swarm init

Pasted image 20251007155740

Étape 2. Script de création de réseau


#!/usr/bin/env bash
docker network create -d overlay --attachable app_net || echo "Network exists"

Pasted image 20251007155940

Étape 3. Fichier d'unité Systemd


[Unit]
Description=Create Docker overlay network
After=docker.service

[Service]
Type=oneshot
ExecStart=/usr/local/bin/setup_overlay.sh

[Install]
WantedBy=multi-user.target

Pasted image 20251007160024

Étape 4. Activer l'unité


sudo systemctl daemon-reload
sudo systemctl enable --now setup_overlay.service

FAQ sur Swarm

Q: Pourquoi le réseau superposé n'apparaît-il pas sur les nœuds de travail ?
A: Assurez-vous que les ports TCP 2377, 7946 et les ports UDP 7946, 4789 sont ouverts et que tous les nœuds sont dans le même essaim.

Pasted image 20251007161049

Détails techniques : Superposition Swarm

  • Diagnostics: docker node ls, docker network inspect, ip -d link show.
  • Docker logs: journalctl -u docker.service --since today.
  • Cryptage superposé : --opt encrypted (IPsec pour VXLAN).

Surveillance au niveau du noyau avec eBPF

eBPF : surveillance des appels système

eBPF permet l'exécution sécurisée de programmes dans l'espace noyau pour une surveillance des appels système haute fidélité avec une surcharge minimale.

Mode d'emploi : Collecte automatisée de métriques

Étape 1. Installer les dépendances

sudo apt install bpfcc-tools linux-headers-$(uname -r)

Étape 2. Script de collecte


#!/usr/bin/env bash
DURATION=60
LOGFILE="/var/log/execsnoop-$(date +%F_%H%M%S).log"
sudo execsnoop -t $DURATION > $LOGFILE

Étape 3. Planifier une exécution périodique


*/5 * * * * /usr/local/bin/monitor_execs.sh

FAQ eBPF

Q: Comment gérer le volume des journaux ?
A: Utilisez logrotate, par exemple, dans /etc/logrotate.d/execsnoop:


/var/log/execsnoop-*.log {
daily
rotate 7
compress
missingok
notifempty
}

Détails techniques : eBPF

  • Filtration: execsnoop -u www-data.
  • Traces de pile : execsnoop --stack.
  • Transfert de journaux : logger -t execsnoop < $LOGFILE.

Sauvegarde et récupération

Sauvegarde incrémentielle sur un stockage compatible S3

Étape 1. Installer AWS CLI et configurer le profil


sudo apt install awscli
aws configure --profile serverspace

Étape 2. Script de sauvegarde


#!/usr/bin/env bash
SRC="/var/www"
DEST="s3://my-serverspace-bucket/$(hostname)"
aws s3 sync "$SRC" "$DEST" \
--profile serverspace \
--storage-class STANDARD_IA \
--delete

Étape 3. Minuterie systemd


[Unit]
Description=Incremental backup to S3

[Service]
Type=oneshot
ExecStart=/usr/local/bin/incremental_backup.sh


[Unit]
Description=Run incremental backup hourly

[Timer]
OnCalendar=hourly
Persistent=true

[Install]
WantedBy=timers.target

FAQ sur la sauvegarde

Q: Comment vérifier l'intégrité ?
A: Courir aws s3 sync --dryrun et comparer avec aws s3 ls.

Détails techniques : sauvegarde S3

  • Parallélisme: aws configure set default.s3.max_concurrent_requests 20.
  • Limitation : utilisation --no-progress et ajuster la concurrence.
  • Rotation des clés : rotation régulière des clés d'accès.

La transition de cron vers systemd-timer offre une journalisation et une fiabilité améliorées. API automatisation dans Serverspace minimise les opérations manuelles. Docker L'essaim avec réseaux superposés permet de faire évoluer les microservices. eBPF permet une surveillance haute performance du noyau. Les sauvegardes S3 incrémentielles permettent d'économiser de la bande passante et du temps. L'intégration de ces technologies crée un écosystème DevOps robuste, sécurisé et évolutif.

Il est recommandé de tester tous les scripts sur un Serverspace VM, adaptez-les à votre infrastructure et intégrez-les à vos pipelines CI/CD. Une liste de contrôle finale pour le livre numérique.Linux pour DevOps sur Serverspace" est prévu, présentant tous les exemples et les meilleures pratiques.

Voter:
5 sur 5
Note moyenne : 5
Noté par : 1
1101 CT Amsterdam Pays-Bas, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300

Vous pourriez aussi aimer...

Nous utilisons des cookies pour rendre votre expérience sur le Serverspace meilleur. En poursuivant votre navigation sur notre site, vous acceptez nos
Utilisation des cookies et Politique de confidentialité.