Rozbudowa API v4 w kierunku automatyzacji

kazi | 2021-05-18 08:05:17 UTC | #1

Chciałbym zaproponować rozbudowę API v4.

Czego brakuje według mnie?

Argumentacja wprowadzenia takich endpointów

Dzięki wprowadzeniu takich zmian, będzie można łatwo zautomatyzować proces tworzenia VPS’ów i instalacji niezbędnego oprogramowania za pomocą Pythona (np. z użyciem mojej biblioteki) i Ansible.

Post Scriptum

No i tak dodatkowo, bo jest to również powiązane z automatyzacją, lecz nie tylko. Dajdzie człowiekowi możliwość wrzucenia własnego klucza SSH do panelu. Cloud-init to łyka, a praca z Ansible będzie jeszcze łatwiejsza ;)

Jeżeli zamierzacie wprowadzić takie zmiany, spodziewajcie się ode mnie posta z przykładowym użyciem opierającym się na mojej blibiotece oraz Ansible.

Podoba się pomysł? Plusujcie dedykowanym do tego serduszkiem pod postem, dzięki :heart:


Nieznajomy11 | 2020-08-09 13:52:10 UTC | #2

[quote=”kazi, post:1, topic:15671”]
możliwość zamówienia serwera z poziomu API
[/quote]

VPS zamawia się już w nowym panelu, co oznacza, że taka opcja powinna już być bez problemu dostępna, bo panel korzysta z tego właśnie API. :thinking:

[quote=”kazi, post:1, topic:15671”]
możliwość reinstalacji serwera z poziomu API
[/quote]

Jest to funkcja, która zostanie przeniesiona z czasem do nowego panelu i wtedy będzie dostępna z API. W końcu to jedna z podstawowych, które zawsze były dostępne - tak jak włączanie/wyłączanie.

[quote=”kazi, post:1, topic:15671”]
możliwość pobrania credentiali do SSH z poziomu API
[/quote]

Przechowywanie takich rzeczy przez hosting nie powinno mieć miejsca, nawet w przypadku instalacji z hasłem. Po wysłaniu e-mail takich danych nie powinno być w systemie.

[quote=”kazi, post:1, topic:15671”]
Dajdzie człowiekowi możliwość wrzucenia własnego klucza SSH do panelu.
[/quote]

https://forum.lvlup.pro/t/klucz-publiczny-ssh-dodawany-przy-instalacji/15510


Mespi | 2020-08-09 13:53:09 UTC | #3

[quote=”kazi, post:1, topic:15671”]
możliwość pobrania credentiali do SSH z poziomu API
[/quote]

Takie informacje jak nowe dane do VPS’a zostają wysyłanie tylko na maila i raczej to się nie zmieni, gdyż na mailu dostajesz potwierdzenie reinstalacji/zakupu.


kazi | 2020-08-09 13:58:24 UTC | #4

Dzięki za szybką i profesjonalną odpowiedź!

Aczkolwiek, mam dwie uwagi:

[quote=”Nieznajomy11, post:2, topic:15671”]
VPS zamawia się już w nowym panelu, co oznacza, że taka opcja powinna już być bez problemu dostępna, bo panel korzysta z tego właśnie API.
[/quote]

Jeżeli jest taki endpoint w API, to nie jest udokumentowany w Swaggerze.

[quote=”Nieznajomy11, post:2, topic:15671”]
Przechowywanie takich rzeczy przez hosting nie powinno mieć miejsca, nawet w przypadku instalacji z hasłem. Po wysłaniu e-mail takich danych nie powinno być w systemie.
[/quote]

I tak są przechowywane cały czas w cloud-inicie. Dajcie możliwość ich resetu/zmiany w takim wypadku.

Edit: Albo zwracajcie je w odpowiedzi do stworzenia zamówienia na VPS przez API, bo hasło i tak musi zostać wygenerowane wcześniej, aby móc przygotować cloud-inita (choć nie wiem na jakim etapie jest to wykonywane). Choć dodanie kluczy SSH już rozwiązuje problem, więc to tylko kolejna sugestia.


Nieznajomy11 | 2020-08-09 14:08:03 UTC | #5

[quote=”kazi, post:4, topic:15671”]
I tak są przechowywane cały czas w cloud-inicie.
[/quote]

Nie, hasła nie są przechowywane w żadnym cloud-inicie. Tak jak /etc/shadow na dysku wirtualnym VPS nie zawiera haseł, tak samo nie zawiera ich konfiguracja cloud-init.

Proponuję zapoznać się z tematem:

https://cloudinit.readthedocs.io/en/latest/topics/modules.html?highlight=passwd#users-and-groups


kazi | 2020-08-09 14:11:05 UTC | #6

[quote=”Nieznajomy11, post:5, topic:15671”]
Nie, hasła nie są przechowywane w żadnym cloud-inicie. Tak jak /etc/shadow na dysku wirtualnym VPS nie zawiera haseł, tak samo nie zawiera ich konfiguracja cloud-init.
[/quote]

Racja, byłem przekonany że są one trzymane w jawnym tekście, w takim razie przepraszam i zgłaszam postanowienie poprawy :cryingcatface:


SystemZ | 2020-08-11 11:21:57 UTC | #7

Reinstalacja pojawi się w APIv4, obecnym blokerem jest brak scope’ów przy kluczach API.

Będzie można ustawić autoryzowany klucz publiczny SSH przy reinstalacji przez API.

Automatyzacja zamówień została poruszona już wcześniej:
https://forum.lvlup.pro/t/kilka-sugestii-dotyczacych-uslug-lvl-up/14885?u=systemz