Leaseweb Cloud AWS EC2 podpora

Jak možná víte, některé produkty LeaseWeb zahrnují ve svém portfoliu veřejný a soukromý cloud založený na Apache CloudStack, který podporuje kompletní rozhraní API. My, LeaseWeb, jsme o tom velmi otevřeni a snažíme se, abychom byli co nejvíce zapojení do společnosti a vývoji produktů co nejvíce. Pokud jste soukromým zákazníkem služby Cloud, můžete být obeznámeni s tím. V tomto článku se zaměřujeme na současné a bývalé uživatele EC2, kteří pravděpodobně již používají nástroje založené na rozhraní AWS CLI, tím, že prokazují, jak je můžete používat s řešeními LeaseWeb Private Cloud.

Apache CloudStack podporuje rozhraní EC2 API na nějaký čas v raných dnech, ale po cestě, zatímco EC2 API se vyvíjel, podpora CloudStacku poněkud stagnovala. Ve skutečnosti byla součást AWS API z aplikace CloudStack nedávno odpojen z hlavní distribuce, aby se zjednodušila údržba kódu.

Zatímco to může znít jako špatná zpráva, není to vůbec. Mezitím se objevil další projekt, EC2Stack, a byl přijat také Apache. Tento nový zásobník podporuje nejnovější rozhraní API (v době psaní) a je mnohem jednodušší k udržování v univerzálnosti jako v databázi. Skutečnost, že je napsána v Pythonu, otevírá publikum další příspěvek a zároveň umožňuje rychlou opravu / aktualizaci bez opětovného sestavování.

Takže v určitém okamžiku jsem si myslel, že s vámi mohu s vámi sdílet, jak rychle nastavit AWS kompatibilní API, abyste mohli znovu použít své stávající skripty. Na detaily.

Koncový bod systému AWS působí jako poskytovatel rozhraní API EC2 a požaduje proxy pro LeaseWeb API, což je rozšíření nativní rozhraní API CloudStack. A protože je tento API k dispozici pro zákazníky služby Private Cloud, může být EC2Stack nainstalován samotným zákazníkem.

Následuje ilustrace toho, jak lze toto provést. Pro záznam, používám Ubuntu 14.04 jako pracovní plochu a já budu nastavit EC2stack proti soukromému Cloudu společnosti LeaseWeb v Nizozemí.

Prvním krokem je shromáždit všechny informace pro EC2stack. Přejděte na konzolu platformy LeaseWeb a získejte klíče API pro vaše uživatele (rozostřené citlivé informace):

apikely - rozmazané

Poznamenejte si hodnoty pro klíč API a tajný klíč (měli byste již znát koncepty z AWS a / nebo LeaseWeb Private Cloud).

Nyní nainstalujte EC2Stack a nakonfigurujte jej:

[email protected]:~$ pip nainstalovat ec2stack 
[...]
[email protected]:~$ ec2stack-configure 
Adresa EC2Stack bind [0.0.0.0]: 127.0.0.1 
Port vázání EC2Stack [5000]: 5000 
Cloudstack hostitel [mgt.cs01.leaseweb.net]: csrp01nl.leaseweb.com 
Port cloud stack [443]: 443 
Protokol Cloudstack [https]: https 
Cesta Cloudstack [/ client / api]: / client / api 
Cloudstack vlastní název disku []: dvoujádrový
Výchozí název zóny cloudu [Evoswitch]: CSRP01 
Chcete zadat mapování typu instance? (Ano ne): Ano 
Vložte typ instance AWS EC2, který chcete mapovat: t1.micro 
Vložte název typu instance, který chcete mapovat, na adresu: Debian 7 amd64 5GB 
Chcete přidat další mapování? (Ano ne): Ne 
Přejete si zadat typ zdroje pro mapování ID zdrojů pro podporu tagů? (Ano ne): Ne 
INFO [alembic.migration] Kontext impl SQLiteImpl. 
INFO [alembic.migration] Bude převzít non-transakční DDL. 

Hodnota pro název zóny se bude lišit, pokud váš soukromý cloud není v holandském POP. Zbytek hodnot lze získat z konzoly platformy:

serviceoffering-rozmazané

šablona - rozmazané

V tomto okamžiku by váš proxy server EC2stack měl být schopen mluvit se svým soukromým Cloudem, a proto jej nyní musíme pověřit, aby jej spustil a přijal volání API EC2 pro vašeho uživatele. Prozatím stačí spustit na samostatném shellu:

[Email chráněn]: ~ $ ec2stack -d DEBUG 
 * Běží na http: // 127.0.0.1: 5000 / * Restartování s reloader

A nyní zaregistrujte svého uživatele pomocí klíčů, které jste shromáždili od prvního kroku:

[Email chráněn]: ~ $ ec2stack-register http: // localhost: 5000 H5xnjfJy82a7Q0TZA_8Sxs5U-MLVrGPZgBd1E-1HunrYOWBa0zTPAzfXlXGkr-p0FGY-9BDegAREvq0DGVEZoFjsT PYDwuKWXqdBCCGE8fO341F2-0tewm2mD01rqS1uSrG1n7DQ2ADrW42LVfLsW7SFfAy7OdJfpN51eBNrH1gBd1E 
Successfully Registered!

