Container Docker per a gestione di i servitori HP via ILO

Probabilmente vi chiederete - perchè Docker esiste quì? Chì ci hè u prublema cù l'accessu à l'interfaccia web di l'ILO è a stallazione di u vostru servitore cum'è necessariu?
Hè ciò chì aghju pensatu quandu m'anu datu un coppiu di vechji servitori innecessarii chì avia bisognu di reinstallà (ciò chì hè chjamatu riprovisione). U servitore stessu hè situatu à l'oltremare, l'unica cosa dispunibule hè l'interfaccia web. Ebbè, dunque, aghju avutu à andà à a Console Virtuale per eseguisce alcuni cumandamenti. Hè quì chì hà principiatu.
Comu sapete, Java hè generalmente utilizatu per vari tipi di cunsole virtuale, sia in HP o Dell. Almenu hè cusì (è i sistemi sò assai vechji). Ma Firefox è Chrome anu cessatu di sustene questi applets assai tempu fà, è u novu IcedTea ùn funziona micca cù questi sistemi. Per quessa, emergenu parechje opzioni:

1. Cumincià à custruisce un zoo da i navigatori è versioni Java in a vostra macchina, sta opzione ùn era più necessariu. Ùn ci hè micca vuluntà di burla di u sistema per un paru di cumandamenti.
2. Lanciate una cosa abbastanza vechja nantu à a macchina virtuale (hè risultatu sperimentalmente chì avete bisognu di Java 6) è cunfigurà tuttu ciò chì avete bisognu à traversu.
3. U listessu cum'è u puntu 2, solu in un cuntinuu, postu chì parechji culleghi anu scontru u stessu prublema è hè assai più faciule per trasfirià un ligame à un cuntinuu nantu à Dockerhub chì una maghjina di macchina virtuale, cù tutte e password, etc.
(In fattu, aghju ghjuntu solu à u puntu 3 dopu avè fattu u puntu 2)
Facemu u puntu 3 oghje.

Sò stata inspirata principalmente da dui prughjetti:
1. docker-baseimage-gui
2. docker-firefox-java
In fondu u primu prughjettu docker-baseimage-gui cuntene già utilità è cunfigurazioni per eseguisce applicazioni desktop in Docker. Di genere, avete bisognu di definisce variabili standard è a vostra applicazione serà accessibile via navigatore (websocket) o VNC. In u nostru casu, lanceremu via Firefox è VNC; ùn hà micca travagliatu via websocket.
Prima, installemu i pacchetti necessarii - Java 6 è 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

Avà tuttu ciò chì avete da fà hè di andà à a pagina di l'interfaccia di l'ILO è inserisce u vostru nome d'utilizatore è password. Lanciate Firefox in autostart:

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

A variabile d'ambiente HILO_HOST cuntene l'indirizzu web di a nostra interfaccia ILO, per esempiu myhp.example.com
Per automatizà u login, aghjustemu l'autorizazione. L'accessu à l'ILO si faci cù una dumanda POST regulare, per via di quale riceve una session_key JSON, chì poi trasmette in una dumanda GET:
Calculemu session_key via curl se e variabili d'ambiente HILO_USER è HILO_PASS sò definite:

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

Una volta chì avemu registratu a session_key in docker, pudemu lancià VNC:

exec x11vnc -forever -create

Avà simpricimenti cunnette via VNC à u portu 5900 (o qualsiasi altru di a vostra scelta) in u locale host è andemu à a cunsola virtuale.
Tuttu u codice hè in u repository docker-ilo-client.
Cumandamentu cumpletu per cunnette à l'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

induve ADDRESS_OF_YOUR_HOST hè u nome d'ospitu ILO, SOME_USERNAME hè u login è, per quessa, SOME_PASSWORD a password per ILO.
Dopu quì, simpricimenti lanciari ogni cliente VNC à l'indirizzu: vnc://localhost:5900
L'addizioni è e richieste di pull sò, sicuru, benvenute.

Un prughjettu simili esiste per cunnette à l'interfacce IDRAC di e macchine DELL: docker-idrac6.

Source: www.habr.com

Add a comment