web-dev-qa-db-fra.com

Juju 2.0 et fournisseur distant LXD

Il est possible d'ajouter un fournisseur LXD distant dans la nouvelle version de Juju (2.0-rc3-xenial-AMD64)?

Ce que j'ai essayé jusqu'à maintenant:

  • nuage manuel

(Cela fonctionne si j'utilise juju deploy mysql --to lxd:<Machine's ID> mais je ne peux pas déployer de bundles)

  • changé le fournisseur distant LXC par défaut:

activer https à distance et configurer un mot de passe

lxc remote add <name> <provider's IP address>

lxc remote set-default <name>

(lxc launch fonctionne très bien, mais Juju utilise toujours le fournisseur local)

  • essayé d'ajouter un nouveau cloud LXD en utilisant un fichier de configuration yaml, comme celui ci-dessous clouds: mylxd: type: lxd auth-types: [access-key, userpass] regions: deployment: endpoint: https://<Remote IP Address>:8443/1.0

(mais je ne peux pas bootstrap avec cette configuration de cloud particulière)

Pouvez-vous m'aider s'il vous plaît? Merci!

2
Ioan Mihail Stan

Ceci est possible en utilisant juju> = 2.1

SSH sur le serveur distant (192.168.10.2, par exemple) et configurez lxd pour accepter les connexions entrantes et définir un mot de passe.

(192.168.10.2)$ lxc config set core.https_address "[::]"
(192.168.10.2)$ lxc config set core.trust_password some-secret-string

Maintenant, dans la machine où les commandes juju seront exécutées (client A.K.A. juju), ajoutez le démon lxd distant, ceci est fait pour obtenir facilement le certificat du serveur.

(juju-client)$ lxc remote add 192.168.10.2 \
    --accept-certificate \
    --password=some-secret-string

Créez un fichier de configuration yaml qui sera utilisé par juju pour ajouter le cloud, voici à quoi cela devrait ressembler.

# file: some-remote.yaml
clouds:
  some-remote:
    type: lxd
    auth-types: [interactive, certificate]
    regions:
      some-remote:
        endpoint: 192.168.10.2

Ajoutez la définition du nuage à juju:

(juju-client)$ juju add-cloud some-remote some-remote.yaml

Créez le fichier 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-----

Ajoutez les informations d'identification à juju:

(juju-client)$ juju add-credential some-remote -f credentials.yaml

Vérifiez que le nuage a été ajouté correctement:

(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
[...]

Démarrer un nouveau contrôleur à l'aide du fournisseur de cloud ajouté

(juju-client)$ juju bootstrap some-remote

Une fois que le bootstrap est terminé, vérifiez que le contrôleur a été correctement lancé dans le démon lxd distant:

(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

Source: http://tty.cl/add-remote-lxd-server-as-a-cloud-in-juju-2x.html

disclaimer: je suis l'auteur de l'article cité en référence

1
Felipe Reyes

Le fournisseur lxd fourni avec Juju 2.0 créera uniquement des conteneurs sur la machine hôte.

L’équipe a discuté de l’utilisation de machines lxd distantes, mais pour l’instant, le fournisseur lxd est un outil de développement et ne crée que des conteneurs sur l’hôte.

1
thumper