Oprettelse af snapshots med Packer

Hvad er Packer?

Packer er et serverbilledværktøj udviklet af HashiCorp. Server billedbehandling; eller alternativt uforanderlig infrastruktur; er et populært alternativ til runtime-konfigurationsværktøjer, såsom Ansible eller Puppet. Det er baseret på ideen om, at når først en server er installeret, ændrer du den aldrig; i stedet installerer du en ny server med dine ændringer og river derefter den gamle ned. Dette gør servervedligeholdelse lettere og giver dig mulighed for mere effektivt at skalere på tværs af et stort antal maskiner.

Selvom Packer ikke understøtter Vultr ud af boksen, er der et plugin, der tilføjer denne understøttelse. Instruktioner til installation af Packer med Vultr-understøttelse kan findes på pluginnets README. Resten af ​​denne artikel antager, at du har Packer installeret, såvel som Vultr-plugin'et.

Hvordan det virker

Formålet med Packer er at producere serverbilleder eller artefakter, der kan bruges til at skabe en ny server, præcis som den var på billedbehandlingstidspunktet. For Vultr kaldes disse artefakter Snapshots. Pluginnet fungerer ved at implementere en ny VPS, køre dine definerede provisioners på den, oprette et øjebliksbillede af den og derefter rive VPS'en ned. Når du vil oprette en ny server fra dit billede, skal du blot ringe til Vultr's API for at implementere en ny VPS med det ønskede Snapshot som operativsystem.

Bruger Packer

Packer tager en JSON-fil, der definerer den build, den skal køre som input. Her er en eksempelfil, der definerer 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"
    }
  ]
}

Denne fil har to nøgler på øverste niveau variablesog builders. Den variablesnøgle bruges til at definere tilpassede variabler, og i dette tilfælde bruges til at indarbejde VULTR_API_KEYmiljøvariablen på en måde, der kan bruges senere. Den buildersnøgle indeholder en liste over bygger til at køre, i dette tilfælde kun vores Vultr bygge. Lad os bryde den opbygning lidt ned:

  • type: Dette definerer den builder, der rent faktisk skal bruges, og for Vultr-bygninger skal dette altid være vultr.
  • api_key: For at køre bygningen skal du bruge en API-nøgle, som er defineret her. Dette eksempel definerer det som værdien af vultr_api_keybrugervariablen, som længere oppe er sat til værdien af VULTR_API_KEYmiljøvariablen.
  • snapshot_description: Beskrivelsen af ​​det resulterende øjebliksbillede.
  • region_id: Den region, der skal implementeres en VPS til. Dette påvirker ikke det endelige snapshot, kun serveren som snapshottet er oprettet fra.
  • plan_id: Planen at bruge til VPS. Fremtidig brug af dette øjebliksbillede skal definere en plan, der er mindst så stor.
  • os_id: Operativsystemet til at basere snapshot på.
  • ssh_username: Brugernavnet, der vil blive brugt, når SSH går ind på serveren til klargøring. For Linux-servere vil dette normalt være root.

For at bruge den skal du gemme denne fil med et navn som server.json, og derefter køre kommandoen packer build server.json. Du vil se noget output, der angiver status for bygningen, hvilket vil tage et par minutter.

Når du kører denne build, vil en ny navngivet server Snapshotting: My Awesome Appblive oprettet, taget et snapshot og derefter ødelagt. Uden at der er defineret provisorer, er det alt, der sker. Se Packers dokumentation for flere oplysninger om definition af provisioner .

Når opbygningen er færdig, udsender Packer ID'et for det resulterende snapshot.

Definition af region, plan og OS

Disse tre værdier er nødvendige for hver Vultr-build, men kan defineres på en af ​​flere måder. For hver enkelt skal du specificere præcis en af ​​dens variationer for at undgå tvetydighed:

Område

Regionsoplysninger kan forespørges via API'et: https://www.vultr.com/api/#regions_region_list

  • region_id: Regionens ID, f.eks 2
  • region_code: Koden for regionen, f.eks ORD

Plan

Planoplysninger kan forespørges via API'et: https://www.vultr.com/api/#plans_plan_list

  • plan_id: Planens ID, f.eks 201

OS

Operativsystemoplysninger kan forespørges via API'et: https://www.vultr.com/api/#os_os_list

  • os_id: OS'ets ID, f.eks 167

Sådan installeres Jenkins på CentOS 7

Sådan installeres Jenkins på CentOS 7

Jenkins er et populært open source CI (Continuous Integration) værktøj, som er meget brugt til projektudvikling, implementering og automatisering. Denne artikel vil

Sådan installeres og konfigureres Concourse CI på Ubuntu 16.04

Sådan installeres og konfigureres Concourse CI på Ubuntu 16.04

Bruger du et andet system? Introduktion Kontinuerlig integration er en DevOps-softwareudviklingspraksis, som gør det muligt for udviklerne ofte at fusionere

How to Install and Configure Ansible on Debian 9 for Use With Windows Server

How to Install and Configure Ansible on Debian 9 for Use With Windows Server

Using a Different System? Ansible is an open source tool for automating tasks. It manages the configuration of your Linux and Windows servers. It work

Sådan installeres og konfigureres GoCD på CentOS 7

Sådan installeres og konfigureres GoCD på CentOS 7

Bruger du et andet system? GoCD er et open source system til kontinuerlig levering og automatisering. Det giver dig mulighed for at modellere komplekse arbejdsgange ved hjælp af dens parallelle an

Brug af SaltStack med søjler på Ubuntu 17.04

Brug af SaltStack med søjler på Ubuntu 17.04

Selvom SaltStack er et fantastisk værktøj til at køre operationer på mange servere samtidigt, understøtter det også per-host definerede konfigurationsforudindstillinger gemt i en

Sådan installeres og konfigureres Ansible på CentOS 7 til brug med Windows Server

Sådan installeres og konfigureres Ansible på CentOS 7 til brug med Windows Server

Bruger du et andet system? Ansible er et open source-værktøj til automatisering af opgaver. Det styrer konfigurationen af ​​dine Linux- og Windows-servere. Det virker

Sådan installeres Drone CI på Ubuntu 18.04

Sådan installeres Drone CI på Ubuntu 18.04

Introduktion Drone er en automatiseret, kontinuerlig test- og leveringsplatform, som kører på din egen infrastruktur. Drone understøtter ethvert sprog, service o

Vultr Load Balancers

Vultr Load Balancers

Hvad er en Load Balancer Load Balancers sidder foran din applikation og fordeler indgående trafik på tværs af flere forekomster af din applikation. Fo

Sådan installeres Foreman på CentOS 7

Sådan installeres Foreman på CentOS 7

Bruger du et andet system? Foreman er et gratis og open source værktøj, som hjælper dig med konfiguration og administration af fysiske og virtuelle servere. Forema

Sådan installeres SaltStack på CentOS 7

Sådan installeres SaltStack på CentOS 7

SaltStack, eller Salt, er en populær open source-konfigurationsstyringsløsning, som kan bruges til at implementere fjernudførelse, konfigurationsstyring, torsk

Sådan installeres Strider CD på Ubuntu 18.04

Sådan installeres Strider CD på Ubuntu 18.04

Introduktion Strider CD er en open source platform til kontinuerlig implementering. Applikationen er skrevet i Node.js og bruger MongoDB som lagerbackend. Skridt

Brug af Chocolatey Package Manager på Windows

Brug af Chocolatey Package Manager på Windows

Introduktion Chocolatey bringer pakkehåndtering, der gør administration af software og afhængigheder let på Linux, til Windows. Du kan hurtigt og nemt

Oprettelse af snapshots med Packer

Oprettelse af snapshots med Packer

Hvad er Packer? Packer er et serverbilledværktøj udviklet af HashiCorp. Server billedbehandling; eller alternativt uforanderlig infrastruktur; er et populært alternativ

Sådan installeres og konfigureres Concourse CI på CentOS 7

Sådan installeres og konfigureres Concourse CI på CentOS 7

Bruger du et andet system? Introduktion Kontinuerlig integration er en DevOps-softwareudviklingspraksis, som gør det muligt for udviklerne ofte at fusionere

Brug af Chef-solo til at konfigurere en Django-app på Ubuntu

Brug af Chef-solo til at konfigurere en Django-app på Ubuntu

Der er mange måder at automatisere processen med at opsætte og konfigurere en boks. Uanset årsagen, hvis hele vores system på dette tidspunkt består af bare

Sådan installeres Foreman på Ubuntu 16.04 LTS

Sådan installeres Foreman på Ubuntu 16.04 LTS

Bruger du et andet system? Foreman er et gratis og open source værktøj, som hjælper dig med konfiguration og administration af fysiske og virtuelle servere. Forema

Kom godt i gang med SaltStack på Ubuntu 17.04

Kom godt i gang med SaltStack på Ubuntu 17.04

SaltStack er et python-baseret konfigurationsstyringsprogram, som er optimeret til automatisering af konfigurationsfiler, implementeringer og alt andet unde

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 lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere