Workflow n8n

Automatisation n8n : gestion des snapshots sur DigitalOcean

  • Ce workflow n8n a pour objectif d'automatiser la gestion des snapshots sur DigitalOcean, permettant ainsi aux équipes techniques de gagner du temps et d'optimiser leurs opérations. Dans un contexte où la gestion des ressources cloud est cruciale, ce workflow répond à des cas d'usage tels que la suppression automatique de snapshots obsolètes et la création de nouveaux snapshots à intervalles réguliers. En utilisant l'automatisation n8n, les utilisateurs peuvent s'assurer que leur infrastructure est toujours à jour sans intervention manuelle.
  • Le workflow débute par un déclencheur de type Cron, configuré pour s'exécuter toutes les 48 heures. Cela permet de planifier les opérations de gestion des snapshots de manière régulière. Ensuite, le workflow utilise plusieurs noeuds HTTP pour interagir avec l'API de DigitalOcean. Il commence par lister tous les droplets existants, puis il filtre les snapshots associés à ces droplets. En fonction des conditions définies, il peut supprimer des snapshots obsolètes ou en créer de nouveaux. Les noeuds de type 'Filter' et 'HTTP Request' sont essentiels pour cette automatisation, garantissant que seules les actions nécessaires sont effectuées.
  • Les bénéfices business de ce workflow incluent une réduction des coûts de stockage sur le cloud, une meilleure organisation des ressources et une diminution des risques d'erreurs humaines. En intégrant cette automatisation, les équipes peuvent se concentrer sur des tâches à plus forte valeur ajoutée, tout en ayant l'assurance que leur infrastructure est maintenue de manière efficace.
Tags clés :automatisationDigitalOceann8ncloudgestion des ressources
Catégorie: Scheduled · Tags: automatisation, DigitalOcean, n8n, cloud, gestion des ressources0

