Snapshots maken met Packer

Wat is Packer?

Packer is een server-imaging tool ontwikkeld door HashiCorp. Serverbeeldvorming; of anders onveranderlijke infrastructuur; is een populair alternatief voor runtime-configuratietools, zoals Ansible of Puppet. Het is gebaseerd op het idee dat als een server eenmaal is geïmplementeerd, u deze nooit meer hoeft te wijzigen; in plaats daarvan implementeert u een nieuwe server met uw wijzigingen en breekt u vervolgens de oude af. Dit maakt serveronderhoud eenvoudiger en stelt u in staat efficiënter over een groot aantal machines te schalen.

Hoewel Packer Vultr niet standaard ondersteunt, is er een plug-in die die ondersteuning toevoegt. Instructies voor het installeren van Packer met Vultr-ondersteuning zijn te vinden op de README van de plug-in. In de rest van dit artikel wordt ervan uitgegaan dat je Packer hebt geïnstalleerd, evenals de Vultr-plug-in.

Hoe het werkt

Het doel van Packer is om serverafbeeldingen of artefacten te produceren die kunnen worden gebruikt om een ​​nieuwe server te maken, precies zoals deze was op het moment van beeldvorming. Voor Vultr worden die artefacten Snapshots genoemd. De plug-in werkt door een nieuwe VPS te implementeren, uw gedefinieerde provisioners erop uit te voeren, er een momentopname van te maken en vervolgens de VPS af te breken. Als je een nieuwe server van je image wilt maken, bel dan gewoon de API van Vultr om een ​​nieuwe VPS te implementeren met de gewenste Snapshot als besturingssysteem.

Packer gebruiken

Packer neemt een JSON-bestand dat de build definieert die het als invoer moet uitvoeren. Hier is een voorbeeldbestand dat een Vultr-build definieert:

{
  "variables": {
    "vultr_api_key": "{{env `VULTR_API_KEY`}}"
  },
  "builders": [
    {
      "type": "vultr",
      "api_key": "{{user `vultr_api_key`}}",
      "snapshot_description": "My Awesome App",
      "region_id": "2",
      "plan_id": "201",
      "os_id": "167",
      "ssh_username": "root"
    }
  ]
}

Dit bestand heeft twee sleutels op het hoogste niveau, variablesen builders. De variablessleutel wordt gebruikt om aangepaste variabelen te definiëren en wordt in dit geval gebruikt om de VULTR_API_KEYomgevingsvariabele op te nemen op een manier die later kan worden gebruikt. De builderssleutel bevat een lijst met builds die moeten worden uitgevoerd, in dit geval alleen onze Vultr-build. Laten we die opbouw een beetje afbreken:

  • type: Dit definieert de bouwer om daadwerkelijk te gebruiken, en voor Vultr-builds zou dit altijd moeten zijn vultr.
  • api_key: Om de build uit te voeren, hebt u een API-sleutel nodig, die hier wordt gedefinieerd. Dit voorbeeld definieert het als de waarde van de vultr_api_keygebruikersvariabele, die verder is ingesteld op de waarde van de VULTR_API_KEYomgevingsvariabele.
  • snapshot_description: De beschrijving van de resulterende momentopname.
  • region_id: De regio waar een VPS moet worden ingezet. Dit heeft geen invloed op de uiteindelijke momentopname, alleen op de server waarvan de momentopname is gemaakt.
  • plan_id: Het plan om te gebruiken voor de VPS. Toekomstig gebruik van deze momentopname moet een plan definiëren dat minstens zo groot is.
  • os_id: Het besturingssysteem waarop de momentopname is gebaseerd.
  • ssh_username: De gebruikersnaam die wordt gebruikt wanneer SSH'ing op de server voor provisioning. Voor Linux-servers is dit meestal het geval root.

Om het te gebruiken, slaat u dit bestand op met een naam als server.jsonen voert u de opdracht uit packer build server.json. Je zult wat output zien die de status van de build aangeeft, wat een paar minuten zal duren.

Wanneer u deze build uitvoert, wordt er een nieuwe server met de naam Snapshotting: My Awesome Appgemaakt, geknipt en vervolgens vernietigd. Zonder dat er voorzieningen zijn gedefinieerd, is dat alles wat er gebeurt. Raadpleeg de documentatie van Packer voor meer informatie over het definiëren van voorzieningen .

Zodra de build is voltooid, zal Packer de ID van de resulterende momentopname uitvoeren.

Regio, plan en besturingssysteem definiëren

Deze drie waarden zijn vereist voor elke Vultr-build, maar kunnen op verschillende manieren worden gedefinieerd. Voor elk moet u precies één van de varianten specificeren om dubbelzinnigheid te voorkomen:

Regio

Regio-informatie kan worden opgevraagd via de API: https://www.vultr.com/api/#regions_region_list

  • region_id: De ID van de regio, bijv 2
  • region_code: De code van de regio, bijv ORD

Plan

Planinformatie kan worden opgevraagd via de API: https://www.vultr.com/api/#plans_plan_list

  • plan_id: De ID van het plan, bijv 201

OS

Informatie over het besturingssysteem kan worden opgevraagd via de API: https://www.vultr.com/api/#os_os_list

  • os_id: De ID van het besturingssysteem, bijv 167


Leave a Comment

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.