Différences entre versions de « Utiliser Panamax sur Cloudstack by Ikoula »

De Ikoula Wiki
Jump to navigation Jump to search
(Aucune différence)

Version du 22 septembre 2015 à 13:00


Si vous ne connaissez pas encore Panamax il s'agit d'un produit Open Source développé par Century Link Labs qui est à la fois une market place et un gestionnaire pour applications conteneurisées Docker depuis une interface web intuitive.


Il suffit en effet de chercher l'application de notre choix puis d'un clique pour la déployer sur nos instances cibles à l'aide de docker et d'un agent Panamax.


Panamax s'appuie sur les technologies Docker, Etcd, Fleet et Cloud-init incluses dans CoreOS.


Nous utiliserons dans notre exemple 4 instances CoreOS à jour, une pour la partie cliente/Panamax UI et les 3 autres qui formeront le cluster pour la partie Panamax Remote Target (Panamax Remote Agent + Panamax Adapter) :


Installation de Panamax UI/API (interface web/market place)

Sur notre instance dédiée à la partie cliente de Panamax (Panamax UI/API), on télécharge l'archive comprenant l'installateur :


core@CoreOS-PanamaxUI ~ $ sudo curl -O http://download.panamax.io/installer/panamax-latest.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15165  100 15165    0     0  22157      0 --:--:-- --:--:-- --:--:-- 49558


On crée le répertoire /var/panamax dans lequel on extrait les fichiers d'installation :


core@CoreOS-PanamaxUI ~ $ sudo mkdir -p /var/panamax
core@CoreOS-PanamaxUI ~ $ sudo tar -C /var/panamax -zxvf panamax-latest.tar.gz
./
./Makefile
./configure
./create-docker-mount
./LICENSE
./desktop
./panamax
./.coreosenv
./README.md
./CHANGELOG.md
./ubuntu.sh
./Vagrantfile
./.version
./coreos
./Vagrantfile-win
./CONTRIBUTING.md


On se place dans le répertoire /var/panamax et on lance l'installateur spécifique à CoreOS en précisant qu'on veut utiliser la version stable (sortie tronquée volontairement) :


core@CoreOS-PanamaxUI ~ $ cd /var/panamax
core@CoreOS-PanamaxUI /var/panamax $ sudo ./coreos install --stable
Installing Panamax...
Created symlink from /etc/systemd/system/update-engine-reboot-manager.service to /dev/null.
Created symlink from /etc/systemd/system/update-engine.service to /dev/null.
Created symlink from /etc/systemd/system/sockets.target.wants/systemd-journal-gatewayd.socket to /usr/lib64/systemd/system/systemd-

<!--T:12-->
docker pull centurylink/panamax-api:latest
.................
docker pull centurylink/panamax-ui:latest
.....
docker pull google/cadvisor:0.13.0
.........
docker pull centurylink/redis:latest
....
docker pull centurylink/dray:latest
...Created symlink from /etc/systemd/system/multi-user.target.wants/panamax-redis.service to /etc/systemd/system/panamax-redis.serv
Created symlink from /etc/systemd/system/multi-user.target.wants/panamax-dray.service to /etc/systemd/system/panamax-dray.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/panamax-metrics.service to /etc/systemd/system/panamax-metrics.ser
Created symlink from /etc/systemd/system/multi-user.target.wants/panamax-api.service to /etc/systemd/system/panamax-api.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/panamax-ui.service to /etc/systemd/system/panamax-ui.service.
...
Jul 10 11:45:39 CoreOS-PanamaxUI docker[1790]: => Rails 4.1.7 application starting in production on http://0.0.0.0:3000
Jul 10 11:45:39 CoreOS-PanamaxUI docker[1790]: => Run `rails server -h` for more startup options
Jul 10 11:45:39 CoreOS-PanamaxUI docker[1790]: => Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
Jul 10 11:45:39 CoreOS-PanamaxUI docker[1790]: => Ctrl-C to shutdown server
Panamax install complete
core@CoreOS-PanamaxUI /var/panamax $


