Islandora-Collaboration-Group / ISLE

Islandora Enterprise (ISLE) is a community project that addresses two of the most significant pain-points in Islandora: installation and maintenance.
https://Islandora-Collaboration-Group.github.io/ISLE/
GNU General Public License v3.0
32 stars 34 forks source link

Feature enhancement: add islandora_inventory_stack or similar to ISLE framework #49

Open McFateM opened 6 years ago

McFateM commented 6 years ago

The subject project/script is only about 1/3 complete (estimate) but I think having a tool like this, or some equivalent outcome, would be a welcome addition to ISLE. Perhaps the 'docker-compose up' process itself can "harvest" and report version info as containers are instantiated?

dwk2 commented 6 years ago

Love this idea of havING this report version info upon instantiation, AND also would like to be able to create such a report at any point after installation, including possibly being able to also report the current version of ISLE tagged container set used. One more idea would be to include this as a pre-populated idea within the customizations folder

McFateM commented 6 years ago

Still looking for possible approaches to satisfying this need. Currently giving https://lumogon.com/ a spin based on what I read at http://thenewstack.io/puppet-launches-lumogon-container-inspection-tool/

McFateM commented 6 years ago

Wow! Me like. Just took Lumogon (created by the folks at Puppet) for a spin on my Mac with an ISLE.localdomain set of containers running... and wow, what it reports is incredible. It dumps a BUNCH of json but just browsing through the raw file shows me what I need to know. Here's a tiny fraction (big chunks have been replaced with ...) of what it reported for my current Apache container...

         ...
        "docker": {
          "$schema": "http://puppet.com/lumogon/capability/docker/draft-01/schema#1",
          "title": "Docker Server Information",
          "type": "dockerapi",
          "harvestid": "51ddc580-b788-493e-93f7-63a6b4c0caa3",
          "payload": {
            "APIVersion": "1.37",
            "MinAPIVersion": "1.12",
            "Version": "18.03.0-ce"
          }
        },
        "dpkg": {
          "$schema": "http://puppet.com/lumogon/capability/label/draft-01/schema#1",
          "title": "Packages (DPKG)",
          "type": "dockerapi",
          "harvestid": "e511ecfd-201d-49c6-9658-0cb8c983032d",
          "payload": {
            "adduser": "3.113+nmu3ubuntu4",
            "apache2": "2.4.33-1+ubuntu16.04.1+deb.sury.org+1",
             ...
            "ghostscript": "9.18~dfsg~0-0ubuntu2.7",
             ...
            "imagemagick": "8:6.8.9.9-7ubuntu5.9",
            "imagemagick-6.q16": "8:6.8.9.9-7ubuntu5.9",
            "imagemagick-common": "8:6.8.9.9-7ubuntu5.9",
            ...
            "php-common": "1:60+ubuntu16.04.1+deb.sury.org+1",
            "php-imagick": "3.4.3-3+ubuntu16.04.1+deb.sury.org+1",
            "php-pear": "1:1.10.5+submodules+notgz-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-cli": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-common": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-curl": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-dev": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-gd": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-json": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-ldap": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-mbstring": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-mcrypt": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-mysql": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-opcache": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-readline": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-soap": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-xml": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-xmlrpc": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-xsl": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            "php5.6-zip": "5.6.35-1+ubuntu16.04.1+deb.sury.org+1",
            ...
            "zlib1g-dev": "1:1.2.8.dfsg-2ubuntu4.1"
          }
        },
        "host": {
          "$schema": "http://puppet.com/lumogon/capability/host/draft-01/schema#1",
          "title": "Host Information",
          "type": "attached",
          "harvestid": "f9607ca9-c29d-4d4b-83e1-c3557d17ce22",
          "payload": {
            "hostname": "bd057f0e6f56",
            "kernelversion": "4.9.87-linuxkit-aufs",
            "os": "linux",
            "platform": "ubuntu",
            "platformfamily": "debian",
            "platformversion": "16.04",
            "procs": "70",
            "uptime": "5155",
            "virtualizationrole": "guest",
            "virtualizationsystem": "docker"
          }
        },
        "label": {
          "$schema": "http://puppet.com/lumogon/capability/label/draft-01/schema#1",
          "title": "Labels",
          "type": "dockerapi",
          "harvestid": "e5771fa1-d685-4652-84aa-699d3f336577",
          "payload": {
            "com.docker.compose.config-hash": "34ef0977e64a76ed0387990ff2a0ceaad836bd87671891994bc5717d7925399e",
            "com.docker.compose.container-number": "1",
            "com.docker.compose.oneoff": "False",
            "com.docker.compose.project": "isle",
            "com.docker.compose.service": "apache",
            "com.docker.compose.version": "1.20.1",
            "io.github.islandora-collaboration-group.description": "ISLE Apache container, responsible for serving Drupal and Islandora's presentation layer!A default site called isle.localdomain is prepared for those looking to explore Islandora for the first time!",
            "io.github.islandora-collaboration-group.license": "Apache-2.0",
            "io.github.islandora-collaboration-group.maintainer": "Islandora Collaboration Group (ICG) - islandora-consortium-group@googlegroups.com",
            "io.github.islandora-collaboration-group.name": "isle-apache",
            "io.github.islandora-collaboration-group.vcs-url": "git@github.com:Islandora-Collaboration-Group/ISLE.git",
            "io.github.islandora-collaboration-group.vendor": "Islandora Collaboration Group (ICG) - islandora-consortium-group@googlegroups.com",
            "traefik.backend": "isle.localdomain.web",
            "traefik.frontend.rule": "Host:isle.localdomain;",
            "traefik.port": "80"
          }
        }
      }
    },

