Kontenè Docker pou jere sèvè HP atravè ILO

Ou ka pwobableman ap mande - poukisa Docker egziste isit la? Ki pwoblèm ki genyen lè w konekte sou koòdone entènèt OIT la epi mete sèvè w la jan sa nesesè?
Se sa mwen te panse lè yo te ban mwen yon koup nan ansyen serveurs ki pa nesesè ke mwen te bezwen reenstale (sa ki rele reprovision). Sèvè a li menm sitiye lòt bò dlo, sèl bagay ki disponib se koòdone entènèt la. Oke, kòmsadwa, mwen te oblije ale nan Virtual Console nan kouri kèk kòmandman. Se la li te kòmanse.
Kòm ou konnen, Java anjeneral yo itilize pou divès kalite konsola vityèl, kit nan HP oswa Dell. Omwen se konsa li te konn ye (ak sistèm yo fin vye granmoun). Men, Firefox ak Chrome te sispann sipòte applets sa yo depi lontan, epi nouvo IcedTea a pa travay ak sistèm sa yo. Se poutèt sa, plizyè opsyon parèt:

1. Kòmanse konstwi yon zou nan navigatè ak vèsyon Java sou machin ou an, opsyon sa a pa t nesesè ankò. Pa gen okenn dezi nan betiz sistèm nan pou dedomajman pou yon koup la kòmandman.
2. Lanse yon bagay byen fin vye granmoun sou machin nan vityèl (li te tounen soti eksperimantal ke ou bezwen Java 6) ak konfigirasyon tout sa ou bezwen atravè li.
3. Menm jan ak pwen 2, sèlman nan yon veso, depi plizyè kòlèg te rankontre menm pwoblèm ak li pi fasil pou transfere yo yon lyen nan yon veso sou Dockerhub pase yon imaj machin vityèl, ak tout modpas yo, elatriye.
(An reyalite, mwen te sèlman rive nan pwen 3 apre mwen te fè pwen 2)
Nou pral fè pwen 3 jodi a.

Mwen te enspire sitou pa de pwojè:
1. docker-baseimage-gui
2. docker-firefox-java
Fondamantalman premye pwojè a docker-baseimage-gui deja gen sèvis piblik ak konfigirasyon pou kouri aplikasyon pou Desktop nan Docker. Tipikman ou bezwen defini varyab estanda ak aplikasyon w lan pral aksesib atravè navigatè (websocket) oswa VNC. Nan ka nou an, nou pral lanse atravè Firefox ak VNC; li pa t travay atravè websocket.
Premyèman, ann enstale pakè ki nesesè yo - Java 6 ak 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

Koulye a, tout sa ou dwe fè se ale nan paj koòdone OIT la epi antre non itilizatè ak modpas ou. Lanse Firefox nan autostart:

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

Varyab anviwònman HILO_HOST la gen adrès entènèt koòdone ILO nou an, pa egzanp myhp.example.com
Pou otomatize koneksyon an, ann ajoute otorizasyon. Konekte nan ILO fèt ak yon demann POST regilye, kòm rezilta ou resevwa yon JSON session_key, ki answit ou pase nan yon demann GET:
Ann kalkile session_key via curl si yo defini varyab anviwònman HILO_USER ak HILO_PASS:

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

Yon fwa nou te anrejistre session_key la nan Docker, nou ka kouri VNC:

exec x11vnc -forever -create

Koulye a, nou tou senpleman konekte via VNC nan pò 5900 (oswa nenpòt lòt nan chwa ou) sou localhost epi ale nan konsole vityèl la.
Tout kòd se nan depo a docker-ilo-client.
Kòmandman konplè pou konekte ak OIT:

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

kote ADDRESS_OF_YOUR_HOST se non lame ILO, SOME_USERNAME se login e, an konsekans, SOME_PASSWORD modpas pou ILO.
Apre sa, tou senpleman lanse nenpòt kliyan VNC nan adrès la: vnc://localhost:5900
Ajoute ak demann rale yo, nan kou, akeyi.

Yon pwojè menm jan an egziste pou konekte ak koòdone IDRAC nan machin DELL: docker-idrac6.

Sous: www.habr.com

Add nouvo kòmantè