Creazione di istantanee con Packer

Che cos'è Packer?

Packer è uno strumento di imaging dei server sviluppato da HashiCorp. Imaging del server; o in alternativa, infrastruttura immutabile; è una popolare alternativa agli strumenti di configurazione del runtime, come Ansible o Puppet. Si basa sull'idea che una volta distribuito un server, non lo si cambia mai; invece, si distribuisce un nuovo server con le modifiche e quindi si abbatte quello vecchio. Ciò semplifica la manutenzione del server e consente di scalare in modo più efficiente su un gran numero di macchine.

Mentre Packer non supporta Vultr out of the box, c'è un plugin che aggiunge quel supporto. Le istruzioni per l'installazione di Packer con supporto Vultr sono disponibili nel README del plug-in. Il resto di questo articolo presuppone che sia installato Packer e il plug-in Vultr.

Come funziona

Lo scopo di Packer è produrre immagini di server o artefatti che possono essere utilizzati per creare un nuovo server esattamente com'era al momento dell'imaging. Per Vultr, questi artefatti sono chiamati istantanee. Il plug-in funziona distribuendo un nuovo VPS, eseguendo i suoi provisioner definiti su di esso, creando un'istantanea di esso e quindi abbattendo il VPS. Quando si desidera creare un nuovo server dall'immagine, è sufficiente chiamare l'API di Vultr per distribuire un nuovo VPS con l'istantanea desiderata come sistema operativo.

Utilizzando Packer

Packer prende un file JSON che definisce la build che deve essere eseguita come input. Ecco un file di esempio che definisce una build Vultr:

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

Questo file ha due chiavi di livello superiore variablese builders. La variableschiave viene utilizzata per definire variabili personalizzate e in questo caso viene utilizzata per incorporare la VULTR_API_KEYvariabile di ambiente in un modo che può essere utilizzato in un secondo momento. La builderschiave contiene un elenco di build da eseguire, in questo caso solo la nostra build Vultr. Abbattiamo un po 'quell'accumulo:

  • type: Definisce il builder da utilizzare effettivamente e per le build di Vultr dovrebbe essere sempre così vultr.
  • api_key: Per eseguire la build, è necessaria una chiave API, che è definita qui. Questo esempio lo definisce come il valore della vultr_api_keyvariabile utente, che più in alto è impostato sul valore della VULTR_API_KEYvariabile d'ambiente.
  • snapshot_description: La descrizione dell'istantanea risultante.
  • region_id: La regione in cui distribuire un VPS. Ciò non influisce sull'istantanea finale, ma solo sul server da cui viene creata l'istantanea.
  • plan_id: Il piano da utilizzare per il VPS. Gli usi futuri di questa istantanea devono definire un piano che sia almeno così grande.
  • os_id: Il sistema operativo su cui basare l'istantanea.
  • ssh_username: Il nome utente che verrà utilizzato durante l'accesso SSH al server per il provisioning. Per i server Linux, questo sarà di solito root.

Per usarlo, salva questo file con un nome simile server.json, quindi esegui il comando packer build server.json. Vedrai alcuni output che indicano lo stato della build, che richiederà alcuni minuti.

Quando si esegue questa build, un nuovo server denominato Snapshotting: My Awesome Appverrà creato, istantaneo e quindi distrutto. Senza i provisioner definiti, è tutto ciò che accade. Per ulteriori informazioni sulla definizione dei provisioner, consultare la documentazione di Packer .

Una volta terminata la compilazione, Packer emetterà l'ID dell'istantanea risultante.

Definizione di regione, piano e sistema operativo

Questi tre valori sono richiesti per ogni build di Vultr, ma possono essere definiti in diversi modi. Per ognuna, dovresti specificare esattamente una delle sue variazioni per evitare ambiguità:

Regione

Le informazioni sulla regione possono essere richieste tramite l'API: https://www.vultr.com/api/#regions_region_list

  • region_id: L'ID della regione, ad es 2
  • region_code: Il codice della regione, ad es ORD

Piano

Le informazioni sul piano possono essere richieste tramite l'API: https://www.vultr.com/api/#plans_plan_list

  • plan_id: L'ID del piano, ad es 201

OS

Le informazioni sul sistema operativo possono essere richieste tramite l'API: https://www.vultr.com/api/#os_os_list

  • os_id: L'ID del sistema operativo, ad es 167


Leave a Comment

Come installare Drone CI su Ubuntu 18.04

