Ndoshta mund tĂ« pyesni veten â pĂ«rse nevojitet Docker kĂ«tu? ĂfarĂ« problemi ka pĂ«r tĂ« hyrĂ« nĂ« ndĂ«rfaqen web ILO dhe pĂ«r tĂ« konfiguruar serverin tuaj siç duhet?
Kështu mendoja edhe unë kur më dhanë disa servera të vjetër që nuk më nevojiteshin, të cilët duhej t'i rinstaloja (çka quhet reprovision). Serverët ndodhen në anën tjetër të oqeanit, e vetmja gjë e disponueshme është ndërfaqja web. Dhe, për pasojë, më duhej të hyja në Virtual Console për të kryer disa komanda. Këtu filloi gjithçka.
Siç dihet, për lloje të ndryshme të konsolave virtuale zakonisht përdoret Java, çfarëdo që të jetë HP ose Dell. Në çdo rast, më parë kështu ka qenë (dhe sistemet janë shumë të vjetra). Por Firefox dhe Chrome tashmë kanë ndaluar mbështetje për këto appletë, dhe as IcedTea i ri nuk funksionon me këto sisteme. Prandaj u shfaqën disa mundësi:
1. Të filloja të ndërtoja një zoo të shfletuesve dhe versioneve të Java në makinën time, kjo mundësi u ra menjëherë. Nuk kishte dëshirë të keqtrajtoja sistemin për vetëm disa komanda.
2. Të nisja diçka mjaft të vjetër në një makinë virtuale (sipërmarrjesh është zbuluar se nevojitet Java 6) dhe përmes saj të konfiguroja gjithçka që duheshin.
3. E njëjta gjë si pika 2, vetëm në një konteiner, pasi disa kolegë janë përballur me të njëjtin problem dhe është shumë më lehtë t'u japësh atyre një lidhje për konteinerin në dockerhub, sesa imazhin e makinës virtuale, me të gjitha fjalëkalimet etj.
(Në fakt arrita në pikën 3 vetëm pasi përfundova pikën 2.)
Pika 3 ne do ta realizojmë sot.
I inspirova kryesisht nga dy projekte:
1.
2.
Në thelb, projekti i parë korrigjon mjete dhe konfigurime për të nisur aplikacione desktop në docker. Zakonisht, duhet të përcaktoni variablat standard dhe aplikacioni juaj do të jetë i disponueshëm përmes shfletuesit (websocket) ose VNC. Në rastin tonë, ne do ta nisnim përmes Firefox dhe VNC, përmes websocket nuk iu arrit.
Fillimisht do tĂ« instalojmĂ« paketat e nevojshme â Java 6 dhe 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
Tani mbetet të hyjmë në faqen e ndërfaqes ILO dhe të fusim emrin dhe fjalëkalimin tonë. Nisni Firefox në auto-start:
RUN bash -c 'echo "exec openbox-session &" >> ~/.xinitrc' &&
bash -c 'echo "firefox ${HILO_HOST}" >> ~/.xinitrc' &&
bash -c 'chmod 755 ~/.xinitrc'
Variabla e mjedisit HILO_HOST përmban adresën web të ndërfaqes sonë ILO, për shembull
Për të automatizuar hyrjen, le të shtojmë autorizimin. Hyrja në ILO bëhet me një kërkesë POST normale, nga e cila merrni JSON session_key, që më pas e kaloni në kërkesën GET:
Llogaritëm session_key nëpërmjet curl, nëse janë të përcaktuara variablat e mjedisit HILO_USER dhe 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
Pas kësaj, pasi regjistruam session_key në docker, mund të nisnim VNC:
exec x11vnc -forever -create
Tani thjesht lidhemi përmes VNC në portin 5900 (ose ndonjë tjetër sipas zgjedhjes tuaj) në localhost dhe hyjmë në konsolën virtuale.
I gjithë kodi është në repository .
Komanda e plotë për t'u lidhur me 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
ku ADDRESS_OF_YOUR_HOST Ă«shtĂ« emri i hostit ILO, SOME_USERNAME â emri i pĂ«rdoruesit dhe pĂ«r pasojĂ« SOME_PASSWORD Ă«shtĂ« fjalĂ«kalimi pĂ«r ILO.
Pas kësaj, thjesht nisni çdo klient VNC në adresën: vnc://localhost:5900
Shtesat dhe kërkesat për tërheqje, sigurisht, janë të mirëpritura.
Një projekt i ngjashëm ekziston për lidhjen me ndërfaqet IDRAC të makinave DELL: .
Burimi: habr.com
