Docker container amin'ny fitantanana ny mpizara HP amin'ny alàlan'ny ILO

Mety hanontany tena ianao - maninona no misy Docker eto? Inona no olana amin'ny fidirana ao amin'ny tranonkalan'ny ILO sy ny fametrahana ny mpizara raha ilaina?
Izany no noeritreretiko rehefa nomeny mpizara roa efa tsy ilaina aho ka mila apetraka indray (izay atao hoe reprovision). Ny mpizara mihitsy dia any ampitan-dranomasina, ny hany azo alaina dia ny interface web. Eny ary, araka izany, dia tsy maintsy nankany amin'ny Virtual Console aho mba handefa baiko sasany. Teo no nanomboka.
Araka ny fantatrao, Java dia matetika ampiasaina amin'ny karazana console virtoaly isan-karazany, na amin'ny HP na Dell. Farafaharatsiny dia toy izany ny taloha (ary efa antitra be ny rafitra). Saingy efa ela ny Firefox sy Chrome dia nijanona tsy nanohana ireo applets ireo, ary ny IcedTea vaovao dia tsy mandeha amin'ireo rafitra ireo. Noho izany dia nisy safidy maromaro nipoitra:

1. Atombohy ny fananganana toeram-pijerem-biby avy amin'ny navigateur sy ny dikan-teny Java amin'ny milinanao, tsy nilaina intsony io safidy io. Tsy misy faniriana haneso ny rafitra noho ny baiko roa.
2. Mandrosoa zavatra efa antitra amin'ny milina virtoaly (hita amin'ny fanandramana fa mila Java 6 ianao) ary amboary ny zavatra rehetra ilainao amin'ny alalan'izany.
3. Mitovy amin'ny teboka 2, ao anaty container ihany, satria ny mpiara-miasa maromaro no nisedra olana mitovy ary mora kokoa ny mamindra azy ireo rohy mankany amin'ny kaontenera ao amin'ny Dockerhub noho ny sarin'ny milina virtoaly, miaraka amin'ny tenimiafina rehetra, sns.
(Raha ny marina dia tonga teo amin'ny teboka 3 aho rehefa avy nanao teboka 2)
Teboka 3 no hataontsika anio.

Tetik'asa roa no tena nanosika ahy:
1. docker-baseimage-gui
2. docker-firefox-java
Amin'ny ankapobeny ny tetikasa voalohany docker-baseimage-gui efa misy kojakoja sy fanamboarana ho an'ny fampiharana desktop ao amin'ny Docker. Amin'ny ankapobeny dia mila mamaritra ny fari-pahaizan'ny fenitra ianao ary azo idirana amin'ny alàlan'ny navigateur (websocket) na VNC ny fampiharanao. Amin'ny tranga misy anay dia hanomboka amin'ny Firefox sy VNC izahay; tsy nandeha tamin'ny alàlan'ny websocket izany.
Voalohany, andao hametraka ny fonosana ilaina - Java 6 sy 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

Ankehitriny ny hany tsy maintsy ataonao dia mandehana any amin'ny pejin'ny ILO ary ampidiro ny anaranao sy ny tenimiafinao. Sokafy ny Firefox amin'ny autostart:

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

Ny faribolan'ny tontolo iainana HILO_HOST dia ahitana ny adiresin'ny tranonkalan'ny ILO, ohatra myhp.example.com
Raha te hanao automatique ny fidirana dia andao asiana fanomezan-dàlana. Ny fidirana amin'ny ILO dia mitranga miaraka amin'ny fangatahana POST mahazatra, vokatr'izany dia mahazo JSON session_key ianao, izay ampidirinao amin'ny fangatahana GET:
Andao kajy session_key amin'ny alalan'ny curl raha voafaritra ny fari-piainan'ny HILO_USER sy HILO_PASS:

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

Rehefa avy nandrakitra ny session_key ao amin'ny docker izahay dia afaka manomboka VNC:

exec x11vnc -forever -create

Ankehitriny dia mifandray fotsiny amin'ny alalan'ny VNC mankany amin'ny port 5900 (na izay tianao hafa) amin'ny localhost izahay ary mandehana any amin'ny console virtoaly.
Ny code rehetra dia ao amin'ny tahiry docker-ilo-client.
Didy feno hifandraisana amin'ny 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

izay ADDRESS_OF_YOUR_HOST no anaran'ny mpampiantrano ILO, SOME_USERNAME no fidirana ary, araka izany, SOME_PASSWORD ny tenimiafina ho an'ny ILO.
Aorian'izay, atombohy fotsiny izay mpanjifa VNC mankany amin'ny adiresy: vnc://localhost:5900
Ny fanampim-panampiana sy ny fangatahana fisarihana dia mazava ho azy fa raisina.

Misy tetikasa mitovy amin'izany amin'ny fampifandraisana amin'ny fifandraisana IDRAC amin'ny milina DELL: docker-idrac6.

Source: www.habr.com

Add a comment