Lage øyeblikksbilder med Packer

Hva er Packer?

Packer er et serverbildeverktøy utviklet av HashiCorp. Server bildebehandling; eller alternativt uforanderlig infrastruktur; er et populært alternativ til kjøretidskonfigurasjonsverktøy, for eksempel Ansible eller Puppet. Den er basert på ideen om at når en server først er distribuert, endrer du den aldri; i stedet distribuerer du en ny server med endringene dine og river deretter ned den gamle. Dette gjør servervedlikehold enklere, og lar deg skalere mer effektivt på tvers av et stort antall maskiner.

Selv om Packer ikke støtter Vultr ut av esken, er det en plugin som legger til denne støtten. Instruksjoner for å installere Packer med Vultr-støtte finner du på pluginens README. Resten av denne artikkelen forutsetter at du har Packer installert, samt Vultr-plugin.

Hvordan det fungerer

Hensikten med Packer er å produsere serverbilder, eller artefakter som kan brukes til å lage en ny server akkurat slik den var på bildetidspunktet. For Vultr kalles disse artefaktene Snapshots. Plugin-en fungerer ved å distribuere en ny VPS, kjøre dine definerte provisjonsprogrammer på den, lage et øyeblikksbilde av den og deretter rive ned VPS. Når du vil lage en ny server fra bildet ditt, ring ganske enkelt Vultrs API for å distribuere en ny VPS med ønsket Snapshot som operativsystem.

Bruker Packer

Packer tar en JSON-fil som definerer bygningen den skal kjøre som input. Her er en eksempelfil som definerer en Vultr-bygg:

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

Denne filen har to toppnivånøkler, variablesog builders. Den variablesnøkkel blir brukt til å definere tilpassede variabler, og i dette tilfelle benyttes for å inkorporere VULTR_API_KEYmiljøvariabelen på en måte som kan brukes senere. Den buildersnøkkelen inneholder en liste over bygger å kjøre, i dette tilfellet bare vår Vultr bygge. La oss bryte den bygningen litt ned:

  • type: Dette definerer byggherren som faktisk skal brukes, og for Vultr-bygg skal dette alltid være vultr.
  • api_key: For å kjøre bygget trenger du en API-nøkkel, som er definert her. Dette eksemplet definerer det som verdien til vultr_api_keybrukervariabelen, som lenger opp er satt til verdien av VULTR_API_KEYmiljøvariabelen.
  • snapshot_description: Beskrivelsen av det resulterende øyeblikksbildet.
  • region_id: Regionen å distribuere en VPS til. Dette påvirker ikke det endelige øyeblikksbildet, bare serveren som øyeblikksbildet er opprettet fra.
  • plan_id: Planen å bruke for VPS. Fremtidig bruk av dette øyeblikksbildet må definere en plan som er minst så stor.
  • os_id: Operativsystemet å basere øyeblikksbildet på.
  • ssh_username: Brukernavnet som vil bli brukt når SSH går inn på serveren for klargjøring. For Linux-servere vil dette vanligvis være root.

For å bruke den, lagre denne filen med et navn som server.json, og kjør deretter kommandoen packer build server.json. Du vil se noe utdata som indikerer statusen til bygget, noe som vil ta noen minutter.

Når du kjører denne konstruksjonen, vil en ny server med navn Snapshotting: My Awesome Appbli opprettet, tatt et øyeblikksbilde og deretter ødelagt. Uten at det er definert provianter, er det alt som skjer. For mer informasjon om definering av provisjoner, se Packers dokumentasjon .

Når byggingen er fullført, vil Packer gi ut ID-en til det resulterende øyeblikksbildet.

Definere region, plan og OS

Disse tre verdiene kreves for hvert Vultr-bygg, men kan defineres på en av flere måter. For hver enkelt bør du spesifisere nøyaktig én av variantene for å unngå tvetydighet:

Region

Regioninformasjon kan søkes via API: https://www.vultr.com/api/#regions_region_list

  • region_id: IDen til regionen, f.eks 2
  • region_code: Koden for regionen, f.eks ORD

Plan

Planinformasjon kan søkes via API: https://www.vultr.com/api/#plans_plan_list

  • plan_id: IDen til planen, f.eks 201

OS

Operativsysteminformasjon kan spørres via APIen: https://www.vultr.com/api/#os_os_list

  • os_id: IDen til operativsystemet, f.eks 167

Hvordan installere Jenkins på CentOS 7

Hvordan installere Jenkins på CentOS 7

Jenkins er et populært åpen kildekode CI (Continuous Integration)-verktøy som er mye brukt for prosjektutvikling, distribusjon og automatisering. Denne artikkelen vil

Hvordan installere og konfigurere Concourse CI på Ubuntu 16.04

