LXD использует LXC как низкоуровневый инструмент, но оба в имени несут LinuX. Поэтому неудивительно что сам LXD и его API сильно завязаны и работают только в Linux системах. Но коммуникации между клиентом и демоном используют REST API, так что нет проблем в том, чтобы клиент работал и в других операционных системах. Другими словами вы можете поднять несколько Linux систем с LXD на борту, а с MS Windows или MacOS удалённо управлять вашими контейнерами.
К демону нужно подключиться по сети, поэтому нужно чтобы он слушал сеть и обладал паролем, который используется удалёнными клиентами при добавлении себя в хранилище доверенных сертификатов LXD (certificate trust store). Когда клиент добавляет LXD хост, то ему будет предложено ввести пароль и если он введён корректно, то LXD сохранит сертификат клиента и будет ему доверять впредь, не требуя в последствии пароля (это можно изменить или отключить клиента).
lxc config set core.https_address "[::]:8443"
lxc config set core.trust_password "my-password"
Уже созданные бинарники
Проект LXD в рамках работы сборочных серверов собирает готовые бинарники при каждом коммите и можете забирать архив клиента lxc.exe и, распаковав его, использовать.
Компиляция из исходников
Можете собрать сами из исходников, но вначале понадобится Git.
git config --global http.https://gopkg.in.followRedirects true
go get -v -x github.com/lxc/lxd/lxc
Используя bash в Windows
Через слой Windows Subsystem for Linux (WSL) можно получить Ubuntu внутри MS Windows 10 ради bash. А в образе Ubuntu 16.04 LXD клиент есть по умолчанию.
Родной бинарник lxc.exe обладает рядом ограничений из-за управляющих символов в терминале MS Windows и ломает некоторые вещи, такие как клавиши управления курсором и прятание пароля с экрана при вводе его с клавиатуры. Клиент LXD через Ubuntu в MS Windows лишён этих недостатков.
Подобно инструкциям для MS Windows нужно взять установщик языка Go и Git.
В Терминале
export GOPATH=~/go
go get -v -x github.com/lxc/lxd/lxc
sudo ln -s ~/go/bin/lxc /usr/local/bin/
Клиент LXD есть для основных операционных систем и их архитектур, что позволяет вам легко взаимодействовать с существующими LXD серверами. Благодаря строгим правилам обратной совместимости, версия клиента не имеет решающего значения. "Старые" клиенты могут поговорить с "новыми" серверами, а "новые" клиенты со "старыми" серверами. Очевидно, что возможны ситуации когда некоторые функции могут быть недоступны, но в целом - основные операции по управлению контейнером будут работать нормально. Хотя никто не мешает вам периодически обновлять клиента вслед за обновлением линукс серверов с LXD.
Дата последней правки: 2023-12-27 13:18:44