Dockeri konteiner HP serverite haldamiseks ILO kaudu

Võib-olla mõtlete – miks Docker siin eksisteerib? Mis probleem on ILO veebiliidesesse sisselogimisel ja serveri seadistamisel vastavalt vajadusele?
Seda ma mõtlesin, kui nad andsid mulle paar vana mittevajalikku serverit, mille pidin uuesti installima (seda nimetatakse taaspakkumiseks). Server ise asub välismaal, ainus, mis saadaval on, on veebiliides. Noh, vastavalt sellele pidin mõne käsu käivitamiseks minema virtuaalkonsooli. Sealt see alguse saigi.
Nagu teate, kasutatakse Java tavaliselt mitmesuguste virtuaalsete konsoolide jaoks, olgu see siis HP või Delli puhul. Vähemalt nii see vanasti oli (ja süsteemid on väga vanad). Kuid Firefox ja Chrome lõpetasid nende aplettide toetamise juba ammu ning uus IcedTea nende süsteemidega ei tööta. Seetõttu tekkis mitu võimalust:

1. Hakka loomaaeda oma masinas brauserite ja Java versioonide järgi ehitama, seda võimalust enam vaja ei läinud. Pole soovi paari käsu pärast süsteemi mõnitada.
2. Käivitage virtuaalmasinas midagi üsna vana (eksperimentaalselt selgus, et vajate Java 6) ja seadistage kõik vajalik selle kaudu.
3. Sama, mis punktis 2, ainult konteineris, kuna mitu kolleegi puutusid kokku sama probleemiga ja neile on palju lihtsam Dockerhubis asuvasse konteinerisse linki edastada kui virtuaalmasina kujutist, koos kõigi paroolidega jne.
(Tegelikult jõudsin punkti 3 juurde alles pärast punkti 2 tegemist)
Teeme täna punkti 3.

Mind inspireerisid peamiselt kaks projekti:
1. docker-baseimage-gui
2. docker-firefox-java
Põhimõtteliselt esimene projekt docker-baseimage-gui sisaldab juba utiliite ja konfiguratsioone Dockeris töölauarakenduste käitamiseks. Tavaliselt peate määratlema standardmuutujad ja teie rakendus on juurdepääsetav brauseri (veebipesa) või VNC kaudu. Meie puhul käivitame Firefoxi ja VNC kaudu, veebipesa kaudu see ei töötanud.
Esmalt paigaldame vajalikud paketid - Java 6 ja 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

Nüüd pole vaja teha muud, kui minna ILO liidese lehele ja sisestada oma kasutajanimi ja parool. Käivitage Firefox automaatkäivitusega:

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

Keskkonnamuutuja HILO_HOST sisaldab näiteks meie ILO liidese veebiaadressi myhp.example.com
Sisselogimise automatiseerimiseks lisame autoriseerimise. ILO-sse sisselogimine toimub tavalise POST-i päringuga, mille tulemusel saate JSON-i session_key, mille edastate seejärel GET-päringus:
Kui keskkonnamuutujad HILO_USER ja HILO_PASS on määratletud, arvutame sessiooni_võtme curl kaudu:

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

Kui oleme dockeris salvestanud sessiooni_võtme, saame käivitada VNC:

exec x11vnc -forever -create

Nüüd ühendame lihtsalt VNC kaudu localhosti pordiga 5900 (või mõne muu teie valitud) ja läheme virtuaalsesse konsooli.
Kogu kood on hoidlas dokk-ilo-klient.
Täielik käsk ILO-ga ühenduse loomiseks:

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

kus ADDRESS_OF_YOUR_HOST on ILO hostinimi, SOME_USERNAME on sisselogimine ja vastavalt SOME_PASSWORD ILO parool.
Pärast seda käivitage lihtsalt mis tahes VNC klient järgmisele aadressile: vnc://localhost:5900
Täiendused ja tõmbamissoovid on loomulikult teretulnud.

Sarnane projekt on olemas DELL-i masinate IDRAC-liidestega ühendamiseks: docker-idrac6.

Allikas: www.habr.com

Lisa kommentaar