ILO bidez HP zerbitzariak kudeatzeko Docker edukiontzia

Agian galdetzen ari zara: zergatik existitzen da Docker hemen? Zein da ILOren web interfazean saioa hasteko eta zure zerbitzaria behar bezala konfiguratzeko arazoa?
Horixe pentsatu nuen berriro instalatu behar nituen pare bat alferrikako zerbitzari zahar oparitu zizkidatenean (birprovision deitzen dena). Zerbitzaria bera atzerrian dago, eskuragarri dagoen gauza bakarra web interfazea da. Tira, horren arabera, Kontsola Birtualera joan behar izan nuen komando batzuk exekutatzeko. Hor hasi zen.
Dakizuenez, Java normalean hainbat kontsola birtualetarako erabiltzen da, HP edo Dell-en. Hala izaten zen behintzat (eta sistemak oso zaharrak dira). Baina Firefox eta Chrome-k duela denbora asko utzi zioten applet hauek onartzen, eta IcedTea berriak ez du sistema hauekin funtzionatzen. Horregatik, hainbat aukera sortu ziren:

1. Hasi zoo bat eraikitzen arakatzaileetatik eta Java bertsioetatik zure makinan, aukera hau jada ez zen beharrezkoa. Ez dago sistemari iseka egiteko gogorik agindu pare batengatik.
2. Abiarazi nahiko zaharra den zerbait makina birtualean (esperimentalki Java 6 behar duzula ikusi zen) eta konfiguratu horren bidez behar duzun guztia.
3. 2. puntuaren berdina, edukiontzi batean bakarrik, hainbat lankidek arazo bera topatu baitute eta askoz errazagoa baita Dockerhub-eko edukiontzi batera esteka transferitzea makina birtualeko irudi bat baino, pasahitz guztiekin, etab.
(Izan ere, 3. puntua egin ondoren bakarrik iritsi nintzen 2. puntura)
3. puntua egingo dugu gaur.

Bi proiektutan inspiratu nintzen batez ere:
1. docker-baseimage-gui
2. docker-firefox-java
Funtsean, lehenengo proiektua docker-baseimage-gui dagoeneko Docker-en mahaigaineko aplikazioak exekutatzeko utilitateak eta konfigurazioak ditu. Normalean aldagai estandarrak definitu behar dituzu eta zure aplikazioa arakatzailearen (websocket) edo VNCren bidez eskuragarri egongo da. Gure kasuan, Firefox eta VNC bidez abiaraziko dugu; ez zuen websocket bidez funtzionatu.
Lehenik eta behin, instala ditzagun beharrezko paketeak - Java 6 eta 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

Orain besterik ez duzu egin behar ILO interfazearen orrialdera joan eta zure erabiltzaile-izena eta pasahitza sartu. Abiarazi Firefox abiarazte automatikoan:

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

HILO_HOST ingurune-aldagaiak gure ILO interfazearen web helbidea dauka, adibidez myhp.example.com
Saioa automatizatzeko, gehi dezagun baimena. ILOn saioa hastea POST eskaera arrunt batekin gertatzen da, eta horren ondorioz JSON session_key bat jasotzen duzu, eta GET eskaera batean pasatzen duzuna:
Kalkula dezagun session_key curl bidez HILO_USER eta HILO_PASS ingurune-aldagaiak definituta badaude:

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

Docker-en session_key grabatu ondoren, VNC abiarazi dezakegu:

exec x11vnc -forever -create

Orain VNC bidez konektatu besterik ez dugu 5900 atakara (edo nahi duzun beste edozein) localhost-en eta kontsola birtualera joango gara.
Kode guztia biltegian dago docker-ilo-bezeroa.
ILOra konektatzeko komando osoa:

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

non ADDRESS_OF_YOUR_HOST ILO ostalariaren izena den, SOME_USERNAME saio-hasiera da eta, horren arabera, SOME_PASSWORD ILOren pasahitza.
Horren ondoren, abiarazi edozein VNC bezero helbidera: vnc://localhost:5900
Gehiketak eta tira eskaerak, noski, ongi etorriak dira.

DELL makinen IDRAC interfazeetara konektatzeko antzeko proiektu bat dago: docker-idrac6.

Iturria: www.habr.com

Gehitu iruzkin berria