Te vĂ”id ehk kĂŒsida, mis kasu on Dockerist? Miks mitte logida lihtsalt ILO veebiliidesele ja seadistada oma server nii nagu vaja?
Nii ma arvasin, kui mulle anti paar vananenud serverit, mida pidin uuesti paigaldama (ehk reprovision). Serverid ise on ookeani taga, ainus, mis on saadaval, on veebiliides. Peale selle pidin ma minema Virtual Console'i, et tÀita mÔned kÀsud. Siit see kÔik algas.
Kuidas teada, erinevate virtuaalsete konsoolide jaoks kasutatakse tavaliselt Java't, nii HP-l kui ka Dellil. Igatahes varem oli see kindlasti nii (ja sĂŒsteemid on tĂ”eliselt vanad). Kuid Firefox ja Chrome on juba ammu lĂ”petanud nende appletide toe, ja uus IcedTea ei tööta nende sĂŒsteemidega. Seega ilmus vĂ€lja mitu varianti:
1. Alustada oma masina peale erinevate brauserite ja Java versioonide konstruktsiooniga, see variant langes kohe vĂ€lja. Mul pole mingit soovi sĂŒsteemi ĂŒle piinata paariks kĂ€suks.
2. KÀivitada virtuaalmasinas midagi piisavalt vana (katseliselt selgus, et vajalik on Java 6) ja seadistada kÔik vajalik selle kaudu.
3. Sama, mis punktis 2, ainult konteineris, kuna sama probleemiga seisavad silmitsi mitmed kolleegid ja on palju lihtsam jagada neile linki konteinerile dockerhubis, kui virtuaalmasina pilti, koos kÔikide paroolidega jne.
(Tegelikult jÔudsin punktisse 3 alles pÀrast seda, kui olin punktis 2 tegutsenud.)
Punkt 3 teeme tÀna.
Olen peamiselt inspireeritud kahest projektist:
1.
2.
Esimene projekt sisaldab juba utiliite ja konfiguratsioone, et kÀivitada lauaarvuti rakendusi Dockeris. Tavaliselt peate mÀÀrama standardmuutujad ja teie rakendus on saadaval brauseri (websocket) vÔi VNC kaudu. Meie puhul kÀivitame me selle Firefoxi ja VNC kaudu, websocketiga ei Ônnestunud.
Esiteks 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 tuleb lihtsalt minna ILO veebiliidese lehele ja sisestada oma sisselogimisnimi ja parool. KĂ€ivitame Firefoxi automaatstarti:
KĂ€ivita bash -c 'echo "exec openbox-session &" >> ~/.xinitrc' &&
bash -c 'echo "firefox ${HILO_HOST}" >> ~/.xinitrc' &&
bash -c 'chmod 755 ~/.xinitrc'
Keskkonnamuutuja HILO_HOST sisaldab meie ILO veebiaadressi, nÀiteks
Sisselogimise automatiseerimiseks lisame autentimise. ILO-sse sisselogimine toimub tavalise POST pÀringuga, mille tulemusena saad JSON session_key, mille siis edastad GET pÀringus:
Arvutame session_key curl'i kaudu, kui keskkonnamuutujad HILO_USER ja HILO_PASS on mÀÀratud:
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
PÀrast seda, kui oleme session_key'i Dockeris salvestanud, saame kÀivitada VNC:
exec x11vnc -forever -create
NĂŒĂŒd lihtsalt ĂŒhendame VNC kaudu pordile 5900 (vĂ”i mĂ”nele teisele vastavalt teie valikule) localhostis ja sisse virtualisse konsolisse.
KÔik koodid asuvad hoidlas .
TĂ€ielik kĂ€sk ILO-le ĂŒhendamiseks:
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 â sisselogimine ja vastavalt SOME_PASSWORD on ILO parool.
PÀrast seda kÀivitate lihtsalt mis tahes VNC kliendi aadressil: vnc://localhost:5900
TÀiendused ja tÔmbepÀringud on loomulikult teretulnud.
Sarnane projekt eksisteerib DELL masinate IDRAC liideste ĂŒhendamiseks: .
Allikas: habr.com