Workflow n8n DigitalOcean, cloud, gestion des ressources : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n DigitalOcean, cloud, gestion des ressources : détail des nœuds

  • Filter

    Ce noeud filtre les données en fonction des conditions spécifiées.

  • List Snapshots for a Droplet

    Ce noeud envoie une requête HTTP pour lister les snapshots d'un droplet.

  • List All Droplets

    Ce noeud envoie une requête HTTP pour lister tous les droplets.

  • Delete a Snapshot

    Ce noeud envoie une requête HTTP pour supprimer un snapshot.

  • Droplet Actions snapshot (n8n.optimus01.co.za)

    Ce noeud envoie une requête HTTP pour effectuer des actions de snapshot sur un droplet.

  • Runs every 48hrs

    Ce noeud déclenche le workflow toutes les 48 heures.

  • Sticky Note2

    Ce noeud crée une note autocollante avec les paramètres spécifiés.

  • Sticky Note3

    Ce noeud crée une note autocollante avec les paramètres spécifiés.

  • Sticky Note4

    Ce noeud crée une note autocollante avec les paramètres spécifiés.

  • Sticky Note5

    Ce noeud crée une note autocollante avec les paramètres spécifiés.

  • Sticky Note6

    Ce noeud crée une note autocollante avec les paramètres spécifiés.

  • Sticky Note7

    Ce noeud crée une note autocollante avec les paramètres spécifiés.

  • Sticky Note1

    Ce noeud crée une note autocollante avec les paramètres spécifiés.

  • Sticky Note11

    Ce noeud crée une note autocollante avec les paramètres spécifiés.

  • Sticky Note14

    Ce noeud crée une note autocollante avec les paramètres spécifiés.

  • Sticky Note9

    Ce noeud crée une note autocollante avec les paramètres spécifiés.

  • Sticky Note15

    Ce noeud crée une note autocollante avec les paramètres spécifiés.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "meta": {
    "instanceId": "38d37c49298b42c645e6a7693766d7c3522b24e54454034f955422b5d7af611c"
  },
  "nodes": [
    {
      "id": "b6582c37-00c3-467c-95cb-fc6eb7ccd27d",
      "name": "Filter",
      "type": "n8n-nodes-base.filter",
      "position": [
        1080,
        420
      ],
      "parameters": {
        "conditions": {
          "number": [
            {
              "value1": "={{ $json.meta.total }}",
              "value2": 4,
              "operation": "largerEqual"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "54b0f895-7e56-40eb-bc6c-f657457d004a",
      "name": "List Snapshots for a Droplet",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        840,
        420
      ],
      "parameters": {
        "url": "=https://api.digitalocean.com/v2/droplets/{{ $json.droplets[0].id }}/snapshots ",
        "options": {},
        "authentication": "headerAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "1kwUrzy4cJXZx48R",
          "name": "Digital Ocean Account (darryn@optimus01.co.za)"
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "id": "7c47438f-db04-41f7-aed6-a460d0a6889b",
      "name": "List All Droplets",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "f3bc462f9219860aafe79747ee369e2f79ccd7f9b096dfe66b55d946871e8942",
      "position": [
        600,
        420
      ],
      "parameters": {
        "url": "https://api.digitalocean.com/v2/droplets",
        "options": {},
        "authentication": "headerAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "1kwUrzy4cJXZx48R",
          "name": "Digital Ocean Account (darryn@optimus01.co.za)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e751f6a4-0fdc-4be5-84f0-fecba100da09",
      "name": "Delete a Snapshot",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "f3bc462f9219860aafe79747ee369e2f79ccd7f9b096dfe66b55d946871e8942",
      "position": [
        1320,
        420
      ],
      "parameters": {
        "url": "=https://api.digitalocean.com/v2/snapshots/{{ $json.snapshots[0].id }}",
        "options": {},
        "requestMethod": "DELETE",
        "authentication": "headerAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "1kwUrzy4cJXZx48R",
          "name": "Digital Ocean Account (darryn@optimus01.co.za)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d4cc4a72-f909-4c10-bada-e5c731e46c5e",
      "name": "Droplet Actions snapshot (n8n.optimus01.co.za)",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "f3bc462f9219860aafe79747ee369e2f79ccd7f9b096dfe66b55d946871e8942",
      "position": [
        1560,
        420
      ],
      "parameters": {
        "url": "=https://api.digitalocean.com/v2/droplets/{{ $('List All Droplets').item.json.droplets[0].id }}/actions ",
        "options": {},
        "requestMethod": "POST",
        "authentication": "headerAuth",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "type",
              "value": "snapshot"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "1kwUrzy4cJXZx48R",
          "name": "Digital Ocean Account (darryn@optimus01.co.za)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4f3be74a-add7-4a2c-99df-d5d47f17efee",
      "name": "Runs every 48hrs",
      "type": "n8n-nodes-base.cron",
      "position": [
        360,
        420
      ],
      "parameters": {
        "triggerTimes": {
          "item": [
            {
              "mode": "everyX",
              "value": 48
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "518a7b8c-adf6-448e-9f4a-5acc0f31523d",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        300,
        180
      ],
      "parameters": {
        "color": 7,
        "width": 232.0445295774649,
        "height": 411.1655661971828,
        "content": "## Trigger workflow every 48 hours\n\nThis node triggers the workflow to run every 48 hours. You can adjust the frequency if needed to suit your snapshot management requirements."
      },
      "typeVersion": 1
    },
    {
      "id": "70fe9177-e770-4f19-8fbc-3782167dda55",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        540,
        180
      ],
      "parameters": {
        "color": 5,
        "width": 232.0445295774649,
        "height": 411.1655661971829,
        "content": "## Get all droplets from DigitalOcean\nFetches a list of all the droplets in your DigitalOcean account. This is the first step in managing snapshots for each droplet.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "04d74698-0198-45c8-8a79-183fd5f19820",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        780,
        180
      ],
      "parameters": {
        "color": 5,
        "width": 232.0445295774649,
        "height": 412.3020619718309,
        "content": "## Retrieve snapshots for a droplet\nRetrieves all the snapshots associated with a specific droplet. This ensures that we know how many snapshots currently exist for each droplet.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "4a971e9a-dfdf-4932-8280-3991a83c2a72",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1020,
        180
      ],
      "parameters": {
        "color": 7,
        "width": 232.0445295774649,
        "height": 411.1655661971828,
        "content": "## Check if there are more than 4 snapshots\nChecks if the number of snapshots for a droplet is equal to or greater than 4. If true, it proceeds to delete the oldest snapshot.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "bb9a553a-a8fc-4b72-b0e0-704ebaf8b806",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1260,
        180
      ],
      "parameters": {
        "color": 5,
        "width": 232.0445295774649,
        "height": 411.1655661971829,
        "content": "## Delete the oldest snapshot\nDeletes the oldest snapshot from the droplet if the number of snapshots exceeds the limit (4 in this case), based on the filter's condition.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "1811812f-db56-494a-8ffa-d64cc6f5037c",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1500,
        180
      ],
      "parameters": {
        "color": 5,
        "width": 232.0445295774649,
        "height": 411.1655661971829,
        "content": "## Create a new snapshot\nCreates a new snapshot for the droplet after cleaning up the old snapshots. Ensures that backups are always up to date."
      },
      "typeVersion": 1
    },
    {
      "id": "cb2bd85e-578b-4888-9625-ffed7249082c",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -545,
        200
      ],
      "parameters": {
        "color": 7,
        "width": 366.75796434038665,
        "height": 381.1643518785302,
        "content": "### What this workflow does\n1. **`Runs every 48 hours`**: The workflow is triggered by a cron node that runs every 48 hours, ensuring timely snapshot management.\n2. **`List all droplets`**: The workflow retrieves all droplets in the DigitalOcean account.\n3. **`Retrieve snapshots`**: For each droplet, the workflow retrieves a list of existing snapshots.\n4. **`Filter snapshots`**: If the number of snapshots exceeds 4, the workflow filters for snapshots that need to be deleted.\n5. **`Delete snapshots`**: Excess snapshots are automatically deleted based on the filter criteria.\n6. **`Create new snapshot`**: After cleaning up, the workflow creates a new snapshot for each droplet, ensuring that backups are always up-to-date."
      },
      "typeVersion": 1
    },
    {
      "id": "7fbb406b-9343-4d3c-9876-80cb3b7bd51e",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -165,
        240
      ],
      "parameters": {
        "color": 6,
        "width": 396.6384066163515,
        "height": 282.5799404564392,
        "content": "### Get More Templates Like This 👇\n[![Video Thumbnail](https://onlinethinking.io/wp-content/uploads/2024/10/Lets-Automate-It-Community.png)](http://onlinethinking.io/community)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8afb93b2-e547-4f3b-be25-5ab85a3f477d",
      "name": "Sticky Note14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -545,
        600
      ],
      "parameters": {
        "width": 777.0408639013781,
        "height": 201.45195676871373,
        "content": "## Setup\n1. **`DigitalOcean API Key`**: You’ll need to configure the HTTP Request nodes with your DigitalOcean API key. This key is required for authenticating requests to list droplets, retrieve snapshots, delete snapshots, and create new ones.\n2. **`Snapshot Threshold`**: By default, the workflow is set to keep no more than 4 snapshots per droplet. This can be adjusted by modifying the filter node conditions.\n3. **`Set Execution Frequency`**: The cron node is set to run every 48 hours, but you can adjust the timing to suit your needs."
      },
      "typeVersion": 1
    },
    {
      "id": "325a4b9c-9bd4-4f29-8595-98f0579d15c1",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -560,
        60
      ],
      "parameters": {
        "color": 7,
        "width": 809.515353297114,
        "height": 944.3745310796205,
        "content": "## Automate Droplet Snapshot Management on DigitalOcean\nBuilt for the [Let's Automate It Community](http://onlinethinking.io/community) by [Optimus Agency](https://optimus01.co.za/)\n\nThis workflow automates the management of DigitalOcean Droplet snapshots by keeping the number of snapshots under a defined limit, deleting the oldest ones, and ensuring new snapshots are created at regular intervals."
      },
      "typeVersion": 1
    },
    {
      "id": "9540cfa4-4b72-40c2-b1d1-5bf3f9bd7884",
      "name": "Sticky Note15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -545,
        820
      ],
      "parameters": {
        "color": 7,
        "width": 777.0408639013781,
        "height": 168.5111194243667,
        "content": "## How to customize this workflow\n- **`Adjust Snapshot Limit`**: Change the value in the filter node if you want to keep more or fewer snapshots.\n- **`Modify Run Frequency`**: The workflow runs every 48 hours by default. You can change the frequency in the cron node to run more or less often.\n- **`Enhance with Notifications`**: You can add a notification node (e.g., Slack or email) to alert you when snapshots are deleted or created."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "Filter": {
      "main": [
        [
          {
            "node": "Delete a Snapshot",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Runs every 48hrs": {
      "main": [
        [
          {
            "node": "List All Droplets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Delete a Snapshot": {
      "main": [
        [
          {
            "node": "Droplet Actions snapshot (n8n.optimus01.co.za)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List All Droplets": {
      "main": [
        [
          {
            "node": "List Snapshots for a Droplet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List Snapshots for a Droplet": {
      "main": [
        [
          {
            "node": "Filter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n DigitalOcean, cloud, gestion des ressources : pour qui est ce workflow ?

Ce workflow s'adresse principalement aux équipes techniques et aux administrateurs systèmes qui gèrent des infrastructures cloud sur DigitalOcean. Il est particulièrement utile pour les entreprises de taille moyenne à grande qui cherchent à automatiser la gestion de leurs ressources et à réduire les interventions manuelles. Un niveau technique intermédiaire est recommandé pour la personnalisation du workflow.

Workflow n8n DigitalOcean, cloud, gestion des ressources : problème résolu

Ce workflow résout le problème de la gestion manuelle des snapshots sur DigitalOcean, qui peut être chronophage et sujet à des erreurs. En automatisant ce processus, les utilisateurs éliminent les risques de stockage excessif de données obsolètes, ce qui peut entraîner des coûts supplémentaires. Après mise en place, les utilisateurs bénéficient d'une gestion optimisée de leurs ressources cloud, avec des snapshots créés et supprimés automatiquement selon des critères définis.

Workflow n8n DigitalOcean, cloud, gestion des ressources : étapes du workflow

Étape 1 : Le workflow est déclenché par un cron programmé pour s'exécuter toutes les 48 heures.

  • Étape 1 : Il commence par lister tous les droplets existants sur DigitalOcean via une requête HTTP.
  • Étape 2 : Ensuite, il filtre les snapshots associés à ces droplets pour identifier ceux qui doivent être supprimés ou mis à jour.
  • Étape 3 : En fonction des conditions définies, il peut alors supprimer des snapshots obsolètes ou en créer de nouveaux, en utilisant des noeuds HTTP pour interagir avec l'API de DigitalOcean.
  • Étape 4 : Enfin, des notes autocollantes sont ajoutées pour visualiser les actions effectuées et les résultats du workflow.

Workflow n8n DigitalOcean, cloud, gestion des ressources : guide de personnalisation

Pour personnaliser ce workflow, commencez par ajuster l'URL de l'API de DigitalOcean dans les noeuds HTTP. Vous pouvez également modifier les conditions dans le noeud 'Filter' pour définir quels snapshots doivent être supprimés ou créés. N'hésitez pas à ajouter d'autres noeuds pour intégrer des notifications ou des alertes en cas d'erreurs. Pour une meilleure sécurité, pensez à configurer l'authentification appropriée pour les requêtes API. Enfin, vous pouvez ajuster la fréquence d'exécution du cron selon vos besoins spécifiques.