LXD Rest API. Настройка подключения

Пришло время автоматизировать работу с LXD контейнерами. В LXD есть отличная реализация Rest API с привычным форматом обмена JSON. Начнём с подключения.

Во время первоначальной настройки вы можете указать хост и пароль для удаленного подключения.

lxd init

Посмотреть текущую конфигурацию

lxc config show

Я укажу хост и порт для подключения заново, а пароль удалю.

lxc config set core.https_address 212.193.61.39:8012
lxc config unset core.trust_password

На машине, с которой буду подключаться, генерирую сертификаты и передаю на сервер LXD

openssl req -x509 -newkey rsa:2048 -keyout client.key -nodes -out client.crt -subj "/CN=sanes.net.ru" -days 3650
scp client.crt root@212.193.61.39:/root

На сервере LXD добавляю сертификат

lxc config trust add client.crt

Посмотреть добавленные сертификаты можно командой

lxc config trust list

Для удобства на машине, из которой подключаюсь, установил jq. Она форматирует JSON в читабельный вид. Проверяем подключение

curl -s -k --cert client.crt --key client.key https://212.193.61.39:8012/1.0/instances |jq

Если всё нормально, то получите примерно такой ответ

{
  "type": "sync",
  "status": "Success",
  "status_code": 200,
  "operation": "",
  "error_code": 0,
  "error": "",
  "metadata": []
}

На этом настройка подключения завершена. Можно работать с LXD Rest API.