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

Hoe Drone CI op Ubuntu 18.04 te installeren

Hoe Drone CI op Ubuntu 18.04 te installeren

Introductie Drone is een geautomatiseerd, continu test- en leveringsplatform dat draait op uw eigen infrastructuur. Drone ondersteunt elke taal, service o

Ansible installeren en configureren op Debian 9 voor gebruik met Windows Server

Ansible installeren en configureren op Debian 9 voor gebruik met Windows Server

Gebruikt u een ander systeem? Ansible is een open source-tool voor het automatiseren van taken. Het beheert de configuratie van uw Linux- en Windows-servers. Het werk

Vultr Load Balancers

Vultr Load Balancers

Wat is een Load Balancer? Load Balancers zitten voor uw applicatie en verdelen inkomend verkeer over meerdere instanties van uw applicatie. Fo

GoCD installeren en configureren op CentOS 7

GoCD installeren en configureren op CentOS 7

Gebruikt u een ander systeem? GoCD is een open source systeem voor continue levering en automatisering. Hiermee kunt u complexe workflows modelleren met behulp van de parallelle en

Aan de slag met SaltStack op Ubuntu 17.04

Aan de slag met SaltStack op Ubuntu 17.04

SaltStack is een op python gebaseerd configuratiebeheerprogramma dat is geoptimaliseerd voor de automatisering van configuratiebestanden, implementaties en al het andere

Chef-solo gebruiken om een ​​Django-app op Ubuntu te configureren

Chef-solo gebruiken om een ​​Django-app op Ubuntu te configureren

Er zijn veel manieren om het instellen en configureren van een box te automatiseren. Om wat voor reden dan ook, als ons hele systeem op dit punt bestaat uit rechtvaardig

Hoe Jenkins op CentOS 7 te installeren

Hoe Jenkins op CentOS 7 te installeren

Jenkins is een populaire open source CI-tool (Continuous Integration) die veel wordt gebruikt voor projectontwikkeling, implementatie en automatisering. Dit artikel zal

Hoe Strider CD op Ubuntu 18.04 te installeren

Hoe Strider CD op Ubuntu 18.04 te installeren

Inleiding Strider CD is een open source continu implementatieplatform. De applicatie is geschreven in Node.js en gebruikt MongoDB als opslagbackend. Pas op

Chocolatey Package Manager gebruiken op Windows

Chocolatey Package Manager gebruiken op Windows

Introductie Chocolatey brengt pakketbeheer dat het beheer van software en afhankelijkheden op Linux, eenvoudig maakt voor Windows. Dat kan snel en gemakkelijk

Foreman installeren op CentOS 7

Foreman installeren op CentOS 7

Gebruikt u een ander systeem? Foreman is een gratis en open source tool die je helpt bij het configureren en beheren van fysieke en virtuele servers. Forema

Hoe Foreman op Ubuntu 16.04 LTS te installeren

Hoe Foreman op Ubuntu 16.04 LTS te installeren

Gebruikt u een ander systeem? Foreman is een gratis en open source tool die je helpt bij het configureren en beheren van fysieke en virtuele servers. Forema

Concourse CI installeren en configureren op CentOS 7

Concourse CI installeren en configureren op CentOS 7

Gebruikt u een ander systeem? Introductie Continuous Integration is een DevOps-softwareontwikkelingspraktijk waarmee de ontwikkelaars deze vaak kunnen samenvoegen

Concourse CI installeren en configureren op Ubuntu 16.04

Concourse CI installeren en configureren op Ubuntu 16.04

Gebruikt u een ander systeem? Introductie Continuous Integration is een DevOps-softwareontwikkelingspraktijk waarmee de ontwikkelaars deze vaak kunnen samenvoegen

SaltStack installeren op CentOS 7

SaltStack installeren op CentOS 7

SaltStack, of Salt, is een populaire open source oplossing voor configuratiebeheer die kan worden gebruikt voor uitvoering op afstand, configuratiebeheer en codering

SaltStack With Pillars gebruiken op Ubuntu 17.04

SaltStack With Pillars gebruiken op Ubuntu 17.04

Hoewel SaltStack een geweldig hulpmiddel is om bewerkingen op veel servers tegelijkertijd uit te voeren, ondersteunt het ook door de host gedefinieerde configuratie-presets die zijn opgeslagen in een

Ansible installeren en configureren op CentOS 7 voor gebruik met Windows Server

Ansible installeren en configureren op CentOS 7 voor gebruik met Windows Server

Gebruikt u een ander systeem? Ansible is een open source-tool voor het automatiseren van taken. Het beheert de configuratie van uw Linux- en Windows-servers. Het werk

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.