A to je, co se týče služby API. Stejně jako obvykle s AWS CLI, musíte nyní CLI "svázat" s těmito novými pověřeními:

[Email chráněn]: ~ $ aws configure 
Identifikátor přístupového klíče AWS [**************** yI2g]: H5xnjfJy82a7Q0TZA_8Sxs5U-MLVrGPZgBd1E-1HunrYOWBa0zTPAzfXlXGkr-p0FGY-9BDegAREvq0DGVEZoFjsT
AWS tajný přístupový klíč [**************** L4sw]: PYDwuKWXqdBCCGE8fO341F2-0tewm2mD01rqS1uSrG1n7DQ2ADrW42LVfLsW7SFfAy7OdJfpN51eBNrH1gBd1E  Výchozí název oblasti [CS113]: CSRP01 
Výchozí formát výstupu

: text

A to je vše! Nyní jste připraveni používat AWS CLI, jak jste zvyklí:

[Email chráněn]: ~ $ aws - endpoint = http: // 127.0.0.1: 5000 - výstup json ec2 popsat-obrázky | jq '.Images [] .Název ' 
"Ubuntu 12.04 i386 30GB" "Ubuntu 12.04 amd64 5GB" "Ubuntu 13.04 amd64 5GB" "CentOS 6 amd64 5GB" "Debian 6 amd64 5GB" "CentOS 7 amd64 20140822T1151" "Debian 7 64 10 20141001T1343" "Debian 6 i386 5GB" " Ubuntu 14.04 64bit s docker.io“ "Ubuntu 12.04 amd64 30GB" "Debian 7 i386 5GB" "Ubuntu 14.04 amd64 20140822T1234" "Ubuntu 12.04 i386 5GB" "Ubuntu 13.04 i386 5GB" "CentOS 6 i386 5GB" "CentOS 6 amd64 20140822T1142" "Ubuntu 12.04 amd64 20140822T1247" "Debian 7 amd64 5GB"

Vezměte prosím na vědomí, že jsem použil pouze výstup JSON (a JQ analyzovat výsledky), protože jakýkoli jiný formát by se na stránku nezacházel.

Chcete-li vytvořit VM s vestavěnými klíči SSH, měli byste vytvořit / nastavit klíčové páry v LeaseWeb Private Cloud, pokud jste tak neučinili. V následujícím příkladu generuji nový, ale samozřejmě můžete načíst stávající klíče.

ssh-keypairs-rozmazané

Budete chtít zkopírovat vložený klíč (v soukromém klíči) do souboru a chránit ho. Uložil jsem můj v $ HOME / .ssh / id_ntavares.csrp01.key.

ssh-keypairs2-rozmazané

Tento klíč bude později použit pro přihlášení do vytvořených instancí a extrahování hesla správce. Nakonec instruujte AWS CLI, aby při nasazování vašich instancí použil tuto klíčenku:

[Email chráněn]: ~ $ aws - endpoint = http: // 127.0.0.1: 5000 spustit-instance ec2 \
 - dvojícka typu typu \
 --image-id 7c123f01-9865-4312-a198-05e2db755e6a \
 - key-name ntavares-key 
INSTANCES	KVM	7c123f01-9865-4312-a198-05e2db755e6a	a0977df5-d25e-40cb-9f78-b3a551a9c571	dualcore	ntavares-key	2014-12-04T12:03:32+0100	10.42.1.129 
Umístění CSRP01 
STATE 16 běží 

Všimněte si, že image-id je převzat z předchozího výpisu (ten, který jsem zjednodušil pomocí JQ).

Uvědomte si také, že přestože EC2stack je poměrně nový a na tomto EC2-CS mostu jsou ještě nějaké omezení - viz mapování podporovaných voláníAPI. Například jeden, se kterým můžete v době psaní tohoto článku (~ 2015) narazit, nemohl nasadit instanci, pokud používáte více izolovaných sítí (nebo více VPC). Amazon sdílí tento koncept také, a jednoduchá záplata bylo nutné.

Pro toto demo skutečně běžíme v prostředí s několika izolovanými sítěmi, takže pokud byste spustili výše uvedený příkaz, získali byste následující výstup:

[Email chráněn]: ~ $ aws - endpoint = http: // 127.0.0.1: 5000 spustit-instance ec2 \
 - dvojícka typu typu \
 --image-id 7c123f01-9865-4312-a198-05e2db755e6a \
 - key-name ntavares-key
Chyba klienta (InvalidRequest) došlo při volání operace RunInstances: Více než 1 výchozí Izolované sítě jsou nalezeny pro účet Acct [47504f6c-38bf-4198-8925-991a5f801a6b-rme]; uveďte identifikátory sítě

Mezitím se patch LeaseWeb sloučila, stejně jako mnoho dalších, které demonstrují sílu Open Source a aktivitu tohoto projektu.

