Labda unajiuliza - kwa nini Docker ipo hapa? Kuna tatizo gani la kuingia kwenye kiolesura cha wavuti cha ILO na kusanidi seva yako inavyohitajika?
Ndivyo nilivyofikiria waliponipa seva kadhaa za zamani zisizo za lazima ambazo nilihitaji kusakinisha tena (kinachoitwa urekebishaji). Seva yenyewe iko nje ya nchi, kitu pekee kinachopatikana ni kiolesura cha wavuti. Kweli, ipasavyo, ilibidi niende kwa Dashibodi ya Virtual kutekeleza maagizo kadhaa. Hapo ndipo ilipoanzia.
Kama unavyojua, Java kawaida hutumiwa kwa aina anuwai za viboreshaji pepe, iwe katika HP au Dell. Angalau ndivyo ilivyokuwa (na mifumo ni ya zamani sana). Lakini Firefox na Chrome ziliacha kuunga mkono applets hizi muda mrefu uliopita, na IcedTea mpya haifanyi kazi na mifumo hii. Kwa hivyo, chaguzi kadhaa ziliibuka:
1. Anza kuunda bustani ya wanyama kutoka kwa vivinjari na matoleo ya Java kwenye mashine yako, chaguo hili halikuhitajika tena. Hakuna hamu ya kudhihaki mfumo kwa sababu ya amri kadhaa.
2. Zindua kitu cha zamani kabisa kwenye mashine ya kawaida (ilitokea kwa majaribio kwamba unahitaji Java 6) na usanidi kila kitu unachohitaji kupitia hiyo.
3. Sawa na hatua ya 2, tu kwenye chombo, kwa kuwa wenzake kadhaa walikutana na tatizo sawa na ni rahisi zaidi kuwahamisha kiungo kwenye chombo kwenye Dockerhub kuliko picha ya mashine ya virtual, na nywila zote, nk.
(Kwa kweli, nilipata tu alama ya 3 baada ya kutoa alama 2)
Tutafanya point 3 leo.
Nilitiwa moyo hasa na miradi miwili:
1.
2.
Kimsingi mradi wa kwanza
Kwanza, wacha tusakinishe vifurushi muhimu - Java 6 na 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
Sasa unachotakiwa kufanya ni kwenda kwenye ukurasa wa kiolesura cha ILO na kuingiza jina lako la mtumiaji na nenosiri. Zindua Firefox kwa kuanza kiotomatiki:
RUN bash -c 'echo "exec openbox-session &" >> ~/.xinitrc' &&
bash -c 'echo "firefox ${HILO_HOST}">> ~/.xinitrc' &&
bash -c 'chmod 755 ~/.xinitrc'
Tofauti ya mazingira ya HILO_HOST ina anwani ya wavuti ya kiolesura chetu cha ILO, kwa mfano
Ili kuingia kiotomatiki, wacha tuongeze idhini. Kuingia kwenye ILO hutokea kwa ombi la kawaida la POST, matokeo yake unapokea ufunguo wa JSON, ambao unapitisha ombi la GET:
Wacha tuhesabu ufunguo_wa session kupitia curl ikiwa anuwai za mazingira HILO_USER na HILO_PASS zimefafanuliwa:
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
Mara tu tumerekodi session_key kwenye docker, tunaweza kuendesha VNC:
exec x11vnc -forever -create
Sasa tunaunganisha kwa urahisi kupitia VNC hadi port 5900 (au nyingine yoyote ya chaguo lako) kwenye localhost na nenda kwa kiweko pepe.
Nambari zote ziko kwenye hazina
Amri kamili ya kuunganishwa 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
ambapo ADDRESS_OF_YOUR_HOST ni jina la mwenyeji wa ILO, SOME_USERNAME ndiye kuingia na, ipasavyo, SOME_PASSWORD nenosiri la ILO.
Baada ya hayo, zindua mteja wowote wa VNC kwa anwani: vnc://localhost:5900
Maombi ya nyongeza na kuvuta yanakaribishwa.
Mradi kama huo upo wa kuunganisha kwenye miingiliano ya IDRAC ya mashine za DELL:
Chanzo: mapenzi.com