Ahoj,
(English version below)
Terraform [1] je nástroj pro správu infrastruktury pomocí konfiguračních souborů. Podporuje spoustu různých poskytovatelů hostingu, cloudů a podobných služeb. Nyní je možné pomocí něj konfigurovat i naše VPS. Náš plugin pro Terraform aktuálně umí vytvářet a upravovat VPS, nahrávat veřejné SSH klíče a spouštět příkazy přes SSH.
Plugin, pokyny k instalaci a ukázku použití najdete zde:
https://github.com/vpsfreecz/terraform-provider-vpsadmin
Případné chyby prosím hlaste u repozitáře na githubu. Samozřejmě se můžete také zapojit do vývoje, chtělo by to ještě dodělat podporu pro správu datasetů, mountů a určitě se toho najde více.
Terraform pluginy se nejsnadněji píšou v Golangu, takže jsme v Golangu potřebovali taky klienta k našemu API. Díky tomu, že se naše API umí samo pěkne zdokumentovat [2], klient pro Golang je kompletně automaticky vygenerovaný. Výsledkem je tedy generátor klientských Golang knihoven pro HaveAPI [3] a samotný klient k našemu API [4], který je možné použít nezávisle na Terraformu.
ENGLISH:
Terraform [1] is a tool for infrastructure administration using configuration files. It supports many cloud and hosting providers and now it is possible to use it to manage VPS at vpsFree.cz as well. Our provider plugin for Terraform allows you to create and manage VPS, deploy SSH keys and use SSH provisioner.
The provider, install instructions and examples can be found at:
https://github.com/vpsfreecz/terraform-provider-vpsadmin
Please report bugs and issues at our github repository. You're also welcome to join the development. The provider is still missing dataset and mount management.
Since Terraform plugins are best written in Golang, we needed a client to our API in Golang as well. Because our API is self-descriptive, the Golang client library can be autogenerated. The result is a Golang client generator [3] and the generated client [4] for our API. The Golang client library can be used independently from Terraform.
[2] https://github.com/vpsfreecz/haveapi
[3] https://github.com/vpsfreecz/haveapi/tree/master/clients/go
[4] https://github.com/vpsfreecz/vpsadmin-go-client
Jakub