Nous pouvons vérifier que nos 5 containers Panamax sont bien en cours d'exécution :


core@CoreOS-PanamaxUI /var/panamax $ docker ps
CONTAINER ID        IMAGE                            COMMAND                CREATED             STATUS              PORTS                    NAMES
41a18b410427        centurylink/panamax-ui:latest    "/bin/sh -c 'bundle    3 minutes ago       Up 3 minutes        0.0.0.0:3000->3000/tcp   PMX_UI
0cc8befee1b7        centurylink/panamax-api:latest   "/bin/sh -c 'bundle    3 minutes ago       Up 3 minutes        0.0.0.0:3001->3000/tcp   PMX_API
0929e65f6d55        google/cadvisor:0.13.0           "/usr/bin/cadvisor"    3 minutes ago       Up 3 minutes        0.0.0.0:3002->8080/tcp   PMX_CADVISOR
06b2219ac42e        centurylink/dray:0.10.0          "/dray"                3 minutes ago       Up 3 minutes        0.0.0.0:3003->3000/tcp   PMX_DRAY
8a6110651dcc        centurylink/redis:latest         "redis-server"         3 minutes ago       Up 3 minutes        6379/tcp                 PMX_DRAY_REDIS


Nous pouvons nous connecter à notre UI Panamax à l'aide de notre navigateur en tappant l'ip de notre instance suivit de ":3000" pour préciser le port d'écoute (n'oubliez pas de créer des règles d'autorisations parefeu et une redirection de port si besoin) de celle-ci :


Panamax-ui.png


Installation de Panamax Remote Deployment Target

Connectez-vous à l'une de vos 3 instances CoreOS déployées pour le cluster :


Générer une nouvelle URL de discovery Etcd (tokens) dans une variable (ici: ETCD_URL) :


