Docker Container fir HP Serveren iwwer ILO ze managen

Dir kënnt Iech wahrscheinlech froen - firwat existéiert Docker hei? Wat ass de Problem mat der Umeldung an der ILO Web Interface an opzestellen Äre Server wéi néideg?
Dat ass wat ech geduecht hunn, wéi se mir e puer al onnéideg Server ginn hunn, déi ech brauche fir nei z'installéieren (wat reprovision genannt gëtt). De Server selwer ass am Ausland läit, dat eenzegt wat verfügbar ass ass de Webinterface. Gutt, deementspriechend, ech hu missen op d'Virtuell Konsole goen fir e puer Kommandoen auszeféieren. Do huet et ugefaang.
Wéi Dir wësst, gëtt Java normalerweis fir verschidden Aarte vu virtuelle Konsolen benotzt, egal ob an HP oder Dell. Op d'mannst ass dat wéi et fréier war (an d'Systemer si ganz al). Awer Firefox a Chrome hunn opgehalen dës Applets viru laanger Zäit z'ënnerstëtzen, an den neien IcedTea funktionnéiert net mat dëse Systemer. Dofir sinn e puer Optiounen entstanen:

1. Fänkt un en Zoo aus Browser a Java Versiounen op Ärer Maschinn ze bauen, dës Optioun war net méi gebraucht. Et gëtt kee Wonsch de System ze spotten fir e puer Kommandoen.
2. Start eppes zimlech al op der virtueller Maschinn (et huet sech experimentell erausgestallt datt Dir Java 6 braucht) a konfiguréiert alles wat Dir braucht duerch dat.
3. D'selwecht wéi de Punkt 2, nëmmen an engem Container, well verschidde Kollegen deeselwechte Problem begéint hunn an et vill méi einfach ass fir hinnen e Link op e Container op Dockerhub ze transferéieren wéi e virtuellt Maschinnbild, mat all de Passwierder, etc.
(Tatsächlech sinn ech eréischt op de Punkt 3 komm nodeems ech de Punkt 2 gemaach hunn)
Mir maachen den Punkt 3 haut.

Ech war haaptsächlech vun zwee Projeten inspiréiert:
1. docker-baseimage-gui
2. docker-firefox-java
Am Fong den éischte Projet docker-baseimage-gui enthält schonn Utilities a Konfiguratiounen fir Desktop Uwendungen am Docker ze lafen. Typesch musst Dir Standardvariablen definéieren an Är Applikatioun gëtt iwwer Browser (Websocket) oder VNC zougänglech. An eisem Fall wäerte mir iwwer Firefox a VNC starten; et huet net iwwer Websocket geschafft.
Als éischt, loosst eis déi néideg Packagen installéieren - Java 6 an IcedTea:

RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list &&
apt-get update &&
apt-get -y upgrade &&
apt-get -y install firefox
nano curl
icedtea-6-plugin
icedtea-netx
openjdk-6-jre
openjdk-6-jre-headless
tzdata-java

Elo alles wat Dir maache musst ass op d'ILO Interface Säit ze goen an Äre Benotzernumm a Passwuert aginn. Start Firefox am Autostart:

RUN bash -c 'echo "exec openbox-session &" >> ~/.xinitrc' &&
bash -c 'echo "firefox ${HILO_HOST}">> ~/.xinitrc' &&
bash -c 'chmod 755 ~/.xinitrc'

D'HILO_HOST Ëmfeld Variabel enthält d'Webadress vun eisem ILO Interface, zum Beispill myhp.example.com
Fir de Login ze automatiséieren, loosst eis Autorisatioun addéieren. Login op ILO geschitt mat enger regulärer POST Ufro, als Resultat vun där Dir e JSON session_key kritt, deen Dir dann an enger GET Ufro passéiert:
Loosst eis session_key iwwer Curl berechnen wann d'HILO_USER an HILO_PASS Ëmfeldvariablen definéiert sinn:

export HOME=/config
export HILO_HOST=${HILO_HOST%%/}
SESSION_KEY=""
data="{"method":"login","user_login":"${HILO_USER}","password":"${HILO_PASS}"}"
if [[ -n "${HILO_USER}" && -n "${HILO_PASS}" ]]; then
    SESSION_KEY=$(curl -k -X POST "${HILO_HOST}/json/login_session" -d "$data" 2>/dev/null | grep -Eo '"session_key":"[^"]+' | sed 's/"session_key":"//')
fi
echo "SESSION_KEY=$SESSION_KEY"
echo $SESSION_KEY > /session_key

Wann mir de session_key am Docker opgeholl hunn, kënne mir VNC lafen:

exec x11vnc -forever -create

Elo verbannen mir einfach iwwer VNC mam Port 5900 (oder all aner vun Ärer Wiel) op localhost a gitt op d'virtuell Konsol.
All Code ass am Repository docker-ilo-client.
Voll Kommando fir mat ILO ze verbannen:

docker run -d --rm --name ilo-client -p 5900:5900 -e HILO_HOST=https://ADDRESS_OF_YOUR_HOST -e HILO_USER=SOME_USERNAME -e HILO_PASS=SOME_PASSWORD sshnaidm/docker-ilo-client

wou ADDRESS_OF_YOUR_HOST den ILO Hostnumm ass, SOME_USERNAME ass de Login an deementspriechend SOME_PASSWORD d'Passwuert fir ILO.
Duerno starten einfach all VNC Client op d'Adress: vnc://localhost:5900
Ergänzunge a Pull Ufroe sinn natierlech wëllkomm.

En ähnleche Projet existéiert fir mat IDRAC Interfaces vun DELL Maschinnen ze verbannen: docker-idrac6.

Source: will.com

Setzt e Commentaire