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.
2.
In fondu u primu prughjettu
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
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
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:
Source: www.habr.com