Jujuの新しいバージョン(2.0-rc3-xenial-AMD64)にリモートLXDプロバイダーを追加することは可能ですか?
私が今まで試したこと:
(juju deploy mysql --to lxd:<Machine's ID>
を使用しても機能しますが、バンドルをデプロイできません)
リモートでhttpsを有効にし、パスワードを設定します
lxc remote add <name> <provider's IP address>
lxc remote set-default <name>
(lxc launch
は正常に機能しますが、Jujuはまだローカルプロバイダーを使用しています)
clouds: mylxd: type: lxd auth-types: [access-key, userpass] regions: deployment: endpoint: https://<Remote IP Address>:8443/1.0
のようなconfig yamlファイルを使用して新しいLXDクラウドを追加しようとしました(ただし、この特定のクラウド構成を使用してbootstrap)することはできません)
助けてくれませんか?ありがとう!
これは、juju 2.1以降を使用して可能です。
リモートサーバー(例:192.168.10.2)にSSHで接続し、着信接続を受け入れてパスワードを設定するように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コマンドが実行されるマシン(A.K.A. jujuクライアント)にリモートlxdデーモンを追加します。これは、サーバーの証明書を簡単に取得するために行われます。
(juju-client)$ lxc remote add 192.168.10.2 \
--accept-certificate \
--password=some-secret-string
Jujuがクラウドを追加するために使用するyaml設定ファイルを作成します。これは次のようになります。
# 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
bootstrap=が完了したら、コントローラーがリモート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
免責事項:私は参照記事の著者です
Juju 2.0に付属するlxdプロバイダーは、ホストマシン上でのみコンテナーを作成します。
チームはリモートlxdマシンの使用について説明しましたが、今のところ、lxdプロバイダーは開発者ツールであり、ホスト上にコンテナーを作成するだけです。