web-dev-qa-db-ja.com

Juju 2.0およびLXDリモートプロバイダー

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はまだローカルプロバイダーを使用しています)

  • clouds: mylxd: type: lxd auth-types: [access-key, userpass] regions: deployment: endpoint: https://<Remote IP Address>:8443/1.0のようなconfig yamlファイルを使用して新しいLXDクラウドを追加しようとしました

(ただし、この特定のクラウド構成を使用してbootstrap)することはできません)

助けてくれませんか?ありがとう!

2

これは、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

免責事項:私は参照記事の著者です

1
Felipe Reyes

Juju 2.0に付属するlxdプロバイダーは、ホストマシン上でのみコンテナーを作成します。

チームはリモートlxdマシンの使用について説明しましたが、今のところ、lxdプロバイダーは開発者ツールであり、ホスト上にコンテナーを作成するだけです。

1
thumper