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.
[1] https://www.terraform.io
[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