Пришло время автоматизировать работу с 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.