Hulpartikel overzicht

Hulpartikel

TransIP REST API: de CLI client gebruiken

TransIP stelt domein- en VPS-diensten beschikbaar via een REST API. Hierbij stuurt je website of server met behulp van je eigen scripts een verzoek direct aan het TransIP-systeem.

Een van de manieren waarop je de API kunt gebruiken, is met onze Command-Line Interface (CLI) client: TransIP-control (tipctl).

Tipctl is een tool waarmee je eenvoudig de API kunt aanspreken via command-line. Alle resources van de REST API zijn erin beschikbaar en je kunt vanuit command-line s producten bestellen, updaten of verwijderen in je TransIP-account. In dit artikel laten wij zie hoe je Tipctl installeert en gebruikt.

  • Schakel voor je dit artikel doorloopt in je TransIP-controlepaneel de API in en genereer een key pair. Hoe dit werkt leggen wij in deze handleiding uit.
     
  • Direct zelf aan de slag? Op deze Github-pagina vind je de CLI-client terug.

Vereisten

Voor het gebruik van de REST API PHP-Library moet de volgende software op je server geïnstalleerd zijn:

  • PHP 7.2 of nieuwer
  • PHP-json
  • OpenSSL
  • Composer

 

PHP

Voor de installatie van PHP kun je gebruik maken van onze handleidingen voor de installatie van Apache met PHP-ondersteuning. Je hebt voor de CLI-client enkel het deel nodig dat de installatie van PHP uitlegt (Apache is optioneel).

 

PHP-json + OpenSSL

De PHP-json extensie en OpenSSL installeer je afhankelijk van je besturingssysteem met:

CentOS:

sudo yum -y install php-json openssl

Ubuntu/Debian:

sudo apt -y install php-json openssl

 

Composer

Composer is een tool voor dependency management in PHP. Je kunt met Composer eenvoudig aangeven welke libraries je project nodig heeft (de dependencies) en Composer beheert deze vervolgens voor je. Voor de installatie van Composer kun je deze handleiding gebruiken.


De CLI-client installeren en configureren

 

Er zijn twee manieren om Tipctl te installeren: installatie via Composer of download en installatie van het PHAR-bestand. Heb je nog geen Composer geïnstalleerd? Voor installatie van Composer in Linux kun je deze handleiding gebruiken.

Voor het gebruik van het PHAR-bestand, moet je ./ voor het commando plaatsen om aan te geven dat je het uitvoert vanuit je hudige directory. Wil je tipctl.phar globaal kunnen gebruiken? Dan raden wij aan om de Composer-installatie te gebruiken. Alternatief kun je een alias aanmaken voor het PHAR-bestand, zie de stappen hieronder.

Installatie met Composer

 

Stap 1

Voor de installatie van Tipctl met Composer gebruik je het volgende commando:

composer global require transip/tipctl

 

Stap 2

Voeg vervolgens de global vendor binaries folder toe aan de $PATH variabele. Je kunt hiervoor controleren wat de directory is met het commando:

composer global config bin-dir --absolute

Stel dat bijvoorbeeld /home/transip/.config/composer/ als output terug komt. Dan zou je /home/transip/.config/composer/vendor/bin/ aan $PATH toevoegen. Dit kun je bijvoorbeeld doen als volgt:

nano ~/.bash_profile

Pas in het geopende bestand de PATH= regel aan zodat de bin directory daar in is toegevoegd. Het resultaat kan er dan als volgt uitzien:

PATH=$PATH:$HOME/.local/bin:$HOME/bin:/home/transip/.config/composer/vendor/bin/

Sla de wijzigingen op en sluit het bestand met ctrl + x > y > enter.


 

Stap 3

Verwerk de wijzigingen vervolgens met:

source ~/.bash_profile

Je kunt daarna direct Tipctl testen met het commando:

tipctl --version

Download en installatie van het PHAR-bestand

 

Stap 1

Download Tipctl met het commando:

wget https://github.com/transip/tipctl/releases/download/v6.0.0/tipctl.phar

 

Stap 2

Maak het bestand uitvoerbaar:

chmod +x ./tipctl.phar

 

Stap 3

Je kunt nu de werking testen, bijvoorbeeld met het commando:

./tipctl.phar --version

 

Stap 4 - Optioneel

