Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
| navody:vps:api [2017/12/28 12:59] – upraven příkaz instalace gem install vpsfree-client - od verze 10.12 je třeba spouštět příkaz se sudo h00ked | navody:vps:api [2026/07/12 12:50] (aktuální) – Publish reviewed KB release aither | ||
|---|---|---|---|
| Řádek 2: | Řádek 2: | ||
| ====== API ====== | ====== API ====== | ||
| - | Naše API běží na adrese https:// | + | Naše API běží na adrese https:// |
| - | akcí, stejně jako z webového | + | co jde naklikat ve webovém |
| - | správa uživatelských profilů (adresa, e-mail, apod.). | + | běžící na https:// |
| - | + | ||
| - | Ve skutečnosti webové rozhraní běžící na https:// | + | |
| - | využívá a pro každý úkon jej volá. | + | |
| ===== Dokumentace API ===== | ===== Dokumentace API ===== | ||
| - | Dokumentace API, tzn. seznam | + | Dokumentace API, tzn. seznam |
| - | parametrů je k vidění na https:// | + | parametrů je k vidění na https:// |
| - | Bez přihlášení se zobrazuje seznam všech | + | Bez přihlášení se zobrazuje seznam všech |
| pracovat pouze administrátoři. Vpravo nahoře se lze přihlásit stejnými údaji | pracovat pouze administrátoři. Vpravo nahoře se lze přihlásit stejnými údaji | ||
| jako do vpsAdminu a poté se zobrazí pouze objekty, akce a parametry, se | jako do vpsAdminu a poté se zobrazí pouze objekty, akce a parametry, se | ||
| Řádek 26: | Řádek 23: | ||
| * Ruby - https:// | * Ruby - https:// | ||
| - | * PHP - https:// | + | * PHP - https:// |
| - | * JavaScript - https:// | + | * JavaScript - https:// |
| - | * Webové rozhraní z HaveAPI - https:// | + | * Go - https:// |
| - | * Souborový systém založený na FUSE - https:// | + | * Webové rozhraní z HaveAPI - https:// |
| + | * Souborový systém založený na FUSE - https:// | ||
| Ukázka použití je vždy v '' | Ukázka použití je vždy v '' | ||
| Řádek 39: | Řádek 37: | ||
| [[https:// | [[https:// | ||
| - | ===== Autentizace ===== | + | **poznámka** Pokud API vpsfree vrací http kód 500, ujistěte se, že váš REST klient posílá http hlavičku `User-Agent: |
| - | Lze využívat dvě autentizační metody. Tou první a jednodušší z nich je HTTP | + | |
| - | basic. S každým požadavkem na API se musí zaslat jméno | + | |
| - | volba pro jednorázové akce, pokud je ale potřeba API volat vícekrát nebo | + | |
| - | automatizovaně, ukládání hesla na disk či neustálé opisování není dobrý nápad. | + | |
| - | Druhou metodou je autentizace přes tokeny. Funguje to tak, že klient nejprve | ||
| - | požádá o vytvoření tokenu, k tomu potřebuje jméno a heslo. Jakmile dostane | ||
| - | token, může jméno a heslo zapomenout a dále se autentizuje získaným tokenem. | ||
| - | Tokeny mohou být několika typů s různě dlouhou životností: | ||
| - | * fixed - platnost tokenu je pevně dána | + | ===== Autentizace ===== |
| - | * renewable_manual - platnost tokenu lze manuálně prodloužit | + | API podporuje dva způsoby autentizace: |
| - | * renewable_auto - platnost tokenu je prodloužena při každém požadavku | + | |
| - | * permament - token je platný napořád, resp. dokud není smazán | + | |
| - | Typ tokenu a časový interval, o který se prodlužuje, | + | * [[# |
| + | * [[# | ||
| - | ===== CLI ===== | + | Konkrétní ukázky autentizace pro podporované programovací jazyky a CLI najdete |
| - | [[https://github.com/vpsfreecz/vpsfree-client|Klient pro Ruby]] obsahuje i CLI. | + | v [[https://api.vpsfree.cz/v6.0/#auth|dokumentaci API]]. |
| - | Pro správnou funkci vyžaduje Ruby >= 2.0 a nainstalované hlavičkové soubory | + | |
| - | Ruby, OpenSSL a ncurses (většinou balíčky s příponou '' | + | |
| - | < | + | ==== HTTP Basic ==== |
| - | Na OS X je nutné nainstalovat OpenSSL přes [[http:// | + | S každým požadavkem na API se musí zaslat jméno a heslo v HTTP hlavičce " |
| - | poté se dá nainstalovat EventMachine (gem, jenž klient vyžaduje). | + | Je to dobrá volba pro jednorázové akce, pokud je ale potřeba API volat vícekrát nebo |
| + | automatizovaně, ukládání hesla na disk či neustálé opisování není dobrý nápad. HTTP basic | ||
| + | nelze použít, pokud máte aktivované dvoufaktorové ověřování. | ||
| - | <code bash> | + | ==== Tokeny ==== |
| - | $ brew install openssl | + | Klient nejprve požádá o vytvoření tokenu, k tomu potřebuje jméno, heslo a připadně i TOTP. |
| - | $ sudo gem install eventmachine -- --with-opt-include="/ | + | Jakmile klient dostane token, může jméno a heslo zapomenout a dále se autentizuje |
| - | </ | + | získaným tokenem. |
| - | </ | + | |
| - | Nainstalovat jej lze pomocí ruby gems: | + | Tokeny mohou být několika typů s různě dlouhou životností: |
| - | <code bash> | + | * //fixed// - platnost tokenu je pevně dána |
| - | $ sudo gem install vpsfree-client | + | * // |
| - | </code> | + | |
| + | * // | ||
| - | ==== Instalace ve Windows 10 využitím Ubuntu Linux subsystem ==== | + | Typ tokenu a časový interval, o který se prodlužuje, si volí klient. |
| - | === Instalace Ubuntu (Linux subsystemu Windows 10) === | + | ===== Scopes |
| + | U autentizačních tokenů si můžeme zvolit, jaké akce bude token mít k dispozici. | ||
| + | To se může hodit u tokenů s dlouhou nebo permanentní platností. Každá akce | ||
| + | má svůj //scope//, jehož název najdeme v dokumentaci. Dostupné scope se nastavuje, | ||
| + | když žádáme o nový token, tj. zasílá se společně s přihlašovacími údaji. | ||
| - | - ve Windows 10 povolit developer mode, nechat nainstalovat | + | Ukázky možných scopes: |
| - | - přes Programy a funkce otevřít přidání součástí Windows, úplně dole zvolit Linux subsystem, nechat nainstalovat a restartovat počítač | + | |
| - | - po restartu jako admin spustit v nabídce Start bash | + | |
| - | - vytvořit Unix username a heslo | + | |
| - | - stisknout y a nechat nainstalovat základ Ubuntu | + | |
| - | === Instalace závislostí === | + | * '' |
| + | * prázdný scope, přístup je povolen jen k akci '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| - | <code bash> | + | Scope může obsahovat globy pro název resource a akce. Akce je od resource oddělena křížkem (''#'' |
| - | sudo apt-get install ruby2.1 ruby2.1-dev libssl-dev make g++ | + | |
| - | </ | + | |
| - | === Quick & Dirty fix pro nastavení ruby2.1 jako výchozího namísto 1.9 === | + | ===== Instalace klienta |
| + | [[https:// | ||
| + | (rozhraní pro příkazovou řádku) a knihovnu pro použití v Ruby skriptech. | ||
| + | Pro správnou funkci vyžaduje Ruby >= 2.7, nainstalované hlavičkové soubory | ||
| + | Ruby a ncurses (většinou balíčky s příponou '' | ||
| + | Poté klienta nainstalujeme pomocí Ruby gems: | ||
| <code bash> | <code bash> | ||
| - | sudo rm / | + | gem install vpsfree-client |
| - | sudo ln -s / | + | |
| - | sudo ln -s / | + | |
| - | sudo ln -s / | + | |
| - | sudo ln -s / | + | |
| - | sudo ln -s / | + | |
| - | sudo gem update --system | + | |
| - | sudo gem pristine --all | + | |
| </ | </ | ||
| - | Zdroj: http:// | + | Konkrétní postupy instalace podle platformy: |
| - | + | ||
| - | === Instalace vpsfree-client === | + | |
| - | + | ||
| - | <code bash> | + | |
| - | sudo gem install vpsfree-client | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | ---- | + | |
| + | * Linux | ||
| + | * [[navody: | ||
| + | * [[navody: | ||
| + | * [[navody: | ||
| + | * [[navody: | ||
| + | * [[navody: | ||
| Po instalaci by v '' | Po instalaci by v '' | ||
| Řádek 131: | Řádek 119: | ||
| <code bash> | <code bash> | ||
| - | $ PATH=" | + | $ PATH=" |
| </ | </ | ||
| - | ==== Použití ==== | + | ===== Použití |
| < | < | ||
| Řádek 178: | Řádek 166: | ||
| Available resources: | Available resources: | ||
| - | auth_token | ||
| cluster | cluster | ||
| cluster_resource | cluster_resource | ||
| + | cluster_resource_package | ||
| + | cluster_resource_package.item | ||
| dataset | dataset | ||
| dataset.snapshot | dataset.snapshot | ||
| Řádek 190: | Řádek 179: | ||
| environment.config_chain | environment.config_chain | ||
| environment.dataset_plan | environment.dataset_plan | ||
| + | host_ip_address | ||
| integrity_check | integrity_check | ||
| integrity_fact | integrity_fact | ||
| integrity_object | integrity_object | ||
| ip_address | ip_address | ||
| - | ip_range | ||
| ip_traffic | ip_traffic | ||
| ip_traffic_monitor | ip_traffic_monitor | ||
| Řádek 207: | Řádek 196: | ||
| migration_plan.vps_migration | migration_plan.vps_migration | ||
| network | network | ||
| + | network_interface | ||
| node | node | ||
| node.status | node.status | ||
| Řádek 212: | Řádek 202: | ||
| os_template | os_template | ||
| pool | pool | ||
| + | session_token | ||
| snapshot_download | snapshot_download | ||
| + | system_config | ||
| transaction | transaction | ||
| transaction_chain | transaction_chain | ||
| Řádek 219: | Řádek 211: | ||
| user.cluster_resource | user.cluster_resource | ||
| user.public_key | user.public_key | ||
| + | user.mail_role_recipient | ||
| + | user.mail_template_recipient | ||
| user.state_log | user.state_log | ||
| + | user_cluster_resource_package | ||
| + | user_cluster_resource_package.item | ||
| + | user_namespace | ||
| + | user_namespace_map | ||
| + | user_namespace_map.entry | ||
| user_session | user_session | ||
| vps | vps | ||
| Řádek 225: | Řádek 224: | ||
| vps.config | vps.config | ||
| vps.feature | vps.feature | ||
| - | vps.ip_address | ||
| vps.mount | vps.mount | ||
| vps.outage_window | vps.outage_window | ||
| Řádek 231: | Řádek 229: | ||
| vps.status | vps.status | ||
| vps_config | vps_config | ||
| + | monitored_event | ||
| + | monitored_event.log | ||
| + | outage | ||
| + | outage.entity | ||
| + | outage.handler | ||
| + | outage_update | ||
| + | user_outage | ||
| + | vps_outage | ||
| + | vps_outage_mount | ||
| + | help_box | ||
| + | news_log | ||
| + | incoming_payment | ||
| + | payment_stats | ||
| + | user_account | ||
| + | user_payment | ||
| + | user_request | ||
| + | user_request.registration | ||
| + | user_request.change | ||
| action_state | action_state | ||
| </ | </ | ||
| Řádek 259: | Řádek 275: | ||
| -a, --auth METHOD | -a, --auth METHOD | ||
| -s, --save | -s, --save | ||
| - | --username | + | --user USER User name |
| --password PASSWORD | --password PASSWORD | ||
| + | --scope [SCOPE] | ||
| --token TOKEN Token | --token TOKEN Token | ||
| --token-lifetime LIFETIME | --token-lifetime LIFETIME | ||
| Řádek 305: | Řádek 322: | ||
| přístupem k '' | přístupem k '' | ||
| </ | </ | ||
| + | |||
| + | Při vytváření tokenu můžeme specifikovat scope: | ||
| + | <code bash> | ||
| + | $ vpsfreectl --auth token --scope ' | ||
| + | </ | ||
| + | |||
| + | Příkaz výše vytvoří autentizační token, který bude omezen na volání akcí nad resource '' | ||
| ==== Akce a parametry ==== | ==== Akce a parametry ==== | ||
| Řádek 462: | Řádek 486: | ||
| se hned ukončit a nečekat. Informace o dokončení akce je však důležitá, | se hned ukončit a nečekat. Informace o dokončení akce je však důležitá, | ||
| nad jedním objektem (tedy třeba VPS) lze vykonávat v jednom čase jen jednu | nad jedním objektem (tedy třeba VPS) lze vykonávat v jednom čase jen jednu | ||
| - | akci, ostatní skončí s chybou | + | akci, ostatní skončí s chybou |
| Ve výchozím stavu '' | Ve výchozím stavu '' | ||
| Řádek 677: | Řádek 701: | ||
| aither | aither | ||
| </ | </ | ||
| + | |||