Vi verŝajne demandas vin - kial Docker ekzistas ĉi tie? Kio estas la problemo kun ensaluti en la TTT-interfaco de ILO kaj agordi vian servilon laŭbezone?
Tion mi pensis, kiam ili donis al mi kelkajn malnovajn nenecesajn servilojn, kiujn mi bezonis reinstali (kio nomiĝas reprovizado). La servilo mem situas eksterlande, la sola disponebla estas la retinterfaco. Nu, sekve, mi devis iri al la Virtuala Konzolo por ruli kelkajn komandojn. Tie ĝi komenciĝis.
Kiel vi scias, Java estas kutime uzata por diversaj specoj de virtualaj konzoloj, ĉu en HP aŭ Dell. Almenaŭ tiel antaŭe estis (kaj la sistemoj estas tre malnovaj). Sed Fajrovulpo kaj Chrome ĉesis subteni ĉi tiujn apletojn antaŭ longe, kaj la nova IcedTea ne funkcias kun ĉi tiuj sistemoj. Tial, pluraj ebloj aperis:
1. Komencu konstrui zoon el retumiloj kaj Java-versioj sur via maŝino, ĉi tiu opcio ne plu estis bezonata. Ne estas deziro moki la sistemon pro kelkaj komandoj.
2. Lanĉu ion sufiĉe malnovan sur la virtuala maŝino (ekzeperimente montriĝis, ke vi bezonas Java 6) kaj agordu ĉion, kion vi bezonas per ĝi.
3. Same kiel punkto 2, nur en ujo, ĉar pluraj kolegoj renkontis la saman problemon kaj estas multe pli facile transdoni al ili ligilon al ujo sur Dockerhub ol virtuala maŝina bildo, kun ĉiuj pasvortoj, ktp.
(Fakte, mi alvenis nur al punkto 3 post kiam mi faris punkton 2)
Ni faros la punkton 3 hodiaŭ.
Mi estis inspirita ĉefe de du projektoj:
1.
2.
Esence la unua projekto
Unue, ni instalu la necesajn pakaĵojn - Java 6 kaj 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
Nun vi nur devas iri al la interfaco-paĝo de ILO kaj enigi vian uzantnomon kaj pasvorton. Lanĉu Fajrovulpon en aŭtomata starto:
RUN bash -c 'echo "exec openbox-session &" >> ~/.xinitrc' &&
bash -c 'echo "firefox ${HILO_HOST}">> ~/.xinitrc' &&
bash -c 'chmod 755 ~/.xinitrc'
La mediovariablo HILO_HOST enhavas la retadreson de nia ILO-interfaco, ekzemple
Por aŭtomatigi la ensaluton, ni aldonu rajtigon. Ensaluto al ILO okazas kun regula POST-peto, rezulte de kiu vi ricevas JSON-session_key, kiun vi poste transdonas en GET-peto:
Ni kalkulu session_key per buklo se la mediovariabloj HILO_USER kaj HILO_PASS estas difinitaj:
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
Post kiam ni registris la session_key en docker, ni povas lanĉi VNC:
exec x11vnc -forever -create
Nun ni simple konektas per VNC al la haveno 5900 (aŭ iu ajn alia laŭ via elekto) ĉe loka gastiganto kaj iras al la virtuala konzolo.
Ĉiu kodo estas en la deponejo
Plena komando por konekti al 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
kie ADDRESS_OF_YOUR_HOST estas la gastiga nomo de ILO, SOME_USERNAME estas la ensaluto kaj, sekve, SOME_PASSWORD la pasvorto por ILO.
Post tio, simple lanĉu ajnan VNC-klienton al la adreso: vnc://localhost:5900
Aldonoj kaj tiraj petoj estas kompreneble bonvenaj.
Simila projekto ekzistas por ligado al IDRAC-interfacoj de DELL-maŝinoj:
fonto: www.habr.com