Uživatelské nástroje

Nástroje pro tento web


navody:vps:api

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Ná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 h00kednavody:vps:api [2024/01/02 21:06] (aktuální) – [Instalace klienta] Nepotrebujeme openssl aither
Řádek 2: Řádek 2:
 ====== API ====== ====== API ======
  
-Naše API běží na adrese https://api.vpsfree.cz. Pomocí API lze vykonat většinu +Naše API běží na adrese https://api.vpsfree.cz. Pomocí API lze vykonat vše 
-akcí, stejně jako z webového rozhraní. V API aktuálně není zahrnuta pouze +co jde naklikat ve webovém rozhraní, a více. Ve skutečnosti webové rozhraní 
-správa uživatelských profilů (adresae-mail, apod.). +běžící na https://vpsadmin.vpsfree.cz pro každý úkon volá API.
- +
-Ve skutečnosti webové rozhraní běžící na https://vpsadmin.vpsfree.cz API +
-využívá a pro každý úkon jej volá.+
  
 ===== Dokumentace API ===== ===== Dokumentace API =====
-Dokumentace API, tzn. seznam objektů, možných akcí, vstupních a výstupních +Dokumentace API, tzn. seznam zdrojů, možných akcí, vstupních a výstupních 
-parametrů je k vidění na https://api.vpsfree.cz/v4.1/.+parametrů je k vidění na https://api.vpsfree.cz/v6.0/.
  
-Bez přihlášení se zobrazuje seznam všech objektů, tj. i těch, se kterými můžou+Bez přihlášení se zobrazuje seznam všech zdrojů, tj. i těch, se kterými můžou
 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://github.com/vpsfreecz/vpsfree-client   * Ruby - https://github.com/vpsfreecz/vpsfree-client
-  * PHP - https://github.com/vpsfreecz/haveapi-client-php +  * PHP - https://github.com/vpsfreecz/haveapi/tree/master/clients/php 
-  * JavaScript - https://github.com/vpsfreecz/haveapi-client-js +  * JavaScript - https://github.com/vpsfreecz/haveapi/tree/master/clients/js 
-  * Webové rozhraní z HaveAPI - https://github.com/vpsfreecz/haveapi-webui +  * Go - https://github.com/vpsfreecz/haveapi/tree/master/clients/go 
-  * Souborový systém založený na FUSE - https://github.com/vpsfreecz/haveapi-fs+  * Webové rozhraní z HaveAPI - https://github.com/vpsfreecz/haveapi-webui (zastaralé) 
 +  * Souborový systém založený na FUSE - https://github.com/vpsfreecz/haveapi-fs (zastaralé)
  
 Ukázka použití je vždy v ''README.md'' každého klienta. Obecně se klientovi Ukázka použití je vždy v ''README.md'' každého klienta. Obecně se klientovi
Řádek 40: Řádek 38:
  
 ===== Autentizace ===== ===== Autentizace =====
-Lze využívat dvě autentizační metody. Tou první a jednodušší z nich je HTTP +API podporuje dva způsoby autentizace:
-basic. S každým požadavkem na API se musí zaslat jméno a heslo. 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.+
  
