是否可以在新版本的 Juju(2.0-rc3-xenial-amd64)中添加远程 LXD 提供程序?
我到目前为止已经尝试过的:
- 手动云
(如果我使用它可以工作juju deploy mysql --to lxd:<Machine's ID>
但我无法部署捆绑包)
- 更改了默认的 LXC 远程提供程序:
远程启用 https 并设置密码
lxc remote add <name> <provider's IP address>
lxc remote set-default <name>
(lxc launch
工作正常,但 Juju 仍然使用本地提供商)
- 尝试使用配置 yaml 文件添加新的 LXD 云,就像下面的一样
clouds: mylxd: type: lxd auth-types: [access-key, userpass] regions: deployment: endpoint: https://<Remote IP Address>:8443/1.0
(但我无法使用这个特定的云配置进行引导)
你能帮帮我吗?谢谢!
答案1
Juju 2.0 附带的 lxd 提供程序将仅在主机上创建容器。
该团队已经讨论过使用远程 lxd 机器,但目前,lxd 提供程序是一个开发人员工具,仅在主机上创建容器。
答案2
使用 juju >= 2.1 即可实现
SSH 进入远程服务器(例如 192.168.10.2)并配置 lxd 以接受传入连接并设置密码。
(192.168.10.2)$ lxc config set core.https_address "[::]"
(192.168.10.2)$ lxc config set core.trust_password some-secret-string
现在在将运行 juju 命令的机器(又名 juju 客户端)中添加远程 lxd 守护进程,这样做是为了轻松获取服务器的证书。
(juju-client)$ lxc remote add 192.168.10.2 \
--accept-certificate \
--password=some-secret-string
创建一个 yaml 配置文件,juju 将使用它来添加云,它应该是这样的。
# file: some-remote.yaml
clouds:
some-remote:
type: lxd
auth-types: [interactive, certificate]
regions:
some-remote:
endpoint: 192.168.10.2
将云定义添加到 juju:
(juju-client)$ juju add-cloud some-remote some-remote.yaml
创建 credentials.yaml 文件:
# file: credentials.yaml
some-remote:
some-remote:
auth-type: certificate
client-cert: |
-----BEGIN CERTIFICATE-----
...
INSERT THE CONTENT OF ~/.config/lxc/client.crt
...
-----END CERTIFICATE-----
client-key: |
-----BEGIN RSA PRIVATE KEY-----
...
INSERT THE CONTENT OF ~/.config/lxc/client.key
...
-----END RSA PRIVATE KEY-----
server-cert: |
-----BEGIN CERTIFICATE-----
...
INSERT THE CONTENT OF ~/.config/lxc/client.crt
...
-----END CERTIFICATE-----
将凭证添加到 juju:
(juju-client)$ juju add-credential some-remote -f credentials.yaml
验证云是否已正确添加:
(juju-client)$ juju clouds
Cloud Regions Default Type Description
[...]
localhost 1 localhost lxd LXD Container Hypervisor
some-remote 1 some-remote lxd LXD Container Hypervisor
[...]
使用添加的云提供商引导新的控制器
(juju-client)$ juju bootstrap some-remote
引导完成后,验证控制器在远程 lxd 守护进程中是否正确旋转:
(juju-client)$ lxc list 192.168.10.2:
+---------------+---------+--------------------------------+------+------------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+---------------+---------+--------------------------------+------+------------+-----------+
| juju-ec8b3d-0 | RUNNING | 192.168.10.42 (eth0) | | PERSISTENT | 0 |
+---------------+---------+--------------------------------+------+------------+-----------+
(juju-client)$ juju status -m controller
Model Controller Cloud/Region Version
controller snowspeeder snowspeeder/snowspeeder 2.1.2
App Version Status Scale Charm Store Rev OS Notes
Unit Workload Agent Machine Public address Ports Message
Machine State DNS Inst id Series AZ Message
0 started 192.168.10.42 juju-ec8b3d-0 xenial Running
来源:http://tty.cl/add-remote-lxd-server-as-a-cloud-in-juju-2x.html
免责声明:我是所引用文章的作者