Hvordan installere og konfigurere Concourse CI på Ubuntu 16.04

Bruker du et annet system? Introduksjon Kontinuerlig integrasjon er en DevOps-programvareutviklingspraksis som gjør det mulig for utviklere å ofte slå sammen

Hvordan installere og konfigurere Ansible på Debian 9 for bruk med Windows Server

Hvordan installere og konfigurere Ansible på Debian 9 for bruk med Windows Server

Bruker du et annet system? Ansible er et åpen kildekodeverktøy for automatisering av oppgaver. Den administrerer konfigurasjonen av dine Linux- og Windows-servere. Det fungerer

Hvordan installere og konfigurere GoCD på CentOS 7

Hvordan installere og konfigurere GoCD på CentOS 7

Bruker du et annet system? GoCD er et åpen kildekodesystem for kontinuerlig levering og automatisering. Den lar deg modellere komplekse arbeidsflyter ved å bruke dens parallelle an

Bruke SaltStack med søyler på Ubuntu 17.04

Bruke SaltStack med søyler på Ubuntu 17.04

Mens SaltStack er et flott verktøy for å kjøre operasjoner på mange servere samtidig, støtter det også per-verts definerte konfigurasjonsforhåndsinnstillinger lagret i en

Hvordan installere og konfigurere Ansible på CentOS 7 for bruk med Windows Server

Hvordan installere og konfigurere Ansible på CentOS 7 for bruk med Windows Server

Bruker du et annet system? Ansible er et åpen kildekodeverktøy for automatisering av oppgaver. Den administrerer konfigurasjonen av dine Linux- og Windows-servere. Det fungerer

Hvordan installere Drone CI på Ubuntu 18.04

Hvordan installere Drone CI på Ubuntu 18.04

Introduksjon Drone er en automatisert, kontinuerlig test- og leveringsplattform som kjører på din egen infrastruktur. Drone støtter alle språk, tjenester o

Vultr Load Balancers

Vultr Load Balancers

Hva er en Load Balancer Load Balancers sitter foran applikasjonen din og distribuerer innkommende trafikk over flere forekomster av applikasjonen. Fo

Hvordan installere Foreman på CentOS 7

Hvordan installere Foreman på CentOS 7

Bruker du et annet system? Foreman er et gratis og åpen kildekodeverktøy som hjelper deg med konfigurering og administrasjon av fysiske og virtuelle servere. Forema

Slik installerer du SaltStack på CentOS 7

Slik installerer du SaltStack på CentOS 7

SaltStack, eller Salt, er en populær åpen kildekode-konfigurasjonsadministrasjonsløsning som kan brukes til å implementere ekstern kjøring, konfigurasjonsadministrasjon, cod

Hvordan installere Strider CD på Ubuntu 18.04

Hvordan installere Strider CD på Ubuntu 18.04

Introduksjon Strider CD er en åpen kildekode-plattform for kontinuerlig distribusjon. Applikasjonen er skrevet i Node.js og bruker MongoDB som backend for lagring. Skritt

Bruke Chocolatey Package Manager på Windows

Bruke Chocolatey Package Manager på Windows

Introduksjon Chocolatey bringer pakkeadministrasjon som gjør det enkelt å administrere programvare og avhengigheter på Linux, til Windows. Du kan raskt og enkelt

Lage øyeblikksbilder med Packer

Lage øyeblikksbilder med Packer

Hva er Packer? Packer er et serverbildeverktøy utviklet av HashiCorp. Server bildebehandling; eller alternativt uforanderlig infrastruktur; er et populært alternativ

Hvordan installere og konfigurere Concourse CI på CentOS 7

Hvordan installere og konfigurere Concourse CI på CentOS 7

Bruker du et annet system? Introduksjon Kontinuerlig integrasjon er en DevOps-programvareutviklingspraksis som gjør det mulig for utviklere å ofte slå sammen

Bruke Chef-solo til å konfigurere en Django-app på Ubuntu

Bruke Chef-solo til å konfigurere en Django-app på Ubuntu

Det er mange måter å automatisere prosessen med å sette opp og konfigurere en boks. Uansett grunn, hvis hele systemet vårt på dette tidspunktet består av bare

Hvordan installere Foreman på Ubuntu 16.04 LTS

Hvordan installere Foreman på Ubuntu 16.04 LTS

Bruker du et annet system? Foreman er et gratis og åpen kildekodeverktøy som hjelper deg med konfigurering og administrasjon av fysiske og virtuelle servere. Forema

Komme i gang med SaltStack på Ubuntu 17.04

Komme i gang med SaltStack på Ubuntu 17.04

SaltStack er et python-basert konfigurasjonsadministrasjonsprogram som er optimalisert for automatisering av konfigurasjonsfiler, distribusjoner og alt annet

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer