Hoe Bepaling een Digitalocean Druppel met Behulp van Powershell 7

0
35

PowerShell is een snel stijgende shell en programmeertaal die is nu cross-platform en eenvoudig te gebruiken. Door het combineren van PowerShell met de DigitalOcean API, kunnen we snel bepaling middelen, zoals virtuele machines, bekend als Druppels, van scripts van functies.

In dit artikel onderzoeken we hoe gebruik te maken van het DigitalOcean REST API met PowerShell gebruiken om een druppel in de bestaande omgeving.

Het Installeren Van PowerShell Core

Als u werkt met een Windows-systeem, moet u mogelijk de vorige versie van PowerShell bekend als Windows PowerShell. Als u Linux gebruikt, moet u PowerShell installeren om ervoor te zorgen dat wij kunnen uitvoeren van de commando ‘ s en scripts die nodig zijn. Volg deze link voor instructies hoe dit te doen.

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

Een van de grote dingen over PowerShell 7 is dat het kan worden geïnstalleerd in de side-by-side op Windows-systemen en zal niet van invloed zijn op de bestaande Windows PowerShell-omgeving. Op deze manier is het eenvoudig om te beginnen en niet breekt een bestaande scripts.

Maak API Sleutels van DigitalOcean

Voor Terravorm om te communiceren met DigitalOcean, we moeten genereren API Sleutels voor gebruik met de DigitalOcean provider. De volgende stappen beschrijven hoe u een nieuwe API key specifiek voor gebruik met Terravorm. U kunt gebruik maken van andere API Sleutels, maar het is een goede praktijk om niet opnieuw toetsen, waar u kunt gemakkelijk van de toegang als dat nodig is.

  1. Login om de DigitalOcean configuratiescherm.
  1. Navigeer naar de API-sectie.
  1. Klik op “Genereer Nieuwe Token.”
  1. Voer een token naam en laat het token zowel de lees-en schrijf rechten.
  1. Kopieer de API Key, als u zal niet worden weergegeven van het weer. Wij gebruiken deze voor Terravorm.

DigitalOcean REST API

Veel informatie is te vinden in de DigitalOcean REST API-documentatie, maar zijn we gericht op de verificatie en druppel de schepping bellen. Te verifiëren, hebben wij de volgende, als getrokken van de documentatie. Dit wordt bereikt via OAuth, dat is een vervanging voor een gebruikersnaam en wachtwoord. Deze token moet daarom goed worden beschermd als het wordt volledige toegang toestaan om een DigitalOcean account. De volgende koppen zijn nodig voor een juiste verificatie:

  • Vergunning: Drager digitaloceanapitoken
  • Content-Type: application/json

Zonder deze headers, zal de API niet kan worden geverifieerd, en het zal ook niet begrijpen hoe het parseren van de gegevens.

Het maken van de JSON-configuratie

In dit voorbeeld maken we een eenvoudige provisioning druppel bron. We willen gebruik maken van hun goedkoopste beschikbare plan in de NYC1 data center toevoegen, en op een paar van de opties die ervoor zorgt dat de druppel meer flexibel gebruik in de toekomst.

  • Druppel Afbeelding: ubuntu-18.04-x64
  • Regio: NYC1
  • Grootte: s1-vcpu1-1gb

Omdat we het nodig is om te slagen in onze configuratie via JSON, kunnen we opmaken met behulp van de volgende:

$JSON – = @ {
“naam” = “test-web-vm”
“regio” = “nyc1”
“size” = “s-1vcpu-1gb”
“image” = “ubuntu-18-04-x64”
“ipv6” = $true
“private_networking” = $true
“monitoring” = $true
} | ConvertTo-JSON -Comprimeren