The key elements in this, for me, are that this tells me my Apache container is running atop Ubuntu 16.04 with PHP 5.6 (not usually the case for 16.04 but required for Islandora 7) and a nice new(ish) versions of Ghostscript and ImageMagick.

This rocks! Now, just need a way to clean it up and make it pretty. 8^)

DiegoPino commented 6 years ago

@McFateM cool! Just a side note here, Islandora 7 runs perfectly on PHP 7+, so for the next iteration, you should consider that. Performance improvements are "dramatic".

dwk2 commented 6 years ago

@McFateM This looks amazing! Love the reporting feedback capability it provides. @DiegoPino If Islandora 7 runs perfectly on PHP 7+, might there be incompatibility problems for institutions using modules that are custom built or from Islandora Labs? Or would Drupal theming be an issue?

McFateM commented 6 years ago

So, there have to be some drawbacks/hurdles to overcome with PHP 7 and Drupal/Islandora 7, right? I mean, for a long time now I’ve just heard “don’t do it” when it comes to mixing all these 7’s.

In any case, I do think ISLE opens up a world of possibilities that just weren’t practical before. And Lumogon should be helpful in assessing exactly what we are running. Exciting stuff.

From: David Keiser-Clark notifications@github.com Reply-To: Islandora-Collaboration-Group/ISLE reply@reply.github.com Date: Friday, April 6, 2018 at 10:39 AM To: Islandora-Collaboration-Group/ISLE ISLE@noreply.github.com Cc: Mark McFate mcfatem@grinnell.edu, Mention mention@noreply.github.com Subject: Re: [Islandora-Collaboration-Group/ISLE] Feature enhancement: add islandora_inventory_stack or similar to ISLE framework (#49)

@McFateMhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_McFateM&d=DwMFaQ&c=HUrdOLg_tCr0UMeDjWLBOM9lLDRpsndbROGxEKQRFzk&r=PQglHQe-EzyZqJOuOVcmU0OZ6bg-89msSPuqyNlQr28&m=-nofLRAiq4d8t0Ew64pqrwDAsZeq8lSEVoXsINSHx9o&s=5n9RBXtVtgduHzRACoJ_tkoFb1s-r1PVcFkiQitoOQ8&e= This looks amazing! Love the reporting feedback capability it provides. @DiegoPinohttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_DiegoPino&d=DwMFaQ&c=HUrdOLg_tCr0UMeDjWLBOM9lLDRpsndbROGxEKQRFzk&r=PQglHQe-EzyZqJOuOVcmU0OZ6bg-89msSPuqyNlQr28&m=-nofLRAiq4d8t0Ew64pqrwDAsZeq8lSEVoXsINSHx9o&s=EvSxOp_WaOuuwNBl5AolwaH6pfrU93dddmUq-Iv6n1c&e= If Islandora 7 runs perfectly on PHP 7+, might there be incompatibility problems for institutions using modules that are custom built or from Islandora Labs? Or would Drupal theming be an issue?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Islandora-2DCollaboration-2DGroup_ISLE_issues_49-23issuecomment-2D379292164&d=DwMFaQ&c=HUrdOLg_tCr0UMeDjWLBOM9lLDRpsndbROGxEKQRFzk&r=PQglHQe-EzyZqJOuOVcmU0OZ6bg-89msSPuqyNlQr28&m=-nofLRAiq4d8t0Ew64pqrwDAsZeq8lSEVoXsINSHx9o&s=lXq_H1njFVs7wMs0iwrJcEKjyMvpvCWtErdYB9MJIuM&e=, or mute the threadhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AIFIwQktzkui6IWKrKcPRIxOnnB-5F-2DSipks5tl4wDgaJpZM4Qt5Tb&d=DwMFaQ&c=HUrdOLg_tCr0UMeDjWLBOM9lLDRpsndbROGxEKQRFzk&r=PQglHQe-EzyZqJOuOVcmU0OZ6bg-89msSPuqyNlQr28&m=-nofLRAiq4d8t0Ew64pqrwDAsZeq8lSEVoXsINSHx9o&s=PsBrgOJex3kSriuGCdkdaMQ0PkybEXSKafhbKKMYfb4&e=.