Come per il Provisioning di un Digitalocean Goccia Utilizzando Powershell 7

0
187

PowerShell è un rapido aumento della shell e di linguaggi di programmazione che ora è cross-platform e semplice da usare. Combinando PowerShell con il DigitalOcean API, possiamo rapidamente il provisioning delle risorse, ad esempio le macchine virtuali, noto come Gocce, da uno script di funzioni.

In questo articolo, esploreremo come sfruttare il DigitalOcean API REST con PowerShell per distribuire una goccia nell’ambiente esistente.

L’Installazione Di PowerShell Core

Se si esegue un sistema Windows, si potrebbe avere la versione precedente di PowerShell di Windows PowerShell. Se si dispone di Linux, è necessario installare PowerShell per assicurarsi che siamo in grado di eseguire i comandi e script necessari. Segui questo link per le istruzioni su come fare questo.

https://github.com/PowerShell/PowerShell/tree/master/docs/learning-powershell

Una delle grandi cose su PowerShell 7 è che può essere installato in modalità side-by-side su sistemi Windows e non pregiudica esistenti in ambiente Windows PowerShell. In questo modo, è facile per iniziare e non rompere qualsiasi script esistenti.

Creare Chiavi API da DigitalOcean

Per Terraformare per comunicare con DigitalOcean, abbiamo bisogno di generare Chiavi API per l’utilizzo con il DigitalOcean provider. La procedura seguente viene illustrato come creare una nuova chiave API specificamente per l’uso con Terraforma. È possibile utilizzare altre Chiavi API, ma è consigliabile di non riutilizzare le chiavi, dove si può facilmente disabilitare l’accesso, se necessario.

  1. Accesso al DigitalOcean pannello di controllo.
  1. Passare alla sezione API.
  1. Fare clic su “Crea Nuovo Token.”
  1. Immettere un nome di token e consentire il token di lettura e scrittura.
  1. Copiare la Chiave API, in quanto non sarà mostrata di nuovo. Ci sarà quindi utilizzare questo per Terraformare.

DigitalOcean API REST

Un sacco di informazioni, consultate la DigitalOcean RESTO documentazione delle API, ma siamo concentrati su l’autenticazione e la gocciolina di chiamate di creazione. Per l’autenticazione, abbiamo bisogno dei seguenti, come tirato da documentazione. Questo è realizzato tramite OAuth, che è un sostituto per un nome utente e una password. Questo token, quindi, deve essere ben protetto in quanto consentirà l’accesso completo per un DigitalOcean conto. Le seguenti intestazioni necessarie per la corretta autenticazione:

  • Autorizzazione: Portatore digitaloceanapitoken
  • Content-Type: application/json

Senza queste intestazioni, le API non sarà in grado di eseguire l’autenticazione, sarà anche non capire come analizzare i dati in arrivo.

Creare la configurazione JSON

In questo esempio, il provisioning di una semplice goccia di risorse. Ci vogliono utilizzare il loro più conveniente disponibile piano NYC1 data center, e aggiungere un paio di opzioni che renderanno la goccia più flessibili da utilizzare in futuro.

  • Goccia Immagine: ubuntu-18.04-x64
  • Regione: NYC1
  • Dimensioni: s1-vcpu1-1gb

Perché dobbiamo passare la nostra configurazione tramite JSON, possiamo formato utilizzando il seguente:

$JSON = @{
“name” = “test-web-vm”
“regione” = “nyc1”
“size” = “s-1vcpu-1gb”
“immagine” = “ubuntu-18-04-x64”
“ipv6” = $true
“private_networking” = $true
“il monitoraggio” = $true
} | ConvertTo-JSON -Compress

I comandi aggiuntivi che stiamo aggiungendo qui sono per il monitoraggio, ipv6, e la rete privata. I mezzi di controllo che si hanno parametri, come la CPU e la memoria, la DigitalOcean cloud console. È quindi possibile impostare avvisi su questi parametri, quindi è molto utile per il futuro. IPv6 significa che il vostro goccia sarà accessibile da IPv6, che aiuta a prova di futuro goccioline. Infine, la rete privata significa che la vostra goccia di ottenere un 10.x.x.x indirizzo che è accessibile da altre goccioline, ma non il pubblico di internet.

C’è un’altra abilità utilissima e che i dati dell’utente. Per Linux, questo permette di eseguire alcuni comandi nella fornitura di VM, come l’aggiornamento dei pacchetti. Si può includere questo diritto in JSON, configurazione, aggiungendo l’attributo:

$JSON = @{
“name” = “test-web-vm”
“regione” = “nyc1”
“size” = “s-1vcpu-1gb”
“immagine” = “ubuntu-18-04-x64”
“ipv6” = $true
“private_networking” = $true
“il monitoraggio” = $true
“user_data” = “#cloud-confignpackage_update: truenpackage_upgrade: true”
} | ConvertTo-JSON -Compress

Quando la compilazione di un utente config, si potrebbe notare che può sembrare un po ‘ strano. È necessario essere attenti a interruzioni di riga e le virgolette per evitare di rompere il JSON config.

Provisioning Goccia

Ora che abbiamo creato la nostra configurazione, potremo distribuire la goccia. Per fare questo, abbiamo semplicemente bisogno di eseguire il cmdlet Invoke-RestMethod in PowerShell utilizza il nostro configurazione:

$JSON = @{
“name” = “test-web-vm”
“regione” = “nyc1”
“size” = “s-1vcpu-1gb”
“immagine” = “ubuntu-18-04-x64”
“ipv6” = true
“private_networking” = true
“il monitoraggio” = true
“user_data” = “#cloud-confignpackage_update: truenpackage_upgrade: true”
} | ConvertTo-JSON -Compress

$Params = @{
“URI” = “https://api.digitalocean.com/v2/droplets”
“Metodo” = “POST”
“Body” = $JSON
“Autenticazione” = “OAuth”
Il “segno” = (‘digitaloceanapitoken’ | ConvertTo-SecureString -AsPlainText)
“ErrorAction” = ‘Stop’
“Intestazioni” = @{
“Content-Type” = “application/json”
}
}

Invoke-RestMethod @Params

Dopo aver fatto questo, si dovrebbe ottenere un messaggio di successo, dalla console, con un codice di ritorno di 200 che indica che la sua creazione è stata un successo.

Dopo essere andato nella console, troverete che la goccia viene ora visualizzata come previsto con tutte le opzioni di configurazione, come definito. Si può prendere un paio di momenti di creare, ma uno dei tratti distintivi di DigitalOcean è la velocità della Goccia creazione.

Opzioni Aggiuntive

Ci sono altre opzioni che è possibile applicare, a seconda delle circostanze. Qui di seguito sono elencati alcuni parametri che possono rendere la distribuzione di una goccia ancora più facile:

  • ssh_keys
  • backup
  • volumi
  • tag

È consigliabile non permettono l’accesso SSH utilizzando una password di root. Pertanto, fornendo chiavi SSH su di provisioning è un metodo più sicuro. DigitalOcean offre backup, per un costo, e si può attivare dall’interno di una chiamata API. Inoltre, DigitalOcean volumi possono essere collegati ad una goccia per consentire mobili di archiviazione di blocco. Infine, tagging permette di organizzare e applicare alcuni criteri, quali firewall ad una goccia.

Conclusioni

Come si può capire dalla combinazione di PowerShell con il DigitalOcean API, si può rapidamente e facilmente a disposizione una goccia. Come leggere la documentazione, si potrebbe scoprire che c’è molto di più che si può fare per fare questo lavoro in modo efficace e consentono di integrare PowerShell in tutte le configurazioni.