De extra opdrachten die voegen we hier zijn voor de monitoring, ipv6 -, en privé-netwerken. Monitoring betekent dat je gegevens, zoals de CPU en het geheugen, van binnen de DigitalOcean cloud-console. Vervolgens kunt u waarschuwingen instellen op deze gegevens, dus het is zeer nuttig voor de toekomst. IPv6 betekent dat uw druppel zal toegankelijk zijn via IPv6, die helpt om de toekomst van uw druppels. Tot slot, private networking betekent dat uw druppel krijgt een 10.x.x.x-adres dat toegankelijk is voor andere druppels, maar niet in het openbare internet.

Er is nog een andere zeer handige mogelijkheid en dat is gegevens van de gebruiker. Voor Linux, hierdoor kun je bepaalde opdrachten uitvoeren op de bevoorrading van de VM, zoals het bijwerken van de pakketten. We kunnen dit recht in de JSON-configuratie, door het toevoegen van dit attribuut op:

$JSON – = @{
“naam” = “test-web-vm”
“regio” = “nyc1”
“size” = “s-1vcpu-1gb”
“image” = “ubuntu-18-04-x64”
“ipv6” = $true
“private_networking” = $true
“monitoring” = $true
“user_data” = “#cloud-confignpackage_update: truenpackage_upgrade: true”
} | ConvertTo-JSON -Comprimeren

Bij het vullen van een user config, zou je merken dat het er een beetje raar uitzien. Je moet voorzichtig zijn van de lijn breekt en dubbele aanhalingstekens te voorkomen dat het breken van de JSON-config.

Het inrichten van de Druppel

Nu hebben we onze configuratie, we zullen het implementeren van de druppel. Om dit te doen, we moeten gewoon het uitvoeren van de cmdlet Beroepen-RestMethod in de PowerShell met behulp van onze configuratie:

$JSON – = @ {
“naam” = “test-web-vm”
“regio” = “nyc1”
“size” = “s-1vcpu-1gb”
“image” = “ubuntu-18-04-x64”
“ipv6” = true
“private_networking” = true
“monitoring” = true
“user_data” = “#cloud-confignpackage_update: truenpackage_upgrade: true”
} | ConvertTo-JSON -Comprimeren

$Params = @{
“URI” = “https://api.digitalocean.com/v2/droplets”
“Method = “POST”
“Lichaam” = $JSON
“Verificatie” = “OAuth”
‘Token’ = (‘digitaloceanapitoken’ | ConvertTo-SecureString -AsPlainText)
“ErrorAction” = ‘Stop’
“Headers” = @{
“Content-Type” = “application/json”
}
}

Beroepen-RestMethod @Params

Na dit gedaan te hebben, krijgen we een bericht van de console, met een return-code van 200 dat geeft aan dat de druppel de schepping was succesvol.

Na het in de console vindt u dat de druppel wordt nu weergegeven zoals verwacht met de configuratie-opties, zoals gedefinieerd. Het kan een paar seconden duren om te maken, maar een van de kenmerken van DigitalOcean is de snelheid van de Druppel die de schepping.

Extra Opties

Er zijn een aantal extra opties die u kunt toepassen, afhankelijk van de omstandigheden. Hieronder worden een aantal parameters die kunnen maken dat het implementeren van een druppel nog makkelijker:

  • ssh_keys
  • back-ups
  • volumes
  • tags

Het is een goede praktijk om niet direct SSH toegang met behulp van een root wachtwoord. Daarom verstrekken van SSH sleutels bij provisioning is een veel veiliger methode. DigitalOcean biedt back-ups, voor een kostprijs, en u kunt deze binnen een API-aanroep. Bovendien DigitalOcean volumes kan worden bevestigd aan een druppel te laten voor roerende block storage. Tot slot, tagging kun je categoriseren en toepassen van bepaalde beleidsmaatregelen, zoals firewalls om een druppel.

Inpakken

Aangezien u kunt vertellen door de combinatie van PowerShell met de DigitalOcean API, kunnen wij u snel en gemakkelijk bepaling van een druppel. Lees verder in de documentatie, die u zou kunnen vinden dat er is veel meer dat je kunt doen om dit effectief te werken en kunt u integreren PowerShell in uw configuraties.