Skapa ögonblicksbilder med Packer

Vad är Packer?

Packer är ett serverbildverktyg utvecklat av HashiCorp. Serveravbildning; eller alternativt oföränderlig infrastruktur; är ett populärt alternativ till runtime-konfigurationsverktyg, som Ansible eller Puppet. Den är baserad på idén att när en server väl har distribuerats, ändrar du den aldrig; istället distribuerar du en ny server med dina ändringar och river sedan ner den gamla. Detta gör serverunderhållet enklare och gör att du kan skala mer effektivt över ett stort antal maskiner.

Även om Packer inte stöder Vultr direkt, finns det ett plugin som lägger till det stödet. Instruktioner för att installera Packer med Vultr-stöd finns på pluginens README. Resten av den här artikeln förutsätter att du har Packer installerat, såväl som Vultr-plugin.

Hur det fungerar

Syftet med Packer är att producera serverbilder, eller artefakter som kan användas för att skapa en ny server precis som den var vid avbildningstidpunkten. För Vultr kallas dessa artefakter Snapshots. Insticksprogrammet fungerar genom att distribuera en ny VPS, köra dina definierade provisioner på den, skapa en ögonblicksbild av den och sedan riva ner VPS. När du vill skapa en ny server från din bild ringer du helt enkelt Vultrs API för att distribuera en ny VPS med önskad Snapshot som OS.

Använder Packer

Packer tar en JSON-fil som definierar den build som den ska köras som indata. Här är en exempelfil som definierar en Vultr-build:

{
  "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"
    }
  ]
}

Den här filen har två nycklar på översta nivån variablesoch builders. Den variablesnyckeln används för att definiera anpassade variabler, och i detta fall används för att införliva VULTR_API_KEYmiljövariabeln på ett sätt som kan användas senare. Den buildersnyckeln innehåller en lista över bygger att köra, i det här fallet bara vår Vultr bygga. Låt oss bryta ner den byggnaden lite:

  • type: Detta definierar byggaren som faktiskt ska användas, och för Vultr-byggen ska detta alltid vara vultr.
  • api_key: För att köra bygget behöver du en API-nyckel, som definieras här. Det här exemplet definierar det som värdet på vultr_api_keyanvändarvariabeln, som längre upp är satt till värdet för VULTR_API_KEYmiljövariabeln.
  • snapshot_description: Beskrivningen av den resulterande ögonblicksbilden.
  • region_id: Regionen att distribuera en VPS till. Detta påverkar inte den slutliga ögonblicksbilden, bara servern som ögonblicksbilden skapas från.
  • plan_id: Planen att använda för VPS. Framtida användning av denna ögonblicksbild måste definiera en plan som är åtminstone så stor.
  • os_id: Operativsystemet att basera ögonblicksbilden på.
  • ssh_username: Användarnamnet som kommer att användas när SSH går in på servern för provisionering. För Linux-servrar är detta vanligtvis root.

För att använda den, spara den här filen med ett namn som server.json, och kör sedan kommandot packer build server.json. Du kommer att se några utdata som indikerar statusen för bygget, vilket kommer att ta några minuter.

När du kör den här builden kommer en ny server med namnet Snapshotting: My Awesome Appatt skapas, ta en ögonblicksbild och sedan förstöras. Utan några provisorer definierade är det allt som händer. För mer information om att definiera provisioner, se Packers dokumentation .

När bygget är klart kommer Packer att mata ut ID:t för den resulterande ögonblicksbilden.

Definiera region, plan och OS

Dessa tre värden krävs för varje Vultr-byggd, men kan definieras på ett av flera sätt. För var och en bör du ange exakt en av dess varianter för att undvika oklarheter:

Område

Regioninformation kan begäras via API:et: https://www.vultr.com/api/#regions_region_list

  • region_id: Regionens ID, t.ex 2
  • region_code: Koden för regionen, t.ex ORD

Planen

Planinformation kan begäras via API:et: https://www.vultr.com/api/#plans_plan_list

  • plan_id: Planens ID, t.ex 201

OS

Operativsysteminformation kan begäras via API:et: https://www.vultr.com/api/#os_os_list

  • os_id: ID för OS, t.ex 167

Lämna en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer