ื“ืึธืงืงืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ ืคึฟืึทืจ ืึธื ืคื™ืจื•ื ื’ ื”ืคึผ ืกืขืจื•ื•ืขืจืก ื“ื•ืจืš ื™ืœืึธ

ืื™ืจ ืงืขืŸ ืžื™ืกื˜ืึธืžืข ื–ื™ื™ืŸ ื•ื•ืึทื ื“ืขืจื™ื ื’ - ื•ื•ืึธืก ื“ืึธืงืงืขืจ ืขืงืกื™ืกื˜ื™ืจืŸ ื“ืึธ? ื•ื•ืึธืก ืื™ื– ื“ื™ ืคึผืจืึธื‘ืœืขื ืžื™ื˜ ืœืึธื’ื™ื ื’ ืื™ืŸ ื“ื™ ILO ื•ื•ืขื‘ ืฆื•ื‘ื™ื ื“ ืื•ืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ื™ื™ืŸ ืกืขืจื•ื•ืขืจ ื•ื•ื™ ื“ืืจืฃ?
ื“ืึธืก ืื™ื– ื•ื•ืึธืก ืื™ืš ื’ืขื“ืึทื ืง ื•ื•ืขืŸ ื–ื™ื™ ื’ืขื‘ืŸ ืžื™ืจ ืึท ืคึผืึธืจ ืคื•ืŸ ืึทืœื˜ ื•ืžื ื™ื™ื˜ื™ืง ืกืขืจื•ื•ืขืจืก ื•ื•ืึธืก ืื™ืš ื“ืืจืฃ ืฆื• ืจื™ื™ื ืกื˜ืึทืœ (ื•ื•ืึธืก ืื™ื– ื’ืขืจื•ืคืŸ ืจืขืคึผืจืึธื•ื•ื™ื–ืฉืึทืŸ). ื“ืขืจ ืกืขืจื•ื•ืขืจ ื–ื™ืš ืื™ื– ืœื™ื’ืŸ ืึธื•ื•ืขืจืกืขืึทืก, ื“ืขืจ ื‘ืœื•ื™ื– ื–ืึทืš ื‘ื ื™ืžืฆื ืื™ื– ื“ื™ ื•ื•ืขื‘ ืฆื•ื‘ื™ื ื“. ื ื•, ืึทืงืึธืจื“ื™ื ื’ืœื™, ืื™ืš ื”ืื˜ ืฆื• ื’ื™ื™ืŸ ืฆื• ื“ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ืงืึทื ืกืึธื•ืœ ืฆื• ืœื•ื™ืคืŸ ืขื˜ืœืขื›ืข ืงืึทืžืึทื ื“ื–. ื“ื ื”ืื˜ ื–ื™ืš ืขืก ืื ื’ืขื”ื•ื™ื‘ืŸ.
ื•ื•ื™ ืื™ืจ ื•ื•ื™ืกืŸ, Java ืื™ื– ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืŸ ืžื™ื ื™ื ืคื•ืŸ ื•ื•ื™ืจื˜ื•ืึทืœ ืงืึทื ืกืึธื•ืœื–, ืฆื™ ืื™ืŸ HP ืึธื“ืขืจ Dell. ืื™ืŸ ืžื™ื ื“ืกื˜ืขืจ ื“ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ (ืื•ืŸ ื“ื™ ืกื™ืกื˜ืขืžืขืŸ ื–ืขื ืขืŸ ื–ื™ื™ืขืจ ืึทืœื˜). ืึธื‘ืขืจ ืคื™ืจืขืคืึธืงืก ืื•ืŸ ืงืจืึธื•ื ืคืืจืฉื˜ืืคื˜ ืฉื˜ื™ืฆืŸ ื“ื™ ืึทืคึผืคึผืœืขืฅ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜ ืฆื•ืจื™ืง, ืื•ืŸ ื“ื™ ื ื™ื™ึทืข IcedTea ืึทืจื‘ืขื˜ ื ื™ืฉื˜ ืžื™ื˜ ื“ื™ ืกื™ืกื˜ืขืžืขืŸ. ื“ืขืจื™ื‘ืขืจ, ืขื˜ืœืขื›ืข ืึธืคึผืฆื™ืขืก ื™ืžืขืจื“ื–ืฉื“:

1. ืึธื ื”ื™ื™ื‘ ืงืึทื ืกื˜ืจืึทืงื˜ื™ื ื’ ืึท ื–ืึธืึธืœืึธื’ื™ืฉืขืจ ื’ืึธืจื˜ืŸ ืคึฟื•ืŸ ื‘ืจืึทื•ื–ืขืจื– ืื•ืŸ ื“ื–ืฉืึทื•ื•ืึท ื•ื•ืขืจืกื™ืขืก ืื•ื™ืฃ ื“ื™ื™ืŸ ืžืึทืฉื™ืŸ, ื“ืขื ืึธืคึผืฆื™ืข ืื™ื– ื ื™ื˜ ืžืขืจ ื“ืืจืฃ. ืขืก ืื™ื– ืงื™ื™ืŸ ืคืึทืจืœืึทื ื’ ืฆื• ืจื™ื™ืฆื  ื“ื™ ืกื™ืกื˜ืขื ืคึฟืึทืจ ื“ื™ ืฆื•ืœื™ื‘ ืคื•ืŸ ืึท ืคึผืึธืจ ืคื•ืŸ ืงืึทืžืึทื ื“ื–.
2. ืงืึทื˜ืขืจ ืขืคึผืขืก ื’ืึทื ืฅ ืึทืœื˜ ืื•ื™ืฃ ื“ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ (ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื™ืงืกืคึผืขืจืžืขื ืึทืœื™ ืึทื– ืื™ืจ ื“ืึทืจืคึฟืŸ Java 6) ืื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจ ืึทืœืฅ ืื™ืจ ื“ืึทืจืคึฟืŸ ื“ื•ืจืš ืขืก.
3. ื“ื™ ื–ืขืœื‘ืข ื•ื•ื™ ื ืงื•ื“ื” 2, ื ืืจ ืื™ืŸ ื ืงืื ื˜ืขืจ, ื•ื•ื™ื™ืœ ืขื˜ืœื™ื›ืข ื—ื‘ืจื™ื ื”ืื‘ืŸ ื’ืขื˜ืจืืคืขืŸ ื“ืขื ื–ืขืœื‘ืŸ ืคืจืื‘ืœืขื ืื•ืŸ ืขืก ืื™ื– ืคื™ืœ ื’ืจื™ื ื’ืขืจ ืคืืจ ื–ื™ื™ ืื™ื‘ืขืจืฆื•ืคื™ืจืŸ ื ืœื™ื ืง ืฆื• ื ืงืื ื˜ืขืจ ืื•ื™ืฃ ื“ืืงืขืจื”ื•ื‘ ื•ื•ื™ ื ื•ื•ื™ืจื˜ื•ืขืœ ืžืืฉื™ืŸ ื‘ื™ืœื“, ืžื™ื˜ ืืœืข ืคืืกื•ื•ืึธืจื“ืก ื.ื.ื•ื•.
(ืื™ืŸ ืคืึทืงื˜, ืื™ืš ื ืึธืจ ื’ืึทื˜ ืฆื• ืคื•ื ื˜ 3 ื ืึธืš ืื™ืš ื˜ืึธืŸ ืคื•ื ื˜ 2)
ืžื™ืจ ื•ื•ืขืœืŸ ื˜ืึธืŸ ืคื•ื ื˜ 3 ื”ื™ื™ึทื ื˜.

ืื™ืš ืื™ื– ื’ืขื•ื•ืขืŸ ื™ื ืกืคึผื™ื™ืขืจื“ ื“ืขืจ ื”ื•ื™ืคึผื˜ ื“ื•ืจืš ืฆื•ื•ื™ื™ ืคึผืจืึทื“ื–ืฉืขืงืก:
1. docker-baseimage-gui
2. docker-firefox-java
ื‘ื™ื™ืกื™ืงืœื™ ื“ืขืจ ืขืจืฉื˜ืขืจ ืคึผืจื•ื™ืขืงื˜ docker-baseimage-gui ืฉื•ื™ืŸ ื›ึผื•ืœืœ ื™ื•ื˜ื™ืœืึทื˜ื™ื– ืื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื– ืคึฟืึทืจ ืคืœื™ืกื ื“ื™ืง ื“ืขืกืงื˜ืึทืคึผ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ ื“ืึธืงืงืขืจ. ื˜ื™ืคึผื™ืงืึทืœืœื™ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื“ืขืคื™ื ื™ืจืŸ ื ืึธืจืžืึทืœ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื•ืŸ ื“ื™ื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืฆื•ื˜ืจื™ื˜ืœืขืš ื“ื•ืจืš ื‘ืœืขื˜ืขืจืขืจ (ื•ื•ืขื‘ืกืึธืงืงืขื˜) ืึธื“ืขืจ VNC. ืื™ืŸ ืื•ื ื“ื–ืขืจ ืคืึทืœ, ืžื™ืจ ื•ื•ืขืœืŸ ืงืึทื˜ืขืจ ื“ื•ืจืš Firefox ืื•ืŸ VNC; ืขืก ื”ืื˜ ื ื™ืฉื˜ ืึทืจื‘ืขื˜ืŸ ื“ื•ืจืš ื•ื•ืขื‘ืกืึธืงืงืขื˜.
ืขืจืฉื˜ืขืจ, ืœืึธื–ืŸ ืื•ื ื“ื– ื™ื ืกื˜ืึทืœื™ืจืŸ ื“ื™ ื ื™ื™ื˜ื™ืง ืคึผืึทืงืึทื“ื–ืฉืึทื– - 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

ืื™ืฆื˜ ืึทืœืข ืื™ืจ ื”ืึธื‘ืŸ ืฆื• ื˜ืึธืŸ ืื™ื– ืฆื• ื’ื™ื™ืŸ ืฆื• ื“ื™ ื™ืœืึธ ืฆื•ื‘ื™ื ื“ ื‘ืœืึทื˜ ืื•ืŸ ืึทืจื™ื™ึทืŸ ื“ื™ื™ืŸ ื ืืžืขืŸ ืื•ืŸ ืคึผืึทืจืึธืœ. ืงืึทื˜ืขืจ Firefox ืื™ืŸ ืึทื•ื˜ืึธืกื˜ืึทืจื˜:

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

ื“ื™ HILO_HOST ืกื•ื•ื™ื•ื•ืข ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ื›ึผื•ืœืœ ื“ื™ ื•ื•ืขื‘ ืึทื“ืจืขืก ืคื•ืŸ ืื•ื ื“ื–ืขืจ ื™ืœืึธ ืฆื•ื‘ื™ื ื“, ืœืžืฉืœ myhp.example.com
ืฆื• ืึธื˜ืึทืžื™ื™ื˜ ื“ื™ ืœืึธื’ื™ืŸ, ืœืึธื–ืŸ ืื•ื ื“ื– ืœื™ื™ื’ืŸ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ. ืœืึธื’ื™ืŸ ืฆื• ILO ืึทืงืขืจื– ืžื™ื˜ ืึท ืจืขื’ื•ืœืขืจ POST ื‘ืขื˜ืŸ, ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื•ื•ืึธืก ืื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท JSON session_key, ื•ื•ืึธืก ืื™ืจ ื“ืขืจื ืึธืš ืคืึธืจืŸ ืื™ืŸ ืึท GET ื‘ืขื˜ืŸ:
ืœืึธืžื™ืจ ืจืขื›ืขื ืขืŸ ืกืขืกื™ืข_ืงื™ื™ ื“ื•ืจืš ืงืขืจืœ ืื•ื™ื‘ ื“ื™ HILO_USER ืื•ืŸ 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

ืึทืžืึธืœ ืžื™ืจ ื”ืึธื‘ืŸ ืจืขืงืึธืจื“ืขื“ ื“ื™ session_key ืื™ืŸ ื“ืึธืงืขืจ, ืžื™ืจ ืงืขื ืขืŸ ืœื•ื™ืคืŸ VNC:

exec x11vnc -forever -create

ืื™ืฆื˜ ืžื™ืจ ืคืฉื•ื˜ ืคืึทืจื‘ื™ื ื“ืŸ ื“ื•ืจืš VNC ืฆื• ืคึผืึธืจื˜ 5900 (ืึธื“ืขืจ ืงื™ื™ืŸ ืื ื“ืขืจืข ืคื•ืŸ โ€‹โ€‹ื“ื™ื™ืŸ ื‘ืจื™ืจื”) ืื•ื™ืฃ ืœืึธืงืึทืœื”ืึธืกื˜ ืื•ืŸ ื’ื™ื™ืŸ ืฆื• ื“ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ืงืึทื ืกืึธื•ืœ.
ื›ืœ ืงืึธื“ ืื™ื– ืื™ืŸ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ื“ืึธืงืขืจ-ื™ืœืึธ-ืงืœื™ืขื ื˜.
ื’ืึทื ืฅ ื‘ืึทืคึฟืขืœ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืฆื• 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

ื•ื•ื• ADDRESS_OF_YOUR_HOST ืื™ื– ื“ื™ ILO ื‘ืึทืœืขื‘ืึธืก ื ืึธืžืขืŸ, SOME_USERNAME ืื™ื– ื“ื™ ืœืึธื’ื™ืŸ ืื•ืŸ, ืึทืงืึธืจื“ื™ื ื’ืœื™, SOME_PASSWORD ื“ื™ ืคึผืึทืจืึธืœ ืคึฟืึทืจ ILO.
ื ืึธืš ื“ืขื, ืคืฉื•ื˜ ืงืึทื˜ืขืจ ืงื™ื™ืŸ VNC ืงืœื™ืขื ื˜ ืฆื• ื“ื™ ืึทื“ืจืขืก: vnc://localhost:5900
ืึทื“ื™ืฉืึทื ื– ืื•ืŸ ืฆื™ืขืŸ ืจื™ืงื•ื•ืขืก ื–ืขื ืขืŸ, ืคื•ืŸ ืงื•ืจืก, ื‘ืึทื’ืจื™ืกืŸ.

ื ืขื ืœืขืš ืคึผืจื•ื™ืขืงื˜ ื™ื’ื–ื™ืกืฅ ืคึฟืึทืจ ืงืึทื ืขืงื˜ื™ื ื’ ืฆื• IDRAC ื™ื ื˜ืขืจืคื™ื™ืกื™ื– ืคื•ืŸ DELL ืžืืฉื™ื ืขืŸ: docker-idrac6.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’