Docker-houer vir die bestuur van HP-bedieners via ILO

Jy wonder dalk - hoekom bestaan ​​Docker hier? Wat is die probleem om by die ILO-webkoppelvlak aan te meld en jou bediener op te stel soos nodig?
Dit is wat ek gedink het toe hulle vir my 'n paar ou onnodige bedieners gegee het wat ek moes herinstalleer (wat hervoorsiening genoem word). Die bediener self is oorsee geleë, die enigste ding wat beskikbaar is, is die webkoppelvlak. Wel, dienooreenkomstig moes ek na die virtuele konsole gaan om 'n paar opdragte uit te voer. Dis waar dit begin het.
Soos u weet, word Java gewoonlik vir verskillende soorte virtuele konsoles gebruik, hetsy in HP of Dell. Dit is ten minste hoe dit was (en die stelsels is baie oud). Maar Firefox en Chrome het lank gelede opgehou om hierdie toepassings te ondersteun, en die nuwe IcedTea werk nie met hierdie stelsels nie. Daarom het verskeie opsies na vore gekom:

1. Begin om 'n dieretuin te bou vanaf blaaiers en Java-weergawes op jou masjien, hierdie opsie was nie meer nodig nie. Daar is geen begeerte om die stelsel te bespot ter wille van 'n paar opdragte nie.
2. Begin iets redelik oud op die virtuele masjien (dit het eksperimenteel geblyk dat jy Java 6 nodig het) en konfigureer alles wat jy nodig het daardeur.
3. Dieselfde as punt 2, net in 'n houer, aangesien verskeie kollegas dieselfde probleem ondervind het en dit baie makliker is om vir hulle 'n skakel na 'n houer op Dockerhub oor te dra as 'n virtuele masjienbeeld, met al die wagwoorde, ens.
(Trouens, ek het eers by punt 3 gekom nadat ek punt 2 gedoen het)
Ons sal vandag punt 3 doen.

Ek is hoofsaaklik deur twee projekte geïnspireer:
1. docker-baseimage-gui
2. docker-firefox-java
Basies die eerste projek docker-baseimage-gui bevat reeds nutsprogramme en konfigurasies om lessenaartoepassings in Docker te laat loop. Tipies moet jy standaard veranderlikes definieer en jou toepassing sal toeganklik wees via blaaier (websocket) of VNC. In ons geval sal ons via Firefox en VNC begin; dit het nie via websocket gewerk nie.
Kom ons installeer eers die nodige pakkette - Java 6 en 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

Al wat jy nou hoef te doen is om na die ILO-koppelvlakbladsy te gaan en jou gebruikersnaam en wagwoord in te voer. Begin Firefox in outostart:

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

Die HILO_HOST omgewingsveranderlike bevat byvoorbeeld die webadres van ons ILO-koppelvlak myhp.example.com
Om die aanmelding te outomatiseer, kom ons voeg magtiging by. Aanmelding by ILO vind plaas met 'n gereelde POST-versoek, as gevolg waarvan jy 'n JSON session_key ontvang, wat jy dan in 'n GET-versoek deurgee:
Kom ons bereken session_key via curl as die HILO_USER en HILO_PASS omgewingsveranderlikes gedefinieer is:

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

Sodra ons die session_key in docker aangeteken het, kan ons VNC laat loop:

exec x11vnc -forever -create

Nou koppel ons eenvoudig via VNC aan poort 5900 (of enige ander van jou keuse) op localhost en gaan na die virtuele konsole.
Alle kode is in die bewaarplek docker-ilo-kliënt.
Volledige opdrag om aan ILO te koppel:

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

waar ADDRESS_OF_YOUR_HOST die ILO-gasheernaam is, SOME_USERNAME die aanmelding is en, dienooreenkomstig, SOME_PASSWORD die wagwoord vir ILO.
Daarna, begin eenvoudig enige VNC-kliënt na die adres: vnc://localhost:5900
Byvoegings en trekversoeke is natuurlik welkom.

'n Soortgelyke projek bestaan ​​om aan IDRAC-koppelvlakke van DELL-masjiene te koppel: docker-idrac6.

Bron: will.com

Voeg 'n opmerking