Verjetno se sprašujete, zakaj je tu Docker? Kakšen je problem, da se prijavite v spletni vmesnik ILO in pravilno nastavite svoj strežnik?
Tudi jaz sem tako razmišljal, ko so mi dali nekaj starih nepotrebnih strežnikov, ki sem jih moral ponastaviti (to, kar imenujemo reprovision). Strežniki so za oceanom, edina stvar, ki je dostopna, je spletni vmesnik. In seveda sem moral vstopiti v Virtual Console, da izpolnim nekatere ukaze. Tu se je začelo.
Kot je znano, se za različne vrste virtualnih konzol običajno uporablja Java, tako pri HP-ju kot pri Delli. Vsaj tako je bilo v preteklosti (sistemi so zelo stari). A Firefox in Chrome že dolgo ne podpirata teh appletov, poleg tega novi IcedTea s temi sistemi ne deluje. Zato se je pojavilo več možnosti:
1. Začeti sestavljati živalski vrt brskalnikov in različic Jave na svojem računalniku, ta možnost je takoj odpadla. Niti malo ne želim mučiti sistema zaradi nekaj ukazov.
2. Zagnati na virtualki kaj dovolj starega (iz izkušenj se je izkazalo, da potrebujete Javo 6) in vse potrebno konfigurirati preko njega.
3. Enako kot točka 2, le v posodi, saj so se s to težavo srečali še nekateri kolegi in veliko lažje je deliti povezavo na posodo na dockerhubu, kot sliko virtualke, z vsemi gesli itd.
(Dejansko sem do točke 3 prišel šele potem, ko sem izvedel točko 2.)
Točko 3 bomo izvedli danes.
Navdihoval sem se predvsem z dvema projektoma:
1.
2.
Prvi projekt v osnovi že vsebuje pripomočke in konfiguracije za zagon namiznih aplikacij v dockerju. Običajno morate definirati standardne spremenljivke, in vaša aplikacija bo dostopna preko brskalnika (websocket) ali VNC. V našem primeru bomo zagnali preko Firefox-a in VNC, preko websocket-a ni uspelo.
Najprej namestimo potrebne pakete — Java 6 in 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
Sedaj ostane le, da se prijavimo na stran ILO vmesnika in vpišemo svoje uporabniško ime in geslo. Zaženemo Firefox ob samodejnem zagonu:
ZAGONITE bash -c 'echo "exec openbox-session &" >> ~/ .xinitrc' &&
bash -c 'echo "firefox ${HILO_HOST}" >> ~/ .xinitrc' &&
bash -c 'chmod 755 ~/ .xinitrc'
Spremenljivka okolja HILO_HOST vsebuje spletni naslov našega ILO vmesnika, na primer
Za avtomatizacijo prijave dodajmo avtentikacijo. Prijava v ILO poteka z običajnim POST zahtevkom, po katerem dobite JSON session_key, ki ga nato posredujete v GET zahtevku:
Izračunamo session_key preko curl, ako su definirane varijable okruženja HILO_USER i 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
Nakon što smo zapisali session_key u Dockeru, možemo pokrenuti VNC:
exec x11vnc -forever -create
Sada jednostavno povezujemo putem VNC na port 5900 (ili bilo koji drugi po vašem izboru) na localhost i ulazimo u virtualnu konzolu.
Sav kod nalazi se u repo-u .
Potpuna naredba za povezivanje na 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
gdje je ADDRESS_OF_YOUR_HOST ime ILO hosta, SOME_USERNAME je korisničko ime, a SOME_PASSWORD lozinka za ILO.
Nakon toga jednostavno pokrećete bilo koji VNC klijent na adresi: vnc://localhost:5900
Dopune i pull requesti, naravno, dobrodošli.
Sličan projekt postoji za povezivanje na IDRAC sučelja DELL mašina: .
Izvor: habr.com
