Docker konteiner HP serverite haldamiseks lÀbi ILO

Te vĂ”id ehk kĂŒsida, mis kasu on Dockerist? Miks mitte logida lihtsalt ILO veebiliidesele ja seadistada oma server nii nagu vaja?
Nii ma arvasin, kui mulle anti paar vananenud serverit, mida pidin uuesti paigaldama (ehk reprovision). Serverid ise on ookeani taga, ainus, mis on saadaval, on veebiliides. Peale selle pidin ma minema Virtual Console'i, et tÀita mÔned kÀsud. Siit see kÔik algas.
Kuidas teada, erinevate virtuaalsete konsoolide jaoks kasutatakse tavaliselt Java't, nii HP-l kui ka Dellil. Igatahes varem oli see kindlasti nii (ja sĂŒsteemid on tĂ”eliselt vanad). Kuid Firefox ja Chrome on juba ammu lĂ”petanud nende appletide toe, ja uus IcedTea ei tööta nende sĂŒsteemidega. Seega ilmus vĂ€lja mitu varianti:

1. Alustada oma masina peale erinevate brauserite ja Java versioonide konstruktsiooniga, see variant langes kohe vĂ€lja. Mul pole mingit soovi sĂŒsteemi ĂŒle piinata paariks kĂ€suks.
2. KÀivitada virtuaalmasinas midagi piisavalt vana (katseliselt selgus, et vajalik on Java 6) ja seadistada kÔik vajalik selle kaudu.
3. Sama, mis punktis 2, ainult konteineris, kuna sama probleemiga seisavad silmitsi mitmed kolleegid ja on palju lihtsam jagada neile linki konteinerile dockerhubis, kui virtuaalmasina pilti, koos kÔikide paroolidega jne.
(Tegelikult jÔudsin punktisse 3 alles pÀrast seda, kui olin punktis 2 tegutsenud.)
Punkt 3 teeme tÀna.

Olen peamiselt inspireeritud kahest projektist:
1. docker-baseimage-gui
2. docker-firefox-java
Esimene projekt docker-baseimage-gui sisaldab juba utiliite ja konfiguratsioone, et kÀivitada lauaarvuti rakendusi Dockeris. Tavaliselt peate mÀÀrama standardmuutujad ja teie rakendus on saadaval brauseri (websocket) vÔi VNC kaudu. Meie puhul kÀivitame me selle Firefoxi ja VNC kaudu, websocketiga ei Ônnestunud.
Esiteks paigaldame vajalikud paketid — Java 6 ja 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

NĂŒĂŒd tuleb lihtsalt minna ILO veebiliidese lehele ja sisestada oma sisselogimisnimi ja parool. KĂ€ivitame Firefoxi automaatstarti:

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

Keskkonnamuutuja HILO_HOST sisaldab meie ILO veebiaadressi, nÀiteks myhp.example.com
Sisselogimise automatiseerimiseks lisame autentimise. ILO-sse sisselogimine toimub tavalise POST pÀringuga, mille tulemusena saad JSON session_key, mille siis edastad GET pÀringus:
Arvutame session_key curl'i kaudu, kui keskkonnamuutujad HILO_USER ja HILO_PASS on mÀÀratud:

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

PÀrast seda, kui oleme session_key'i Dockeris salvestanud, saame kÀivitada VNC:

exec x11vnc -forever -create

NĂŒĂŒd lihtsalt ĂŒhendame VNC kaudu pordile 5900 (vĂ”i mĂ”nele teisele vastavalt teie valikule) localhostis ja sisse virtualisse konsolisse.
KÔik koodid asuvad hoidlas docker-ilo-client.
TĂ€ielik kĂ€sk ILO-le ĂŒhendamiseks:

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

kus ADDRESS_OF_YOUR_HOST on ILO hostinimi, SOME_USERNAME — sisselogimine ja vastavalt SOME_PASSWORD on ILO parool.
PÀrast seda kÀivitate lihtsalt mis tahes VNC kliendi aadressil: vnc://localhost:5900
TÀiendused ja tÔmbepÀringud on loomulikult teretulnud.

Sarnane projekt eksisteerib DELL masinate IDRAC liideste ĂŒhendamiseks: docker-idrac6.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster