Weelka Docker ee lagu maamulayo server-yada HP iyada oo loo sii marayo ILO

Waxaa laga yaabaa inaad la yaabban tahay - muxuu Docker halkan uga jiraa? Waa maxay dhibka ka jira gelitaanka interneedka shabakadda ILO oo aad dejiso serverkaaga hadba sida loogu baahdo?
Taasi waa waxa aan u maleeyay markii ay i siiyeen dhowr server oo aan loo baahnayn oo aan u baahanahay in aan dib u rakibo (waxa loo yaqaan reprovision). Server-ku laftiisu waxa uu ku yaalaa dibadda, waxa kaliya ee la heli karaa waa interface-ka webka. Hagaag, sidaas darteed, waa inaan aado Virtual Console si aan u socodsiiyo amarada qaar. Halkaas ayay ka bilaabatay.
Sidaad ogtahay, Java waxaa badanaa loo isticmaalaa noocyo kala duwan oo konsoleyaal dalwad ah, ha ahaato HP ama Dell. Ugu yaraan waa sida ay ahaan jirtay (nidaamyaduna aad bay u duqoobeen). Laakiin Firefox iyo Chrome waxay joojiyeen taageeridda tufaaxyadan wakhti dheer ka hor, iyo IcedTea-ga cusubi kuma shaqeeyo nidaamyadan. Sidaa darteed, dhawr doorasho ayaa soo baxay:

1. Ka bilow inaad ku dhisto beerta xayawaanka browser-yada iyo noocyada Java ee mashiinkaaga, doorashadan looma baahnayn. Ma jirto rabitaan ah in lagu majaajilo nidaamka dhowr amar aawadood.
2. Ku bilow wax duug ah mashiinka farsamada (waxa ay si tijaabo ah u soo baxday in aad Java 6 u baahan tahay) oo ku habbee wax kasta oo aad u baahan tahay.
3. La mid ah barta 2, kaliya weel, maadaama dhowr asxaab ay la kulmeen dhibaato isku mid ah oo aad bay u fududahay in lagu wareejiyo isku xirka weelka Dockerhub marka loo eego sawirka mashiinka farsamada, oo leh dhammaan sirta, iwm.
(Xaqiiqdii, kaliya waxaan helay dhibicda 3 kadib markii aan sameeyay dhibic 2)
Waxaan sameyn doonaa qodobka 3 maanta.

Waxaa igu dhiirigeliyay inta badan laba mashruuc:
1. docker-baseimage-gui
2. docker-firefox-java
Asal ahaan mashruuca ugu horreeya docker-baseimage-gui Horay waxaa ugu jiray utility iyo habaynta loogu talagalay socodsiinta codsiyada desktop-ka ee Docker. Caadi ahaan waxaad u baahan tahay inaad qeexdo doorsoomayaasha caadiga ah codsigaagana waxaa laga heli karaa browserka (websocket) ama VNC. Xaaladeena, waxaan ku bilaabi doonaa Firefox iyo VNC; kuma aysan shaqeynin websocket.
Marka hore, aan rakibno xirmooyinka lagama maarmaanka ah - Java 6 iyo 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

Hadda waxa kaliya oo ay tahay inaad sameyso waa inaad tagtaa bogga ILO interface oo geli magacaaga isticmaale iyo eraygaaga sirta ah. Ku bilow Firefox autostart:

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

Doorsoomiyaha deegaanka HILO_HOST wuxuu ka kooban yahay ciwaanka shabakada ILO interface-kayada, tusaale ahaan myhp.example.com
Si otomaatig looga dhigo gelitaanka, aan ku darno oggolaanshaha. Soo gal ILO waxay ku dhacdaa codsi POST oo joogto ah, natiijaduna waxay tahay inaad hesho fadhiga_key JSON, oo aad markaas ku gudbiso codsi GET:
Aynu ku xisaabino session_key dhexda curl haddii HILO_USER iyo HILO_PASS doorsoomayaasha deegaanka la qeexay:

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

Marka aan ku duubno session_key gudaha docker, waxaan bilaabi karnaa VNC:

exec x11vnc -forever -create

Hadda waxaan si fudud ugu xidhnay VNC ilaa dekedda 5900 (ama mid kasta oo kale oo aad dooratay) localhost oo aad tagtaa konsole dalwaddii.
Dhammaan koodku waxa uu yaalaa kaydka docker-ilo-macmiil.
Amarka buuxa ee lagu xiri karo 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

halka ADDRESS_OF_YOUR_HOST uu yahay magaca martida loo yahay ILO, SAME_USERNAME waa soo galida iyo, si waafaqsan, SAME_PASSWORD erayga sirta ah ee ILO.
Taas ka dib, si fudud u billow macmiilka VNC ciwaanka: vnc://localhost:5900
Codsiyada ku-darka iyo jiidista, dabcan, waa la soo dhawaynayaa.

Mashruuc la mid ah ayaa u jira isku xirka IDRAC ee mishiinnada DELL: docker-idrac6.

Source: www.habr.com

Add a comment