-Druhou metodou je autentizace přes tokeny. Funguje to tak, že klient nejprve +  * [[#http_basic|HTTP Basic]] 
-požádá o vytvoření tokenu, k tomu potřebuje jméno a heslo. Jakmile dostane +  * [[#tokeny|Pomocí tokenů]]
-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í:+Konkrétní ukázky autentizace pro podporované programovací jazyky a CLI najdete 
 +v [[https://api.vpsfree.cz/v6.0/#auth|dokumentaci API]].
  
-  * fixed - platnost tokenu je pevně dána +==== HTTP Basic ==== 
-  * renewable_manual - platnost tokenu lze manuálně prodloužit +každým požadavkem na API se musí zaslat jméno a heslo v HTTP hlavičce "Authorization". 
-  * renewable_auto - platnost tokenu je prodloužena při každém požadavku +Je to dobrá volba pro jednorázové akce, pokud je ale potřeba API volat vícekrát nebo 
-  * permament - token je platný napořádresp. dokud není smazán+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í.
  
-Typ tokenu a časový intervalo který se prodlužujesi volí klient.+==== Tokeny ==== 
 +Klient nejprve požádá o vytvoření tokenu, k tomu potřebuje jménoheslo a připadně i TOTP. 
 +Jakmile klient dostane token, může jméno a heslo zapomenout a dále se autentizuje 
 +získaným tokenem.
  
-===== CLI ===== +Tokeny mohou být několika typů různě dlouhou životností:
-[[https://github.com/vpsfreecz/vpsfree-client|Klient pro Ruby]] obsahuje i CLI. +
-Pro správnou funkci vyžaduje Ruby >= 2.0 a nainstalované hlavičkové soubory +
-Ruby, OpenSSL a ncurses (většinou balíčky příponou ''-dev'' či ''-devel'').+
  
-<note> +  * //fixed// - platnost tokenu je pevně dána 
-Na OS X je nutné nainstalovat OpenSSL přes [[http://brew.sh/|Homebrew]] a až +  * //renewable_manual// - platnost tokenu lze manuálně prodloužit 
-poté se dá nainstalovat EventMachine (gem, jenž klient vyžaduje).+  * //renewable_auto// - platnost tokenu je prodloužena při každém požadavku 
 +  * //permament// - token je platný napořád, respdokud není smazán
  
-<code bash> +Typ tokenu a časový interval, o který se prodlužuje, si volí klient.
-$ brew install openssl +
-$ sudo gem install eventmachine -- --with-opt-include="/usr/local/opt/openssl/" +
-</code> +
-</note>+
  
-Nainstalovat jej lze pomocí ruby gems:+===== 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.
  
-<code bash> +Ukázky možných scopes:
-$ sudo gem install vpsfree-client +
-</code>+
  
-==== Instalace ve Windows 10 využitím Ubuntu Linux subsystem ====+  * ''all'' povolí přístup ke všem akcím, toto je výchozí hodnota 
 +  * prázdný scope, přístup je povolen jen k akci ''user#current'', což zobrazí info o aktuálním uživateli; toto se využívá pro přihlášení do Discourse a KB 
 +  * ''vps#show'' povolí zobrazení info o jakékoli VPS 
 +  * ''vps#show:vps_id=123'' info o VPS s ID 123 
 +  * ''vps#*'' umožní volat všechny akce nad všemi VPS 
 +  * ''vps#*:vps_id=123'' všechny akce nad VPS s ID 123 
 +  * ''{vps,dataset}#{index,show}''  umožní vylistovat VPS a datasety a zobrazit údaje o jednom konkrétním
  
-=== Instalace Ubuntu (Linux subsystemu Windows 10===+Scope může obsahovat globy pro název resource a akce. Akce je od resource oddělena křížkem (''#''). Volitelné ID objektů se píšou za dvojtečkou ('':'') a nemohou obsahovat globy, musí být přesně. Každý token může mít více nastavených scopes, oddělují se mezerou. Pro udělení přístupu musí aspoň jedno nastavené scope platit pro volanou akci v API.
  
-  ve Windows 10 povolit developer mode, nechat nainstalovat +===== Instalace klienta ===== 
-  es Programy funkce otevřít přidání součástí Windowsúplně dole zvolit Linux subsystem, nechat nainstalovat a restartovat počítač +[[https://github.com/vpsfreecz/vpsfree-client|Klient pro Ruby]] obsahuje CLI 
-  - po restartu jako admin spustit nabídce Start bash +(rozhraní pro íkazovou řádku) knihovnu pro použití v Ruby skriptech. 
-  - vytvořit Unix username a heslo +Pro správnou funkci vyžaduje Ruby >= 2.7nainstalované hlavičkové soubory 
-  stisknout y a nechat nainstalovat základ Ubuntu +Ruby a ncurses (většinou balíčky s příponou ''-dev'' či ''-devel''). 
- +Poté klienta nainstalujeme pomocí Ruby gems:
-=== Instalace závislostí ===+
  
 <code bash> <code bash>
-sudo apt-get install ruby2.1 ruby2.1-dev libssl-dev make g+++gem install vpsfree-client
 </code> </code>
  
-=== Quick & Dirty fix pro nastavení ruby2.1 jako výchozího namísto 1.9 === +Konkrétní postupy instalace podle platformy:
- +
-<code bash> +
-sudo rm /usr/bin/ruby /usr/bin/gem /usr/bin/irb /usr/bin/rdoc /usr/bin/erb +
-sudo ln -s /usr/bin/ruby2.1 /usr/bin/ruby +
-sudo ln -s /usr/bin/gem2.1 /usr/bin/gem +
-sudo ln -s /usr/bin/irb2.1 /usr/bin/irb +
-sudo ln -s /usr/bin/rdoc2.1 /usr/bin/rdoc +
-sudo ln -s /usr/bin/erb2.1 /usr/bin/erb +
-sudo gem update --system +
-sudo gem pristine --all +
-</code> +
- +
-Zdrojhttp://blog.costan.us/2014/04/restoring-ruby-20-on-ubuntu-1404.html +
- +
-=== Instalace vpsfree-client === +
- +
-<code bash> +
-sudo gem install vpsfree-client +
-</code> +
- +
- +
-----+
  
 +  * Linux
 +    * [[navody:vps:api:arch|Arch Linux]]
 +    * [[navody:vps:api:centos|CentOS]]
 +    * [[navody:vps:api:ubuntu|Ubuntu 20.04]]
 +  * [[navody:vps:api:macos|macOS]]
 +  * [[navody:vps:api:windows|Windows]]
  
 Po instalaci by v ''$PATH'' měl být k dispozici ''vpsfreectl''. Pokud tomu tak Po instalaci by v ''$PATH'' měl být k dispozici ''vpsfreectl''. Pokud tomu tak
Řádek 131: Řádek 115:
  
 <code bash> <code bash>
-$ PATH="$PATH:/home/user/.gem/ruby/2.0.0/bin"+$ PATH="$PATH:/home/user/.gem/ruby/2.7.0/bin"
 </code> </code>
  
-==== Použití ====+===== Použití CLI =====
  
 <code> <code>
Řádek 178: Řádek 162:
  
 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 175:
 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 192:
 migration_plan.vps_migration migration_plan.vps_migration
 network network
 +network_interface
 node node
 node.status node.status
Řádek 212: Řádek 198:
 os_template os_template
 pool pool
 +session_token
 snapshot_download snapshot_download
 +system_config
 transaction transaction
 transaction_chain transaction_chain
Řádek 219: Řádek 207:
 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 220:
 vps.config vps.config
 vps.feature vps.feature
-vps.ip_address 
 vps.mount vps.mount
 vps.outage_window vps.outage_window
Řádek 231: Řádek 225:
 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
 </code> </code>
Řádek 259: Řádek 271:
     -a, --auth METHOD                Authentication method     -a, --auth METHOD                Authentication method
     -s, --save                       Save credentials to config file for later     -s, --save                       Save credentials to config file for later
-        --username USER              User name+        --user USER                  User name
         --password PASSWORD          Password         --password PASSWORD          Password
 +        --scope [SCOPE]              Scope
         --token TOKEN                Token         --token TOKEN                Token
         --token-lifetime LIFETIME    Token lifetime, defaults to renewable_auto         --token-lifetime LIFETIME    Token lifetime, defaults to renewable_auto
Řádek 305: Řádek 318:
 přístupem k ''~/.haveapi-client.yml'' může token získat a použít. přístupem k ''~/.haveapi-client.yml'' může token získat a použít.
 </note> </note>
 +
 +Při vytváření tokenu můžeme specifikovat scope:
 +<code bash>
 +$ vpsfreectl --auth token --scope 'vps#*:vps_id=123' --save vps show 123
 +</code>
 +
 +Příkaz výše vytvoří autentizační token, který bude omezen na volání akcí nad resource ''vps'' s ID 123.
  
 ==== Akce a parametry ==== ==== Akce a parametry ====
Řádek 677: Řádek 697:
 aither aither
 </maintainers> </maintainers>
 +
navody/vps/api.1514465941.txt.gz · Poslední úprava: 2017/12/28 12:59 autor: h00ked