Docker eiyan fun ìṣàkóso HP apèsè nipasẹ ILO

O le ṣe iyalẹnu - kilode ti Docker wa nibi? Kini iṣoro pẹlu wíwọlé sinu wiwo wẹẹbu ILO ati ṣeto olupin rẹ bi o ṣe nilo?
Iyẹn ni ohun ti Mo ro nigbati wọn fun mi ni tọkọtaya ti awọn olupin ti ko wulo ti Mo nilo lati tun fi sii (ohun ti a pe ni atunṣe). Olupin funrararẹ wa ni okeokun, ohun kan ṣoṣo ti o wa ni wiwo wẹẹbu. O dara, ni ibamu, Mo ni lati lọ si Foju Console lati ṣiṣẹ diẹ ninu awọn aṣẹ. Ibẹ̀ ni ó ti bẹ̀rẹ̀.
Bi o ṣe mọ, Java jẹ igbagbogbo lo fun ọpọlọpọ iru awọn afaworanhan foju, boya ni HP tabi Dell. O kere ju iyẹn ni bii o ṣe jẹ (ati awọn eto naa ti dagba pupọ). Ṣugbọn Firefox ati Chrome dẹkun atilẹyin awọn applets wọnyi ni igba pipẹ sẹhin, ati IcedTea tuntun ko ṣiṣẹ pẹlu awọn eto wọnyi. Nitorina, awọn aṣayan pupọ wa:

1. Bẹrẹ kọ zoo kan lati awọn aṣawakiri ati awọn ẹya Java lori ẹrọ rẹ, aṣayan yii ko nilo mọ. Ko si ifẹ lati ṣe ẹlẹyà eto naa nitori awọn aṣẹ meji kan.
2. Lọlẹ nkankan oyimbo atijọ lori foju ẹrọ (o wa ni jade experimentally ti o nilo Java 6) ki o si tunto ohun gbogbo ti o nilo nipasẹ o.
3. Kanna bi aaye 2, nikan ninu apo eiyan, nitori ọpọlọpọ awọn ẹlẹgbẹ pade iṣoro kanna ati pe o rọrun pupọ lati gbe wọn ọna asopọ si eiyan kan lori Dockerhub ju aworan ẹrọ foju, pẹlu gbogbo awọn ọrọ igbaniwọle, ati bẹbẹ lọ.
(Ni otitọ, Mo ni aaye 3 nikan lẹhin ti Mo ṣe aaye 2)
A yoo ṣe aaye 3 loni.

Mo ni atilẹyin nipataki nipasẹ awọn iṣẹ akanṣe meji:
1. docker-baseimage-gui
2. docker-Firefox-java
Besikale akọkọ ise agbese docker-baseimage-gui tẹlẹ ni awọn ohun elo ati awọn atunto fun ṣiṣe awọn ohun elo tabili ni Docker. Ni deede o nilo lati ṣalaye awọn oniyipada boṣewa ati pe ohun elo rẹ yoo wa nipasẹ ẹrọ aṣawakiri (websocket) tabi VNC. Ninu ọran wa, a yoo ṣe ifilọlẹ nipasẹ Firefox ati VNC; ko ṣiṣẹ nipasẹ websocket.
Ni akọkọ, jẹ ki a fi awọn idii pataki sii - Java 6 ati 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

Bayi gbogbo ohun ti o ni lati ṣe ni lọ si oju-iwe wiwo ILO ki o tẹ orukọ olumulo ati ọrọ igbaniwọle rẹ sii. Lọlẹ Firefox ni autostart:

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

Oniyipada ayika HILO_HOST ni adirẹsi wẹẹbu ti wiwo ILO wa, fun apẹẹrẹ myhp.example.com
Lati ṣe adaṣe iwọle, jẹ ki a ṣafikun aṣẹ. Wọle si ILO waye pẹlu ibeere POST deede, nitori abajade eyiti o gba bọtini igba JSON kan, eyiti o kọja ni ibeere GET kan:
Jẹ ki a ṣe iṣiro session_key nipasẹ curl ti HILO_USER ati awọn oniyipada ayika HILO_PASS jẹ asọye:

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

Ni kete ti a ba ti ṣe igbasilẹ igba_bọtini ni docker, a le ṣiṣẹ VNC:

exec x11vnc -forever -create

Bayi a kan sopọ nipasẹ VNC si ibudo 5900 (tabi eyikeyi miiran ti o fẹ) lori localhost ki o lọ si console foju.
Gbogbo koodu wa ni ibi ipamọ docker-ilo-onibara.
Aṣẹ ni kikun lati sopọ si 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

nibiti ADDRESS_OF_YOUR_HOST jẹ orukọ agbalejo ILO, SOME_USERNAME ni wiwọle ati, ni ibamu, SAME_PASSWORD ọrọ igbaniwọle fun ILO.
Lẹhin iyẹn, nirọrun ṣe ifilọlẹ eyikeyi alabara VNC si adirẹsi naa: vnc://localhost:5900
Awọn afikun ati awọn ibeere fifa jẹ, dajudaju, kaabọ.

Ise agbese ti o jọra wa fun sisopọ si awọn atọkun IDRAC ti awọn ẹrọ DELL: docker-idrac6.

orisun: www.habr.com

Fi ọrọìwòye kun