Docker nga sudlanan alang sa pagdumala sa mga HP server pinaagi sa ILO

Tingali nahibulong ka - nganong naa dinhi ang Docker? Unsa ang problema sa pag-log in sa ILO web interface ug pag-set up sa imong server kung gikinahanglan?
Mao kana ang akong gihunahuna sa dihang gihatagan nila ako sa usa ka magtiayon nga dili kinahanglan nga mga server nga kinahanglan nako nga i-install pag-usab (gitawag nga reprovision). Ang server mismo nahimutang sa gawas sa nasud, ang bugtong butang nga magamit mao ang web interface. Aw, sumala niana, kinahanglan kong moadto sa Virtual Console aron magpadagan sa pipila ka mga sugo. Didto na nagsugod.
Sama sa imong nahibal-an, ang Java kasagarang gigamit alang sa lainlaing mga klase sa virtual console, bisan sa HP o Dell. Sa labing gamay mao kana kung giunsa kini kaniadto (ug ang mga sistema tigulang na kaayo). Apan ang Firefox ug Chrome mihunong sa pagsuporta niini nga mga applet sa dugay na nga panahon, ug ang bag-ong IcedTea wala magtrabaho uban niini nga mga sistema. Busa, daghang mga kapilian ang mitungha:

1. Sugdi ang pagtukod og zoo gikan sa mga browser ug Java nga bersyon sa imong makina, kini nga opsyon wala na gikinahanglan. Walay tinguha sa pagbugal-bugal sa sistema alang sa usa ka magtiayon nga sa mga sugo.
2. Ilunsad ang usa ka butang nga medyo karaan sa virtual machine (kini nahimo nga eksperimento nga kinahanglan nimo ang Java 6) ug i-configure ang tanan nga imong gikinahanglan pinaagi niini.
3. Parehas sa punto 2, sa usa ka sudlanan lamang, tungod kay daghang mga kauban ang nakasugat sa parehas nga problema ug labi ka dali nga ibalhin sila usa ka link sa usa ka sulud sa Dockerhub kaysa usa ka imahe sa virtual machine, uban ang tanan nga mga password, ug uban pa.
(Sa tinuud, nakuha ra nako ang punto 3 pagkahuman nako ang punto 2)
Atong buhaton ang punto 3 karon.

Nadasig ko sa duha ka proyekto:
1. docker-baseimage-gui
2. docker-firefox-java
Sa panguna ang una nga proyekto docker-baseimage-gui Naglangkob na sa mga utilities ug mga pag-configure alang sa pagpadagan sa mga aplikasyon sa desktop sa Docker. Kasagaran kinahanglan nimo nga ipasabut ang mga sukaranan nga mga variable ug ang imong aplikasyon ma-access pinaagi sa browser (websocket) o VNC. Sa among kaso, maglansad kami pinaagi sa Firefox ug VNC; wala kini molihok pinaagi sa websocket.
Una, atong i-install ang gikinahanglan nga mga pakete - Java 6 ug 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

Karon ang kinahanglan nimong buhaton mao ang pag-adto sa panid sa interface sa ILO ug isulod ang imong username ug password. Ilunsad ang Firefox sa autostart:

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

Ang HILO_HOST environment variable naglangkob sa web address sa among ILO interface, pananglitan myhp.example.com
Aron ma-automate ang pag-login, idugang nato ang pagtugot. Ang pag-login sa ILO mahitabo uban sa usa ka regular nga hangyo sa POST, isip resulta niini makadawat ka ug JSON session_key, nga imong ipasa sa usa ka GET nga hangyo:
Atong kuwentahon ang session_key pinaagi sa curl kung ang HILO_USER ug HILO_PASS nga mga variable sa palibot gihubit:

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

Kung narekord na namo ang session_key sa docker, mahimo namong ilunsad ang VNC:

exec x11vnc -forever -create

Karon nagkonektar lang kami pinaagi sa VNC sa port 5900 (o bisan unsa nga imong gusto) sa localhost ug adto sa virtual console.
Ang tanan nga code naa sa repositoryo docker-ilo-kliyente.
Bug-os nga sugo sa pagkonektar sa 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

diin ang ADDRESS_OF_YOUR_HOST mao ang ILO host name, SOME_USERNAME ang login ug, sumala niana, SOME_PASSWORD ang password para sa ILO.
Pagkahuman niana, ilunsad lang ang bisan unsang kliyente sa VNC sa adres: vnc://localhost:5900
Ang mga pagdugang ug mga hangyo sa pagbitad, siyempre, giabiabi.

Adunay susama nga proyekto alang sa pagkonektar sa mga interface sa IDRAC sa mga makina sa DELL: docker-idrac6.

Source: www.habr.com

Idugang sa usa ka comment