Isikhongozeli seDocker sokulawula iiseva zeHP ngeILO

Usenokuba uyazibuza- kutheni iDocker ikhona apha? Yintoni ingxaki ngokungena kujongano lwewebhu yeILO kwaye umise umncedisi wakho njengoko kufuneka?
Yiloo nto endiyicingayo xa bandinika iiseva ezimbalwa ezindala ezingafunekiyo endizifunayo ukuba ndiphinde ndizifake (oku kubizwa ngokuba kukulungiswa kwakhona). Iseva ngokwayo ibekwe phesheya kolwandle, ekuphela kwento ekhoyo lujongano lwewebhu. Ewe, ngokufanelekileyo, kuye kwafuneka ndiye kwi-Virtual Console ukuqhuba eminye imiyalelo. Kulapho yaqala khona.
Njengoko usazi, iJava iqhele ukusetyenziselwa iindidi ezahlukeneyo zeeconsoles, nokuba kukwiHP okanye kwiDell. Ubuncinci yile ndlela yayihlala ngayo (kwaye iinkqubo zindala kakhulu). Kodwa iFirefox kunye neChrome zayeka ukuxhasa ezi applets kwakudala, kwaye i-IcedTea entsha ayisebenzi ngezi nkqubo. Ke ngoko, iinketho ezininzi ziye zavela:

1. Qalisa ukwakha indawo yokugcina izilwanyana ukusuka kwizikhangeli kunye neenguqulelo zeJava kumatshini wakho, olu khetho lwalungasafuneki. Akukho mnqweno wokuhlekisa inkqubo ngenxa yemiyalelo embalwa.
2. Qalisa into endala kakhulu kumatshini wenyani (kuye kwavela ngokulinga ukuba ufuna iJava 6) kwaye uqwalasele yonke into oyifunayo ngayo.
3. Ngokufana nenqaku 2, kuphela kwisitya, ekubeni oogxa abaninzi badibana nengxaki efanayo kwaye kulula kakhulu ukuhambisa ikhonkco kwisitya kwi-Dockerhub kunomfanekiso womatshini wenyani, kunye nazo zonke iiphasiwedi, njl.
(Enyanisweni, ndifumene inqaku lesi-3 kuphela emva kokuba ndenze inqaku lesi-2)
Siza kwenza inqaku lesi-3 namhlanje.

Ndikhuthazwe kakhulu ziiprojekthi ezimbini:
1. docker-baseimage-gui
2. docker-firefox-java
Ngokusisiseko iprojekthi yokuqala docker-baseimage-gui sele iqulethe izinto eziluncedo kunye nolungelelwaniso losetyenziso lwe desktop kwiDocker. Ngokwesiqhelo kufuneka uchaze iiguquguquko eziqhelekileyo kwaye isicelo sakho siyakufikeleleka ngebrawuza (websocket) okanye VNC. Kwimeko yethu, siya kuqalisa ngeFirefox kunye neVNC; ayizange isebenze nge-websocket.
Okokuqala, masifake iipakethe eziyimfuneko-iJava 6 kunye ne-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

Ngoku konke omawukwenze kukuya kwiphepha lojongano lweILO kwaye ngenisa igama lakho lomsebenzisi kunye negama lokugqitha. Yazisa iFirefox kwi-autostart:

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

I-HILO_HOST imo eguquguqukayo iqulethe idilesi yewebhu yojongano lwethu lweILO, umzekelo myhp.example.com
Ukungena ngokuzenzekelayo, masenze ugunyaziso. Ukungena kwi-ILO kwenzeka ngesicelo esiqhelekileyo se-POST, ngenxa yoko ufumana iseshoni_isitshixo se-JSON, othi usiphumelele kwisicelo se-GET:
Masibale iseshoni_isitshixo nge-curl ukuba i-HILO_USER kunye ne-HILO_PASS iimeko-bume eziguquguqukayo zichaziwe:

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

Nje ukuba sirekhode iseshoni_isitshixo kwi-docker, sinokuqhuba iVNC:

exec x11vnc -forever -create

Ngoku sivele siqhagamshele nge-VNC kwi-port 5900 (okanye nayiphi na enye into oyikhethileyo) kwi-hosthost kwaye uye kwi-console ebonakalayo.
Yonke ikhowudi ikwindawo yokugcina docker-ilo-client.
Umyalelo opheleleyo wokuqhagamshela kwi-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

apho i-ADDRESS_OF_YOUR_HOST iligama lenginginya ye-ILO, SOME_USERNAME ligama lokungena kwaye, ngokufanelekileyo, SOME_PASSWORD igama lokugqitha le-ILO.
Emva koko, vula ngokulula nawuphi na umxhasi weVNC kwidilesi: vnc://localhost:5900
Ukongezwa kunye nezicelo zokutsalwa, ngokuqinisekileyo, zamkelekile.

Iprojekthi efanayo ikhona yokuqhagamshela kwi-IDRAC yojongano koomatshini be-DELL: docker-idrac6.

umthombo: www.habr.com

Yongeza izimvo