core@CoreOSnode-1 ~ $ ETCD_URL=$(curl http://discovery.etcd.io/new)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    58  100    58    0     0     79      0 --:--:-- --:--:-- --:--:--   101
core@CoreOSnode-1 ~ $ echo $ETCD_URL
https://discovery.etcd.io/b8069c9bd67eae5cf19689daf4ebdd66


Puis téléchargez le fichier cloud-config.yml template suivant :


core@CoreOSnode-1 ~ $ sudo wget -NP /usr/share/oem/ http://mirror02.ikoula.com/priv/coreos/cloud-config.yml
--2015-06-16 15:37:53--  http://mirror02.ikoula.com/priv/coreos/cloud-config.yml
Resolving mirror02.ikoula.com... 80.93.XX.XXX, 2a00:c70:1:80:93:XX:XXX:1
Connecting to mirror02.ikoula.com|80.93.XX.XXX|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1542 (1.5K) [text/plain]
Remote file is newer, retrieving.

<!--T:23-->
--2015-06-16 15:37:53--  http://mirror02.ikoula.com/priv/coreos/cloud-config.yml
Reusing existing connection to mirror02.ikoula.com:80.
HTTP request sent, awaiting response... 200 OK
Length: 1542 (1.5K) [text/plain]
Saving to: '/usr/share/oem/cloud-config.yml'

<!--T:24-->
/usr/share/oem/cloud-config.yml               100%[===================================================================================================>]   1.51K  --.-KB/s   in 0s

<!--T:25-->
2015-06-16 15:37:53 (264 MB/s) - '/usr/share/oem/cloud-config.yml' saved [1542/1542]
core@CoreOSnode-1 ~ $ export `cat /etc/environment`

Exécutez les commandes suivantes pour personnaliser le fichier cloud-config.yml téléchargé avec les valeurs propres à votre environnement :

core@CoreOSnode-1 ~ $ sudo sed -i 's#DISCOVERY_URL#'$ETCD_URL'#g' /usr/share/oem/cloud-config.yml
core@CoreOSnode-1 ~ $ sudo sed -i 's#PRIVATE_IP#'$COREOS_PRIVATE_IPV4'#g' /usr/share/oem/cloud-config.yml

On vérifie que nos paramètres Etcd et Fleet on bien été substitués :

core@CoreOSnode-1 ~ $ cat /usr/share/oem/cloud-config.yml
#cloud-config

<!--T:31-->
coreos:
    units:
      - name: cloudstack-ssh-key.service
        command: restart
        runtime: yes
        content: |
          [Unit]
          Description=Sets SSH key from metadata

          <!--T:32-->
[Service]
          Type=oneshot
          StandardOutput=journal+console
          ExecStart=/usr/share/oem/bin/cloudstack-ssh-key
      - name: cloudstack-hostname.service
        command: restart
        runtime: yes
        content: |
          [Unit]
          Description=Sets hostname from metadata

          <!--T:33-->
[Service]
          Type=oneshot
          StandardOutput=journal+console
          ExecStart=/usr/share/oem/bin/cloudstack-hostname
      - name: cloudstack-cloudinit.service
        command: restart
        runtime: yes
        content: |
          [Unit]
          Description=Cloudinit from CloudStack-style metadata
          Requires=coreos-setup-environment.service
          After=coreos-setup-environment.service

          <!--T:34-->
[Service]
          Type=oneshot
          EnvironmentFile=/etc/environment
          ExecStart=/usr/share/oem/bin/cloudstack-coreos-cloudinit
      - name: etcd.service
        command: start
      - name: fleet.service
        command: start
    oem:
      id: cloudstack
      name: CloudStack
      version-id: 0.0.1-r3
      home-url: http://cloudstack.apache.org/
      bug-report-url: https://github.com/coreos/coreos-overlay
    etcd:
      discovery: https://discovery.etcd.io/b8069c9bd67eae5cf19689daf4ebdd66
      addr: 178.170.XX.XXX:4001
      peer-addr: 178.170.XX.XXX:7001
    fleet:
      public-ip: 178.170.XX.XXX


Supprimez le fichier /etc/machine-id puis rebootez l'instance afin de regénérer un nouvel id de machine (vos 3 instances devront avoir un id différent) :


core@CoreOSnode-1 ~ $ sudo rm -f /etc/machine-id
core@CoreOSnode-1 ~ $ sudo reboot


Votre première instance devrait apparaître dans la liste des machines gérées dans Fleet :


core@CoreOSnode-1 ~ $ fleetctl list-machines
MACHINE         IP              METADATA
7e685988...     178.170.XX.XXX  -


Ici nous voyons bien notre première instance dans la liste des machines Fleet, ce sera donc notre instance qui initialisera notre cluster CoreOS/Etcd/Fleet.


Configurez maintenant vos deux autres instances CoreOS remote deployment target en suivant les instructions ci-dessous :


Connectez-vous à vos deux autres instances puis recopiez le contenu du fichier /usr/share/oem/cloud-config.yml de votre première instance en remplaçant uniquement l'ip de celle-ci par l'ip de votre seconde instance sur votre seconde instance et par l'ip de votre troisième instance sur votre troisième instance (vous devrez passer root via un "sudo su") :


Sur notre seconde instance (adresse ip 178.170.XX.YYY) le fichier /usr/share/oem/cloud-config.yml aura donc le contenu suivant (identique sauf l'adresse ip) :


core@CoreOSnode-2 ~ $ cat /usr/share/oem/cloud-config.yml
#cloud-config

<!--T:44-->
coreos:
    units:
      - name: cloudstack-ssh-key.service
        command: restart
        runtime: yes
        content: |
          [Unit]
          Description=Sets SSH key from metadata

          <!--T:45-->
[Service]
          Type=oneshot
          StandardOutput=journal+console
          ExecStart=/usr/share/oem/bin/cloudstack-ssh-key
      - name: cloudstack-hostname.service
        command: restart
        runtime: yes
        content: |
          [Unit]
          Description=Sets hostname from metadata

          <!--T:46-->
[Service]
          Type=oneshot
          StandardOutput=journal+console
          ExecStart=/usr/share/oem/bin/cloudstack-hostname
      - name: cloudstack-cloudinit.service
        command: restart
        runtime: yes
        content: |
          [Unit]
          Description=Cloudinit from CloudStack-style metadata
          Requires=coreos-setup-environment.service
          After=coreos-setup-environment.service

          <!--T:47-->
[Service]
          Type=oneshot
          EnvironmentFile=/etc/environment
          ExecStart=/usr/share/oem/bin/cloudstack-coreos-cloudinit
      - name: etcd.service
        command: start
      - name: fleet.service
        command: start
    oem:
      id: cloudstack
      name: CloudStack
      version-id: 0.0.1-r3
      home-url: http://cloudstack.apache.org/
      bug-report-url: https://github.com/coreos/coreos-overlay
    etcd:
      discovery: https://discovery.etcd.io/b8069c9bd67eae5cf19689daf4ebdd66
      addr: 178.170.XX.YYY:4001
      peer-addr: 178.170.XX.YYY:7001
    fleet:
      public-ip: 178.170.XX.YYY


Sur notre troisième instance (adresse ip 178.170.XX.ZZZ) le fichier /usr/share/oem/cloud-config.yml aura donc le contenu suivant (identique aux 2 autres sauf l'adresse ip) :


core@CoreOSnode-3 ~ $ cat /usr/share/oem/cloud-config.yml
#cloud-config

<!--T:50-->
coreos:
    units:
      - name: cloudstack-ssh-key.service
        command: restart
        runtime: yes
        content: |
          [Unit]
          Description=Sets SSH key from metadata

          <!--T:51-->
[Service]
          Type=oneshot
          StandardOutput=journal+console
          ExecStart=/usr/share/oem/bin/cloudstack-ssh-key
      - name: cloudstack-hostname.service
        command: restart
        runtime: yes
        content: |
          [Unit]
          Description=Sets hostname from metadata

          <!--T:52-->
[Service]
          Type=oneshot
          StandardOutput=journal+console
          ExecStart=/usr/share/oem/bin/cloudstack-hostname
      - name: cloudstack-cloudinit.service
        command: restart
        runtime: yes
        content: |
          [Unit]
          Description=Cloudinit from CloudStack-style metadata
          Requires=coreos-setup-environment.service
          After=coreos-setup-environment.service

          <!--T:53-->
[Service]
          Type=oneshot
          EnvironmentFile=/etc/environment
          ExecStart=/usr/share/oem/bin/cloudstack-coreos-cloudinit
      - name: etcd.service
        command: start
      - name: fleet.service
        command: start
    oem:
      id: cloudstack
      name: CloudStack
      version-id: 0.0.1-r3
      home-url: http://cloudstack.apache.org/
      bug-report-url: https://github.com/coreos/coreos-overlay
    etcd:
      discovery: https://discovery.etcd.io/b8069c9bd67eae5cf19689daf4ebdd66
      addr: 178.170.XX.ZZZ:4001
      peer-addr: 178.170.XX.ZZZ:7001
    fleet:
      public-ip: 178.170.XX.ZZZ


Comme pour votre première instance, supprimez le fichier /etc/machine-id et redémarrez l'instance :


core@CoreOSnode-2 ~ $ sudo rm -f /etc/machine-id
core@CoreOSnode-2 ~ $ sudo reboot


core@CoreOSnode-3 ~ $ sudo rm -f /etc/machine-id
core@CoreOSnode-3 ~ $ sudo reboot


Une fois redémarrées, vos 2 autres instances ont normalement rejoint votre cluster CoreOS/Etcd/Fleet :


core@CoreOSnode-1 ~ $ fleetctl list-machines
MACHINE         IP              METADATA
6eacee19...     178.170.XX.XXX  -
7e685988...     178.170.XX.YYY  -
87e15a4a...     178.170.XX.ZZZ  -


Si vos instances n'ont pas rejoint le cluster, pensez à vérifier que vos instances peuvent bien communiquer entre elles (connexions réseaux, règles parefeu/security group)


Maintenant que nous avons un cluster CoreOS/etcd/fleet de 3 instances, nous allons installer le panamax-remote-agent ainsi que le panamax-adapter :


On exécute le script d'installation de l'agent Panamax :


core@CoreOSnode-1 ~ $ sudo bash -c "$(curl http://download.panamax.io/agent/pmx-agent-install)"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   685  100   685    0     0   1756      0 --:--:-- --:--:-- --:--:--  3156
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  8613  100  8613    0     0  27496      0 --:--:-- --:--:-- --:--:-- 27694
./
./pmx-agent
./README.md
./CHANGELOG.md
./openssl.cnf
./.version
Execute cd /root/pmx-agent && ./pmx-agent to invoke agent setup script.


Puis


core@CoreOSnode-1 ~ $ sudo bash -c "$(curl http://download.panamax.io/agent/pmx-agent-install)"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   685  100   685    0     0   1756      0 --:--:-- --:--:-- --:--:--  3156
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  8613  100  8613    0     0  27496      0 --:--:-- --:--:-- --:--:-- 27694
./
./pmx-agent
./README.md
./CHANGELOG.md
./openssl.cnf
./.version
Execute cd /root/pmx-agent && ./pmx-agent to invoke agent setup script.
core@CoreOSnode-1 ~ $ sudo su
CoreOSnode-1 core # cd /root/pmx-agent

<!--T:65-->
███████╗ ██████╗  █████████╗ ██████╗  ██████████╗ ██████╗  ██╗  ██╗
██╔══██║  ╚═══██╗ ███╗  ███║  ╚═══██╗ ██║ ██╔ ██║  ╚═══██╗ ╚██╗██╔╝
██   ██║ ███████║ ███║  ███║ ███████║ ██║╚██║ ██║ ███████║  ╚███╔╝
███████╝ ███████║ ███║  ███║ ███████║ ██║╚██║ ██║ ███████║  ██╔██╗
██║      ███████║ ███║  ███║ ███████║ ██║╚██║ ██║ ███████║ ██╔╝ ██╗
╚═╝      ╚══════╝ ╚══╝  ╚══╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝  ╚═╝

<!--T:66-->
<span class="notranslate">CenturyLink Labs</span> - http://www.centurylinklabs.com/

 <!--T:67-->
1) init:          First time installing Panamax Remote Agent! - Downloads and installs Panamax Remote Agent.
 2) restart:       Stops and Starts Panamax Remote Agent and Adapter.
 3) reinstall:     Deletes your current Panamax Remote Agent and Adapter and reinstalls latest version.
 4) check:         Checks for available updates for Panamax Remote Agent and Adapter.
 5) update:        Updates to latest Panamax Remote Agent and Adapter.
 6) delete:        Uninstalls Panamax Remote Agent and Adapter.
 7) debug:         Display your current Panamax settings.
 8) token:         Display your current Panamax Remote Agent token.
 9) help:          Show this help