Samozřejmě existují základní úkoly údržby:

[Email chráněn]: ~ $ aws --endpoint = http: // 127.0.0.1: 5000 popisy instance ec2 
RESERVATIONS	None 
INSTANCES	KVM	7c123f01-9865-4312-a198-05e2db755e6a	a0977df5-d25e-40cb-9f78-b3a551a9c571	dualcore	ntavares-key	2014-12-04T12:03:32+0100	10.42.1.129	10.42.1.129 PLACEMENT CSRP01 výchozí STATE 16 běží

Zvýraznil jsem některé informace, které potřebujete nyní pro přihlášení k instanci: id instance a IP adresu. Můžete se přihlásit buď pomocí ssh keypair:

[[Email chráněn] ~] # ssh -i $ HOME / .ssh / id_ntavare.csrp01.key [Email chráněn] 
Linux localhost 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 

[...] Debian GNU / Linux přichází s absolutně žádnou zárukou v rozsahu povoleném platnými právními předpisy. 
[Email chráněn]: ~ #

Pokud potřebujete, heslo můžete získat stejně jako v případě EC2:

[Email chráněn]: ~ $ aws --endpoint=http://127.0.0.1:5000 ec2 get-password-data --instance-id a0977df5-d25e-40cb-9f78-b3a551a9c571 
None dX5LPdKndjsZkUo19Z3/J3ag4TFNqjGh1OfRxtzyB+eRnRw7DLKRE62a6EgNAdfwfCnWrRa0oTE1umG91bWE6lJ5iBH1xWamw4vg4whfnT4EwB/tav6WNQWMPzr/yAbse7NZHzThhtXSsqXGZtwBNvp8ZgZILEcSy5ZMqtgLh8Q=

Stejně jako u EC2, heslo je vráceno zašifrované, takže budete potřebovat klíč k jeho zobrazení:

[Email chráněn]: ~ $ aws - endpoint = http: // 127.0.0.1: 5000 ec2 get-heslo-data - id-id-id a0977df5-d25e-40cb-9f78-b3a551a9c571 | awk '{tisk $ 2}'> ~ / tmp.1
[Email chráněn]: ~ $ openssl enc -base64 -v tmp.1 -out tmp.2 -d -A 
[Email chráněn]: ~ $ openssl rsautl -decrypt -v tmp.2 -text -inkey $ HOME / .ssh / id_ntavares.csrp01.key 
[Email chráněn]: ~ $ kočka tmp.3; echo 
hI5wueeur
[Email chráněn]: ~ $ rm -f tmp. {1,2,3} 
[[Email chráněn] ~] # sshpass -p hI5wueeur ssh [Email chráněn] 
Linux localhost 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 [...] Debian GNU / Linux přichází s absolutně žádnou zárukou v rozsahu povoleném příslušnými právními předpisy. Poslední přihlášení: Čt Pros 4 13: 33: 07 2014 z jump.rme.leasewebcloud.com 
[Email chráněn]: ~ #

Scénář několika izolovaných sítí

Pokud již ve vaší cílové platformě běžíte několik izolovaných sítí (buď VPC nebo ne), musíte zadat parametr -subnet-id příkazu run-instances, který určí, do které sítě bude instance nasazena; jinak CloudStack bude stěžovat na to, že neví, v jaké síti nasadí instanci. Věřím tomu, že je to kvůli tomu, že Amazon neumožňuje využívat Izolovanou síť jako volně jako LeaseWeb - LeaseWeb vám poskytuje plnou flexibilitu na konzoli platformy.

Vzhledem k tomu, že EC2stack nepodporuje popisovat síťové akcie (k prosinci 2014), abyste mohli určit, které izolované sítě byste mohli použít, nejsnazší způsob, jak je určit, je přejít na konzolu platformy a zkopírovat a vložit ID sítě o síti, kterou vás zajímá:

Potom můžete použít -subnet-id:

[Email chráněn]: ~ $ aws - endpoint = http: // 127.0.0.1: 5000 spustit-instance ec2 \
 - dvojícka typu typu \
 --image-id 7c123f01-9865-4312-a198-05e2db755e6a \
 - key-name ntavares-key \
 --subnet-id 5069abd3-5cf9-4511-a5a3-2201fb7070f8
PLACEMENT CSRP01 
STATE 16 běží 

Doufám, že jsem ukázal trochu toho, co lze udělat, pokud jde o kompatibilní EC2 API. Jiné funkce jsou k dispozici pro složitější úkoly, ačkoli, jak již bylo napsáno dříve, EC2stack je zcela nový, pro který byste mohli potřebovat komunitní pomoc, pokud nemůžete opravit opravu samostatně. Na stránkách LeaseWeb nás velmi zajímá, jaké jsou vaší případy použití, a proto nás můžete upozornit.

Napsat komentář

Tyto stránky používají Akismet k omezení spamu. Zjistěte, jak jsou vaše údaje komentářů zpracovávány.