Optioneel kun je een alias instellen voor het gebruik van tipctl.phar. Met een alias stel je als het ware een shortcut in voor een commando (of aantal commando's). Let wel dat dit enkel werkt vanuit command-line en niet vanuit shell-scripts, cronjobs, etc.

Open het bestand ~/.bashrc (het bestand met het shell configuratie profiel van de gebruiker):

nano ~/.bashrc

 

Stap 5 - Optioneel

Afhankelijk van je besturingssysteem zie je of een relatief leeg (CentOS) of gevuld (Debian, Ubuntu) bestand. Voeg onderaan het bestand de volgende code toe:

alias tipctl='~/bin/tipctl.phar'

Vervang hier de directory door de plaats waar op je VPS je tipctl.phar hebt staan. Sluit vervolgens het bestand en sla de wijzigingen op (ctrl + x > y > enter).


 

Stap 6 - Optioneel

De wijzigingen worden na een reboot verwerkt, of gebruik het volgende commando om de wijzigingen direct te verwerken.

source ~/.bashrc

De eerste setup

 

Voor je Tipctl kunt gebruiken, doorloop je de setup om je TransIP-account aan Tipctl te koppelen.

 

Stap 1

Start de setup met:

tipctl setup

 

Stap 2

Een voor een krijg je de volgende stappen te zien:

Enter the RestAPI url [https://api.transip.nl/v6]:
Enter your TransIP Username []: jetransipaccount
Use IP Whitelisting? [Yes]:
Enter your RestAPI Private Key:
-----BEGIN PRIVATE KEY-----MIIEvgIkWyaxuFA977cDw6Kn-----END PRIVATE KEY-----
Checking API connection to endpoint 'https://api.transip.nl/v6'

API connection successful
Config file saved in /home/transip/.config/transip-api/cli-config.json
  • Enter the RestAPI url: Druk op 'Enter' om de URL tussen de brackets te gebruiken.
  • Enter your TransIP Username: Geef de naam van je TransIP-account op.
  • Use IP Whitelisting: Druk op 'Enter' om whitelisting te gebruiken (default waarde). Type 'no' als je whitelisting uit hebt gezet voor de API in het TransIP-controlepaneel.
  • Enter your RestAPI Private Key: Dit is de private key die je op de API-pagina in het TransIP-controlepaneel genereert, zie onze algemene API-handleiding.

De CLI-client gebruiken

 

Alle commando's zijn terug te vinden in de /src/Command directory.

Nu de alias is ingesteld kun je de CLI-client aanroepen met het commando:

tipctl

Je krijgt als output een overzicht te zien van alle beschikbare commando's. Zoek je een specifieke optie, bijvoorbeeld om DNS te wijzigen? Gebruik dan 'grep', bijvoorbeeld:

tipctl | grep dns

Alle beschikbare commando's voer je eenvoudig uit met de syntax:

tipctl product:commandonaam

Bijvoorbeeld:

tipctl vps:start

Wil je weten welke variabelen je mee moet geven? Voeg dan -h toe aan het commando:

tipctl -h vps:start

De output hiervan zal er als volgt uitzien:

tipctl -h vps:start

The output of this will look like this:

Description:
  Start a Vps

Usage:
  vps:start [options] [--] <VpsName>

Arguments:
  VpsName                The name of the vps

Options:
      --format[=FORMAT]  The output format `txt`, `yaml` or `json` [default: "json"]
  -h, --help             Display this help message
  -q, --quiet            Do not output any message
  -V, --version          Display this application version
      --ansi             Force ANSI output
      --no-ansi          Disable ANSI output
  -n, --no-interaction   Do not ask any interactive question
  -v|vv|vvv, --verbose   Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Help:
  Provide a Vps name to start

Veiligheidsoverwegingen

 

De command-line client is een zeer krachtige tool voor het gebruik van onze REST API. De installatie is eenvoudig en de client is precompiled. Je hoeft enkel één commando uit te voeren om een overzicht te krijgen van alle beschikbare functies binnen de REST API.

Het maakt met de CLI-client niet langer uit welke programmeertaal je gebruikt. Zo lang de taal die je gebruikt maar een shell-commando kan uitvoeren vanaf de server die je applicatie host, kun je de client daarmee aanroepen.

Wij raden echter aan Tipctl vooral voor troubleshooting en beheer vanuit command-line te gebruiken en voor daadwerkelijke toepassingen in een applicatie bijvoorbeeld de Rest API met PHP of Curl te gebruiken.

Wil je toch Tipctl aanroepen vanuit je applicatie, is het belangrijk rekening te houden met het volgende veiligheidsrisico: Als je toestaat dat een commando aangepast kan worden via gebruikersinput, kunnen er schadelijke commando's toevoegd worden. Zorg daarom dat je altijd eventuele gebruikersinput escaped (tussen haakjes plaatst), zodat commando's als string worden gelezen en niet daadwerkelijk als commando worden uitgevoerd.


 

Daarmee zijn we aan het eind gekomen van deze handleiding over het gebruik van onze API command-line client Tipctl. Mocht je aan de hand van deze handleiding nog vragen hebben, aarzel dan niet om onze supportafdeling te benaderen. Je kunt hen bereiken via de knop 'Neem contact op' onderaan deze pagina.

Wil je dit artikel met andere gebruikers bespreken, laat dan vooral een bericht achter onder 'Reacties'.

Heb je ook een goed idee?

Stuur jouw idee in! Met genoeg stemmen komt jouw idee op onze wishlist!

Heeft dit artikel je geholpen?

Maak een account aan of log in om een beoordeling achter te laten.

Reacties

Maak een account aan of log in om een reactie te plaatsen.

0
Matthijs van Beek Admin 14 juli 2020 (#4567)

@netcie,

Op dit moment is dat niet mogelijk en zijn er nog geen plannen om dergelijke functionaliteit in de client te implementeren, hoewel we je verzoek mee zullen nemen in onze feature requests. De overweging achter de huidige implementatie is dat de command-line client eigenlijk vooral bedoelt is voor troubleshooting e.d.

0
netcie 12 juli 2020 (#4558)

Is het mogelijk om bepaalde acties via de API hier te white- of blacklisten? We achten het enigszins onwenselijk om alle mogelijke acties beschikbaar te hebben op onze server. ~MK

Kom je er niet uit?

Ontvang persoonlijke hulp van onze supporters

Neem contact op