10) quit
Please select one of the preceding options:


Tapez 1 pour installer le Panamax Remote Agent :


Please select one of the preceding options: 1

<!--T:70-->
Installing panamax remote agent/adapter...

<!--T:71-->
Installing Panamax adapter:

<!--T:72-->
Select the ochestrator you want to use:

<!--T:73-->
1) Kubernetes
2) CoreOS Fleet
3) Marathon
Please select one of the preceding options:


Choisissez l'orchestrateur "2) CoreOS Fleet" et indiquez votre ip :


Please select one of the preceding options: 2


<!--T:76-->
Enter the API endpoint to access the Fleet <span class="notranslate">cluster</span> (e.g: http://10.187.241.100:4001): http://178.170.XX.XXX:4001

<!--T:77-->
Starting Panamax Fleet adapter:

<!--T:78-->
docker pull centurylink/panamax-fleet-adapter:latest

<!--T:79-->
56b22791d9b3dac06e2348a6a867527ffae01a37ab374159be48bbafaf77334f

<!--T:80-->
Installing Panamax remote agent:
Enter the public hostname (dev.example.com, without 'http') or IP Address (ex: 206.x.x.x) of the agent: Enter the public hostname (dev.example.com, without 'http') or IP Address (ex: 206.x.x.x) of the agent: 178.170.XX.XXX
Enter the port to run the agent on (3001):

<!--T:81-->
Generating SSL Key

<!--T:82-->
docker pull centurylink/openssl:latest

<!--T:83-->
Generating RSA private key, 1024 bit long modulus
......++++++
..............................................................................++++++
e is 65537 (0x10001)
Generating a 4096 bit RSA private key
........................................................................................++
................................................................++
writing new private key to '/certs/pmx_remote_agent.key'
-----
No value provided for Subject Attribute C, skipped
No value provided for Subject Attribute ST, skipped
No value provided for Subject Attribute L, skipped
No value provided for Subject Attribute O, skipped
Signature ok
subject=/CN=178.170.XX.XXX
Getting Private key

<!--T:84-->
Starting Panamax remote agent:

<!--T:85-->
docker pull centurylink/panamax-remote-agent:latest

<!--T:86-->
524bc3b7db813d2f20f8dc028037ce8f42ecfc05ebe8c4f67a172e3f6125dc44

============================== START ============================== <!--T:87-->
aHR0cHM6Ly8xNzguMTcwLjY4LjE1NzozMDAxfDdiYzExYjNiLTMxZDEtNGM1NS1hZWNlLWFmNTRk
NGQ1NzkzNHxOVGs1TUdNMk5tVXRNV0UzWlMwME1EUmhMVGc1T0RNdFpqZGhZVEJqWTJVM1ptSm1D
Zz09fC0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlGRmpDQ0F2NmdBd0lCQWdJSkFKb003
cDJiRTd6aU1BMEdDU3FHU0liM0RRRUJCUVVBTUJreEZ6QVZCZ05WCkJBTU1EakUzT0M0eE56QXVO
amd1TVRVM01CNFhEVEUxTURZeE5qRTBOVGt6TjFvWERURTJNRFl4TlRFME5Ua3oKTjFvd0dURVhN
QlVHQTFVRUF3d09NVGM0TGpFM01DNDJPQzR4TlRjd2dnSWlNQTBHQ1NxR1NJYjNEUUVCQVFVQQpB
NElDRHdBd2dnSUtBb0lDQVFDZHFmOFVZM21RWnJpUTdLSTVJV0RuNkJuS3lIclkxTitZeE1OaVlj
WnRKSm5yCmt3UlhDQzRVelNDNEdrMmszcFIzeHppd0piN1VUYmRwMXUrQlhnYjgvVHV3dDhENUxp
MVovUzRudmVoUlA4N0YKa0trcENpeU8zUllyQXc0QkFqZVkvb2Jsem5nN2Y0T2dXYWhaamhnV201
SUJ0dWdndXVCTEVUcHNIcERXZWJpSQpOT0I3V2ZEQkh0RmRydkpLMEU2dEJzNjdVVkg0ZHdLNVcx
c0dNdjRsQTY4TGczdmFlWVpobHk0NGFpeGlPWUIzClV6TlUzN3h3eXFFbnVnU2MvM2x3VzhVRVdU
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
cDBvTHdpOXVtS0VWeFQ5VjYrL1JsL3VoRHBlV09Nc3FOaVkyanBRVkhpZ1lWVVpKYlJhZ2xIbk42
NDBXZApRZUZBTnMvT29aQTFrdDN1cFR5MmtlVWljLzMzTzlidTArU0hFUEZpd2Fqa3dkUURudXl4
dGVRNnBJVEhhVDdSCmVoWEdDdDRmVXBSUjZsT2xGWjRTS2JjQmtBa3dZa2V5Y0N5VTltTkV3Yk1R
M0xJZmY5K0pSa3hqTXQ1YnRzTHgKWDk2d08zWURBYkc2NmxmQkh1TTJLNWZVck1yWDlUbmpmN0x5
Z0hjcnJWWmFiK2JjUkM2SzZVQnI1RTl4R2xKNgpGZHZMdkUySW5uQjkrRzIrM2V1OXh6UXVFWGpB
K2ZzUDJReDRJU2w3NGpYaTRWa3Ziem41TnhUVHJsRzNaYk9WCkp3NTRmV21lOHRwQ2N4Vit2V2JW
M0tCZ2JpMXRlKzRKTFZuV1VKTlpVUng5K2VUTG82UTd2Tm1iSG1RTS8wOHIKVWZIR1JSOGlPZGwr
NjlDZjNlUWwvenhCSVE2cXN4bGxzWTJMd3IvMGFFaURuUDRtNk5WUEtuSmN4VDNNbTRuZwp4TjdR
OXh6V08rWUdhdUVhaHNMUkF2QXhleFVPZkkrUHlmT0lYVFova1hJWjA1VWxVU3RoYUJ3bzFXRlVI
VnFWCjhxU1pjdEU0UGRneExSejNXclltZTdVWTJEbWJuUkJOVHlFOW0yeFJPVEh6RUlQWTdDVXZ3
MDh0ZFpHczNkbG8KbVdPSVcwMGk1MEROa1ArT1RyWm5OcHU3VVRjL3ZPQ3hSaGJyM1o4OTNyWXA3
SUlKT0VQWUFjT1pzMHRkQWNvQwowSldRRTZzUnFRT1dCQT09Ci0tLS0tRU5EIENFUlRJRklDQVRF
LS0tLS0K
============================== END ==============================


<!--T:88-->
Copy and paste the above (Not including start/end tags) to your local panamax client to connect to this remote agent.


<!--T:89-->
Remote Agent/Adapter installation complete!


<!--T:90-->
CoreOSnode-1 pmx-agent #


Comme cela est indiqué en fin d'installation, vous devez copier-coller (sans les lignes balises START/END) la clé privée de votre panamax remote agent dans l'UI Panamax lors de la création de votre Panamax Remote Deployment Target.


Ajouter votre Panamax Remote Deployment Target à votre Panamax UI

Pour ajouter votre Panamax Remote Deployment Target dans votre Panamax UI, connectez-vous à celle-ci via votre navigateur :


- allez dans "MANAGE"


Panamax-ui-manage.png


- cliquez sur le nom d'un template peu importe lequel pour le moment (ex: "Wordpress with MySQL")


Panamax-ui-search-tmplt.png


- cliquez sur le bouton "Run Template"


Panamax-ui-fleche.png


- cliquez sur "Deploy to Target" :


Panamax-ui-deploytotarget.png


- Cliquez sur "Add a New Remote Deployment Target"


Panamax-ui-remotedeploymenttarget.png


- Cliquez sur "Enter your token here." (en bas à droite de la page)


Panamax-ui-entertokens.png


- Saisissez l'adresse ip de votre Panamax Remote Agent (que vous avez paramétré lors de son installation dans le champs "Name") puis copiez-collez la clé privé de l'agent retournée à la fin de l'installation du Panamax Remote Agent (sans les lignes balises START/END).


Panamax-ui-tokens.png


- Cliquez sur "Save Remote Deployment Target"


Vous devriez avoir le résultat suivant :


Panamax-ui-remotedeploytarget-added.png


- Cliquez sur la flèche verte à gauche du nom de votre Remote Deployment Target puis forcer une première mise à jour :


Panamax-ui-remotedeploymenttarget-update.png


Après mise à jour, les informations sur votre Remote Deployment Targets telles que la version de votre Panamax Remote Agent, le type de votre Panamax Adapter et sa version :


Panamax-ui-remotedeploymenttarget-informations.png

Déploiement d'une application via Panamax UI

Il vous est maintenant possible de déployer une application disponible dans la market place "Panamax Templates & Docker Repositories" depuis votre Panamax UI sur votre Panamax Remote Deployment Target :


- Recherchez le nom de l'application que vous souhaitez déployer. Nous choisissons le template Century Link "Wordpress with MySQL"


- Vous pouvez cliquez sur "More Details" pour avoir plus d'informations sur le template que vous avez choisis. Vous pouvez également voir de combien d'image(s) Docker le template est constitué (dans notre cas 2 images)


Panamax-ui-template-details.png


- Cliquez sur "Run Template" pour déployer le menu et cliquez sur "Deploy to Target" :


Panamax-ui-deploytotarget-wordpress.png


- Cliquez sur "Select this Target" pour sélectionner votre Remote Deployment Target


Panamax-ui-select-target.png


- Renseignez les éventuels champs de "Deployment Settings" de l'application que vous déployée (mot de passe, variables d'environnement,etc.) puis cliquez sur le bouton "Deploy to Target" en dessous pour valider


