Isitsha se-Docker sokuphatha amaseva e-HP nge-ILO

Kungenzeka ukuthi uyazibuza - kungani i-Docker ikhona lapha? Yini inkinga ngokungena ku-interface yewebhu ye-ILO bese uhlela iseva yakho njengoba kudingeka?
Yilokho engikucabange lapho benginika amaseva ambalwa amadala angadingekile ebengidinga ukuwafaka kabusha (okuthiwa ukuphinda kwenziwe kabusha). Iseva ngokwayo itholakala phesheya kwezilwandle, okuwukuphela kwento etholakalayo isixhumi esibonakalayo sewebhu. Nokho, ngokufanele, bekufanele ngiye ku-Virtual Console ukuze ngiqhube imiyalo ethile. Kulapho kwaqala khona.
Njengoba wazi, i-Java ivamise ukusetshenziselwa izinhlobo ezahlukahlukene zama-virtual consoles, kungaba ku-HP noma ku-Dell. Okungenani kwakunjalo ngaphambili (futhi izinhlelo zindala kakhulu). Kodwa iFirefox neChrome bayeka ukusekela lawa ma-applet kudala, futhi i-IcedTea entsha ayisebenzi nalezi zinhlelo. Ngakho-ke, izinketho eziningi zavela:

1. Qala ukwakha i-zoo usebenzisa iziphequluli nezinguqulo ze-Java emshinini wakho, le nketho ibingasadingeki. Asikho isifiso sokugcona uhlelo ngenxa yemiyalo embalwa.
2. Yethula okuthile okudala impela emshinini we-virtual (kuvele ngokuhlolwa ukuthi udinga i-Java 6) futhi ulungiselele konke okudingayo ngayo.
3. Okufanayo nephuzu lesi-2, kuphela esitsheni, njengoba ozakwabo abaningana bahlangabezane nenkinga efanayo futhi kulula kakhulu ukubadlulisela isixhumanisi esitsheni ku-Dockerhub kunesithombe somshini obonakalayo, nawo wonke amaphasiwedi, njll.
(Eqinisweni, ngithole iphuzu lesi-3 kuphela ngemuva kokwenza iphuzu 2)
Sizokwenza iphuzu 3 namuhla.

Ngigqugquzelwe ikakhulukazi amaphrojekthi amabili:
1. i-docker-baseimage-gui
2. docker-firefox-java
Ngokuyisisekelo iphrojekthi yokuqala i-docker-baseimage-gui kakade iqukethe izinsiza nezilungiselelo zokuqalisa izinhlelo zokusebenza zedeskithophu ku-Docker. Ngokuvamile udinga ukuchaza okuguquguqukayo okujwayelekile futhi uhlelo lwakho lokusebenza luzofinyeleleka ngesiphequluli (i-websocket) noma i-VNC. Esimweni sethu, sizokwethula ngeFirefox ne-VNC; ayisebenzanga nge-websocket.
Okokuqala, ake sifake amaphakheji adingekayo - i-Java 6 ne-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

Manje okumele ukwenze nje ukuya ekhasini le-interface ye-ILO bese ufaka igama lakho lomsebenzisi nephasiwedi. Yethula iFirefox ku-autostart:

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

I-HILO_HOST imvelo eguquguqukayo iqukethe ikheli lewebhu lesixhumi esibonakalayo se-ILO, isibonelo myhp.example.com
Ukuze ungene ngemvume ngokuzenzakalelayo, masingeze ukugunyazwa. Ukungena ngemvume ku-ILO kwenzeka ngesicelo esivamile se-POST, njengomphumela wokuthi uthole i-JSON session_key, bese uyidlulisela esicelweni se-GET:
Masibale i-session_key nge-curl uma i-HILO_USER kanye ne-HILO_PASS eguquguqukayo yemvelo ichazwa:

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

Uma sesiqophe i-session_key kudocker, singakwazi ukwethula i-VNC:

exec x11vnc -forever -create

Manje simane sixhuma nge-VNC ku-port 5900 (noma enye into oyikhethayo) ku-localhost bese siya kukhonsoli ebonakalayo.
Yonke ikhodi isendaweni yokugcina i-docker-ilo-client.
Umyalo ogcwele wokuxhuma ku-ILO:

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

lapho i-ADDRESS_OF_YOUR_HOST kuyigama lomsingathi we-ILO, SOME_USERNAME iwukungena ngemvume futhi, ngokufanelekile, SOME_PASSWORD iphasiwedi ye-ILO.
Ngemuva kwalokho, vele uvule noma yiliphi iklayenti le-VNC ekhelini: vnc://localhost:5900
Izicelo zokwengeza nokudonsa zamukelekile.

Iphrojekthi efanayo ikhona yokuxhuma ku-IDRAC kokusebenzelana kwemishini ye-DELL: docker-idrac6.

Source: www.habr.com

Engeza amazwana