Nutanix LCM ist eine Software Komponente am Nutanix Cluster die es ermöglicht Firmware und Software Komponenten (zb: Disk Firmware oder BIOS) am Nutanix Cluster zu inventarisieren und zu aktualisieren.
Der Nutanix LCM (Life Cycle Manager) nützt ein Internet Repository um sich aktuelle Informationen über Firmware Upgrades zu holen.
Wenn jedoch der Nutanix Cluster in einer Dark Site sich befindet (somit keine Internetverbindung) so kann man dieses Repository lokal zur Verfügung stellen.
dazu gibt es unterschiedliche Methoden; zwei davon auf der Nutanix Supportseite dokumentiert (mit Windows IIS und mit linux apache):
https://portal.nutanix.com/#/page/kbs/details?targetId=kA00e000000LJn5CAG
einen schnellen und alternativen Weg gibt es auch mit einem DOCKER container:
Voraussetzung dafür: einen Docker Host auf Linux (mit Windows hab ich es noch nicht getestet). Die Installation ist mehrfach im Netz dokumentiert: (z.B: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-centos-7)
Ebenfalls benötigt man das LCM offline bundle, dass auf der Nutanix Support Seite zu finden ist: https://portal.nutanix.com/#/page/static/supportTools
Auf dem docker Host lädt man das LCM offline bundle; in meinem Fall hatte der Docker Host eine Internetverbindung:
[root@mapidocker lcmrepo]
# wget http://download.nutanix.com/lcm/2.0/lcm_dark_site_bundle_stable.4139.tar.gz
--2019-02-07 08:06:04-- http:
//download
.nutanix.com
/lcm/2
.0
/lcm_dark_site_bundle_stable
.4139.
tar
.gz
Resolving download.nutanix.com (download.nutanix.com)... 13.32.24.200, 13.32.24.15, 13.32.24.90, ...
Connecting to download.nutanix.com (download.nutanix.com)|13.32.24.200|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2434716378 (2.3G) [application
/x-tar
]
Saving to: ‘lcm_dark_site_bundle_stable.4139.
tar
.gz’
100%[============================================================================================================================>] 2,434,716,378 18.3MB
/s
in
2m 13s
2019-02-07 08:08:17 (17.5 MB
/s
) - ‘lcm_dark_site_bundle_stable.4139.
tar
.gz’ saved [2434716378
/2434716378
]
[root@mapidocker lcmrepo]
# tar -xvzf lcm_dark_site_bundle_stable.4139.tar.gz
release/
release
/nutanix_compatibility
.tgz.sign
release
/master_manifest
.tgz.sign
release
/master_manifest
.tgz
release
/modules/
release
/modules/release-hypervisor-esx-esx_update-072939a175eeda616b6cd4140f1bf84b1009b7f9ef365b817b1038d011c7ebf9
.tgz
release
/modules/release-dell-ptagent-hyperv-tools-d4dd2b6cb9d4b9f8113f2dca4fc227a69c1553b5fe00409585da1e8da3eca5ed
.tgz
r...
...
release
/support
.txt
release
/nutanix_compatibility
.tgz
[root@mapidocker lcmrepo]
#
Den Security kontext anpassen damit es zu keinen Zugriffsproblemen beim Webserver kommt:
[root@mapidocker lcmrepo] # chcon -t httpd_sys_content_t release |
Danach kann man den Webserver schon starten und prüfen ob der Zugriff möglich ist:
[root@mapidocker lcmrepo] # docker run -it -p:80:80 -v $(pwd):/usr/local/apache2/htdocs/ httpd:2.4 AH00558: httpd: Could not reliably determine the server 's fully qualified domain name, using 172.17.0.2. Set the ' ServerName' directive globally to suppress this message AH00558: httpd: Could not reliably determine the server 's fully qualified domain name, using 172.17.0.2. Set the ' ServerName' directive globally to suppress this message [Thu Feb 07 13:40:24.786423 2019] [mpm_event:notice] [pid 1:tid 139751975101632] AH00489: Apache /2 .4.38 (Unix) configured -- resuming normal operations [Thu Feb 07 13:40:24.786619 2019] [core:notice] [pid 1:tid 139751975101632] AH00094: Command line: 'httpd -D FOREGROUND' |
das Kommando kurz erklärt:
docker run … startet einen container (das image wird dabei vom docker hub geladen)
-it .. als interactive Terminal … da können wir auf der Console mitlesen was passiert
-p … das port 80 vom container wird auf port 80 vom Docker Host gemapped
-v wir mounten das lokale Verzeichnis vom docker host in den htdocs ordner vom webserver
httpd:2.4 … wir starten einen httpd container mit version 2.4
Nun sollte es auch schon möglich sein auf den HTTP Server zuzugreifen:
Wenn der Zugriff funktioniert dann kann man im PRISM unter Life Cycle Management → Advanced Settings den URL für das REPO anpassen:
http://<ip-adresse vom docker host>/release
Anschließend kann man das Inventarisieren starten und ggf. die Komponenten aktualisieren.