Panamax-ui-deployment-settings.png


- Vous devriez avoir le résultat suivant :


Panamax-ui-deployment-triggered.png


Si vous vous connectez à vos instances de votre cluster CoreOS, vous pourrez voir que Panamax a réparti les containers Docker sur différents nodes/instances de votre cluster CoreOS :


- On peut voir que l'image centurylink/wordpress a été déployée sur notre première instance CoreOS :


core@CoreOSnode-1 ~ $ docker ps
CONTAINER ID        IMAGE                                      COMMAND                CREATED             STATUS              PO                                                        RTS                    NAMES
3206bda4e534        centurylink/wordpress:3.9.1                "/run.sh"              3 minutes ago       Up 3 minutes        0.                                                        0.0.0:8080->80/tcp     wp
84e3c5fe1886        centurylink/panamax-remote-agent:latest    "/panamax-remote-age   37 minutes ago      Up 37 minutes       0.                                                        0.0.0:3001->3000/tcp   pmx_agent
71009f7785d3        centurylink/panamax-fleet-adapter:latest   "rackup '-E producti   37 minutes ago      Up 37 minutes       92                                                        92/tcp                 pmx_adapter


- Et l'image centurylink/mysql sur notre troisième instance de notre cluster :


core@CoreOSnode-3 ~ $ docker ps
CONTAINER ID        IMAGE                   COMMAND                CREATED             STATUS              PORTS                    NAMES
84deeadd66fa        centurylink/mysql:5.5   "/usr/local/bin/run"   4 minutes ago       Up 4 minutes        0.0.0.0:3306->3306/tcp   db


