Slik bruker du kommandolinjen med Amazons EC2 API-verktøy

Jeg lastet ned arkivet med EC2 API-verktøy, sjekket dem (jeg installerte GPG og utførte sikkerhetskontroller) og pakket dem ut.

Nå kommer den morsomme biten. Jeg kan kjøre dem og bli overrasket over tingene som kommer tilbake fra Amazon. Jeg har gjort mye arbeid tidligere på mine eksterne EC2-maskiner ved å bruke CLI (Command Line Interface), men jeg har ennå ikke brukt CLI på min lokale maskin.

Jeg utfører disse trinnene på min lokale maskin. Min datamaskin her er en Macbook, så noen av disse trinnene er spesifikke for OSX (de ligner på - men ikke helt de samme som - kommandoene for Windows).

Her er den raske sammendraget.

  1. Åpne en terminal på min personlige datamaskin.
  2. Installer Java.
  3. Opprett sikkerhetsinformasjon (et X.509-sertifikat og privat nøkkel).
  4. Sett opp noen få miljøvariabler.
  5. Kjør min første kommando.

Åpne en terminal på min personlige datamaskin

På en Mac ligger dette i Applications | Verktøy | Terminal.

Hvis terminalen ser gammeldags ut i dagens grafiske verden, er det fordi den er. Terminalens røtter strekker seg tilbake gjennom BSD OS og over nesten hele historien til databehandling til TTYer (Tele-TYpewriters). Det er litt som å innse at haier har eksistert i 400 millioner år.

Installer Java

Java på OSX er en valgfri pakke: den er ikke installert som standard. EC2 API-verktøyene fungerer ikke uten Java.

Hvis jeg ser at en feil på JAVA_HOME ikke er satt når jeg kjører et av EC2 API-verktøyene, kan det bety at Java ikke er installert ennå.

My-MacBook-Pro:~ nick$ ec2-describe-regions 
 /Users/nick/Documents/AWS/ec2-api-tools-1.5.3.1/bin/ec2-cmd: line 18: JAVA_HOME: JAVA_HOME is not set 
 My-MacBook-Pro:~ nick$ 
  1. Kjør en enkel Java-kommando. /usr/bin/java -version Programvareoppdateringsprogrammet starter og viser et popup-vindu med meldingen "For å åpne Java, må du installere en Java-kjøretid."
  2. Installere. Programvareoppdatering finner pakken på Internett, laster ned og installerer den.

Opprett sikkerhetsinformasjon (et X.509-sertifikat og privat nøkkel)

Jeg logger på med sikkerhetsinformasjon. Legitimasjon er ting som gir meg autoritet til å handle, for eksempel å stille inn preferanser i en nettbutikk. Alle, inkludert enhver eremitt som er i en hule og enhver teknofobe som er allergisk mot tastaturer, har logget seg på nettsteder ved å bruke et kontonavn og passord som legitimasjon.

Så langt har jeg brukt AWS-tjenester ved å logge inn på AWS Management Console ved å bruke e-postadressen og passordet mitt, og logge på EC2-maskinene mine ved å bruke min offentlige og private nøkkel.

Nå vil jeg bruke EC2 API Tools. Jeg må bruke et tredje sett med legitimasjon - et sertifikat og privat nøkkel. Slik lager jeg dem.

  1. Åpne en nettleser.
  2. Gå til AWS nettsted.
  3. Logg deg på med dine gamle sikkerhetsinformasjon (e-postadresse og passord).
  4. Naviger til siden Sikkerhetsinformasjon . https://aws-portal.amazon.com/gp/aws/securityCredentials
  5. Finn tilgangsbevis- delen.
  6. Klikk på kategorien X.509-sertifikater .
  7. Klikk på Opprett et nytt sertifikat .
  8. Last ned den private nøkkelen og X.509 sertifikatfiler fra Amazons nettsted til din lokale maskin. Filene har navn på linjen til:

    pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem

    cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem

    Flytt disse filene til en mappe i hjemmekatalogen som heter .ec2 .
  9. Lukk nettleseren.

Sett opp noen få miljøvariabler

Miljøvariabelen JAVA_HOME må settes inn for at Java skal fungere. Av en eller annen grunn setter ikke installasjonen av Java på OSX ikke denne variabelen. Å kjøre et EC2 API-verktøy viser en feil på linje med JAVA_HOME er ikke angitt .

  1. Se feilen. My-MacBook-Pro:~ nick$ ec2-describe-regions /Users/nick/Documents/AWS/ec2-api-tools-1.5.3.1/bin/ec2-cmd: line 18: JAVA_HOME: JAVA_HOME is not set My-MacBook-Pro:~ nick$
  2. Angi verdien. export JAVA_HOME=`/usr/libexec/java_home`
  3. Sjekk arbeidet ditt.

    My-MacBook-Pro: ~ nick $ echo $ JAVA_HOME

    /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

    My-MacBook-Pro: ~ nick $

Angi plasseringene til EC2-filene, den private nøkkelfilen og X.509-sertifikatfilen.

export EC2_HOME=~/Documents/AWS/ec2-api-tools-1.5.3.1/

export PATH=$PATH:$EC2_HOME/bin

export EC2_PRIVATE_KEY=~/.ec2/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem

export EC2_CERT=~/.ec2/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem

Kjør min første kommando

Kjør en kommando som er skrivebeskyttet. En enkel er ec2-beskriv-regioner som viser AWS-regioner. Hvis alt går bra, viser denne kommandoen et halvt dusin oppføringer.

 My-MacBook-Pro:~ nick$ ec2-describe-regions 
 REGION ap-northeast-1 ec2.ap-northeast-1.amazonaws.com 
 REGION sa-east-1 ec2.sa-east-1.amazonaws.com 
 REGION us-east-1 ec2.us-east-1.amazonaws.com 
 REGION ap-northeast-1 ec2.ap-northeast-1.amazonaws.com 
 REGION us-west-2 ec2.us-west-2.amazonaws.com 
 REGION us-west-1 ec2.us-west-1.amazonaws.com 
 REGION ap-southeast-1 ec2.ap-southeast-1.amazonaws.com 
 My-MacBook-Pro:~ nick$ 

Jeg kan leke med denne kommandoen trygt. Jeg kan fjerne sertifikatstedet, bare for å sjekke at dette virkelig brukes til legitimasjon

 My-MacBook-Pro:~ nick$ unset EC2_CERT 
 My-MacBook-Pro:~ nick$ 
 My-MacBook-Pro:~ nick$ ec2-describe-regions 
 Required option '-C, --cert CERT' missing (-h for usage) 
 My-MacBook-Pro:~ nick$ 

Jeg kan også sette sertifikatet til noe ugyldig, som en vanlig fil.

 My-MacBook-Pro:~ nick$ export EC2_CERT=/etc/hosts 
 My-MacBook-Pro:~ nick$ ec2-describe-regions 
 Unexpected error: 
 org.codehaus.xfire.fault.XFireFault: Fault: java.lang.NullPointerException 
  at org.codehaus.xfire.fault.XFireFault.createFault(XFireFault.java:89) 
  at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:83) 
 .. 
  at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79) 
  ... 10 more 
 My-MacBook-Pro:~ nick$ 

Det er mange titalls linjer i denne skumle teksten. Det er en bunke med feilmeldinger en Java-programmerer kan bruke for å finne et unntak.

Reparer skaden.

 My-MacBook-Pro:~ nick$ export EC2_CERT=~/.ec2/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 
 My-MacBook-Pro:~ nick$ 

© Copyright 2021 | pepebotifarra.com