Come installare Drone CI su Ubuntu 18.04

Introduzione Drone è una piattaforma di test e consegna automatizzata e continua che funziona sulla propria infrastruttura. Drone supporta qualsiasi lingua, servizio o

Come installare e configurare Concourse CI su Ubuntu 16.04

Come installare e configurare Concourse CI su Ubuntu 16.04

Usi un sistema diverso? Introduzione Lintegrazione continua è una pratica di sviluppo software DevOps che consente agli sviluppatori di unire frequentemente questo

Come installare e configurare Ansible su Debian 9 per luso con Windows Server

Come installare e configurare Ansible su Debian 9 per luso con Windows Server

Usi un sistema diverso? Ansible è uno strumento open source per lautomazione delle attività. Gestisce la configurazione dei server Linux e Windows. Funziona

Come installare e configurare GoCD su CentOS 7

Come installare e configurare GoCD su CentOS 7

Usi un sistema diverso? GoCD è un sistema di consegna e automazione continuo open source. Ti permette di modellare flussi di lavoro complessi usando il suo parallelo an

Bilanciatori del carico Vultr

Bilanciatori del carico Vultr

Che cosè un servizio di bilanciamento del carico I servizi di bilanciamento del carico si trovano di fronte allapplicazione e distribuiscono il traffico in entrata su più istanze dellapplicazione. fo

Introduzione a SaltStack su Ubuntu 17.04

Introduzione a SaltStack su Ubuntu 17.04

SaltStack è un programma di gestione della configurazione basato su Python che è ottimizzato per lautomazione di file di configurazione, distribuzioni e qualsiasi altra cosa

Utilizzo di Chef-solo per configurare unapp Django su Ubuntu

Utilizzo di Chef-solo per configurare unapp Django su Ubuntu

Esistono molti modi per automatizzare il processo di installazione e configurazione di un box. Per qualunque motivo, se il nostro intero sistema a questo punto comprende solo

Come installare Jenkins su CentOS 7

Come installare Jenkins su CentOS 7

Jenkins è un popolare strumento di open source CI (integrazione continua) ampiamente utilizzato per lo sviluppo di progetti, la distribuzione e lautomazione. Questo articolo sarà

Come installare Strider CD su Ubuntu 18.04

Come installare Strider CD su Ubuntu 18.04

Introduzione Strider CD è una piattaforma di distribuzione continua open source. Lapplicazione è scritta in Node.js e utilizza MongoDB come back-end di archiviazione. Passo

Utilizzo di Chocolatey Package Manager su Windows

Utilizzo di Chocolatey Package Manager su Windows

Introduzione Chocolatey offre una gestione dei pacchetti che semplifica la gestione di software e dipendenze su Linux e Windows. Puoi farlo rapidamente e facilmente

Come installare Foreman su CentOS 7

Come installare Foreman su CentOS 7

Usi un sistema diverso? Foreman è uno strumento gratuito e open source che ti aiuta con la configurazione e la gestione di server fisici e virtuali. Forema

Come installare Foreman su Ubuntu 16.04 LTS

Come installare Foreman su Ubuntu 16.04 LTS

Usi un sistema diverso? Foreman è uno strumento gratuito e open source che ti aiuta con la configurazione e la gestione di server fisici e virtuali. Forema

Come installare e configurare Concourse CI su CentOS 7

Come installare e configurare Concourse CI su CentOS 7

Usi un sistema diverso? Introduzione Lintegrazione continua è una pratica di sviluppo software DevOps che consente agli sviluppatori di unire frequentemente questo

Come installare SaltStack su CentOS 7

Come installare SaltStack su CentOS 7

SaltStack, o Salt, è una popolare soluzione di gestione della configurazione open source che può essere utilizzata per implementare lesecuzione remota, la gestione della configurazione, cod

Utilizzo di SaltStack With Pillars su Ubuntu 17.04

Utilizzo di SaltStack With Pillars su Ubuntu 17.04

Mentre SaltStack è un ottimo strumento per eseguire operazioni su molti server contemporaneamente, supporta anche i preset di configurazione definiti per host memorizzati in un

Come installare e configurare Ansible su CentOS 7 per luso con Windows Server

Come installare e configurare Ansible su CentOS 7 per luso con Windows Server

Usi un sistema diverso? Ansible è uno strumento open source per lautomazione delle attività. Gestisce la configurazione dei server Linux e Windows. Funziona

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.