- Nous pouvons également avoir certaines informations relatives aux déploiements des applications effectués via Panamax UI par l'intermédiaire de notre gestionnaire de cluster Etcd :


On retrouve nos 2 applications (Wordpress "WP" et MySQL "DB") :


core@CoreOSnode-1 ~ $ etcdctl ls --recursive /app
/app/DB
/app/DB/DB_SERVICE_HOST
/app/WP
/app/WP/WP_SERVICE_HOST


On peut également voir sur quel instance membre de notre cluster l'application a été déployée :


core@CoreOSnode-1 ~ $ etcdctl get /app/DB/DB_SERVICE_HOST
178.170.XX.XXX


core@CoreOSnode-1 ~ $ etcdctl get /app/WP/WP_SERVICE_HOST
178.170.XX.ZZZ


- Nous pouvons aussi avoir le statut des applications de notre cluster par Fleet qui le gestionnaire des applications dans notre cluster :


core@CoreOSnode-1 ~ $ fleetctl list-unit-files
UNIT            HASH    DSTATE          STATE           TARGET
db.service      0caad43 launched        launched        6eacee19.../178.170.XX.XXX
wp.service      417826f launched        launched        7e685988.../178.170.XX.ZZZ


- Nous pouvons vérifier le bon fonctionnement de notre Wordpress en y accédant avec les informations fournis dans les détails du template (dans notre cas sur le port 8080 ouvert au niveau du parefeu préalablement, nous aurions pu faire une redirection de port du 8080 sur le port 80 public dans le cas d'instances en zone avancée) :


Panamax-application-wordpress.png

Cet article vous a semblé utile ?

0