ืืืื ืืชื ืืื ืชืืืื - ืืื Docker ืงืืื ืืื? ืื ืืืขืื ืืื ืืกื ืืืืฉืง ืืืื ืืจื ื ืฉื ILO ืืืืืจืช ืืฉืจืช ืฉืื ืืคื ืืฆืืจื?
ืื ืื ืฉืืฉืืชื ืืฉื ืชื ื ืื ืืื ืฉืจืชืื ืืฉื ืื ืืืืชืจืื ืฉืืืืชื ืฆืจืื ืืืชืงืื ืืืืฉ (ืื ืฉื ืงืจื reprovision). ืืฉืจืช ืขืฆืื ืืืืงื ืืขืืจ ืืื, ืืืืจ ืืืืื ืฉืืืื ืืื ืืืฉืง ืืืื ืืจื ื. ืืืื, ืืืชืื, ืืืืชื ืฆืจืื ืืืืช ืืงืื ืกืืื ืืืืืจืืืืืืช ืืื ืืืคืขืื ืืื ืคืงืืืืช. ืฉื ืื ืืชืืื.
ืืคื ืฉืืชื ืืืืข, Java ืืฉืืฉืช ืืืจื ืืื ืขืืืจ ืกืืืื ืฉืื ืื ืฉื ืงืื ืกืืืืช ืืืจืืืืืืืช, ืืื ืื ื-HP ืืืื ืื ื-Dell. ืืคืืืช ืืื ืื ืืื ืคืขื (ืืืืขืจืืืช ืืฉื ืืช ืืืื). ืืื ืคืืืจืคืืงืก ืืืจืื ืืคืกืืงื ืืชืืื ืืืืฉืืืื ืื ืืืื ืืคื ื ืืื ืจื, ืื-IcedTea ืืืืฉ ืื ืขืืื ืขื ืืืขืจืืืช ืืืื. ืืื, ืขืื ืืกืคืจ ืืคืฉืจืืืืช:
1. ืืชืื ืืื ืืช ืื ืืืืช ืืืคืืคื ืื ืืืจืกืืืช Java ืืืืฉื ืฉืื, ืืคืฉืจืืช ืื ืื ืืืืชื ื ืืืฆื ืขืื. ืืื ืจืฆืื ืืืขืื ืืืขืจืืช ืืฉืืื ืืื ืคืงืืืืช.
2. ืืคืขื ืืฉืื ืื ืืฉื ืืืืื ื ืืืืจืืืืืืช (ืืชืืจืจ ืื ืืกืื ืฉืืชื ืฆืจืื Java 6) ืืืืืจ ืืช ืื ืื ืฉืืชื ืฆืจืื ืืจืื.
3. ืืืชื ืืืจ ืืื ื ืงืืื 2, ืจืง ืืงืื ืืืื ืจ, ืืืืจ ืืืกืคืจ ืขืืืชืื ื ืชืงืื ืืืืชื ืืขืื ืืืจืื ืืืชืจ ืงื ืืืขืืืจ ืืื ืงืืฉืืจ ืืงืื ืืืื ืจ ื-Dockerhub ืืืฉืจ ืชืืื ืช ืืืฉื ืืืจืืืืืืช, ืขื ืื ืืกืืกืืืืช ืืื'.
(ืืืขืฉื, ืืืขืชื ืื ืงืืื 3 ืจืง ืืืจื ืฉืขืฉืืชื ืืช ื ืงืืื 2)
ื ืขืฉื ืืช ื ืงืืื 3 ืืืื.
ืงืืืืชื ืืฉืจืื ืืขืืงืจ ืืฉื ื ืคืจืืืงืืื:
1.
2.
ืืขืฆื ืืคืจืืืงื ืืจืืฉืื
ืจืืฉืืช, ืืืื ื ืชืงืื ืืช ืืืืืืืช ืืืจืืฉืืช - 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
ืืขืช ืื ืฉืขืืืื ืืขืฉืืช ืืื ืืขืืืจ ืืืฃ ืืืฉืง ILO ืืืืืื ืืช ืฉื ืืืฉืชืืฉ ืืืกืืกืื ืฉืืื. ืืคืขื ืืช Firefox ืืืคืขืื ืืืืืืืืช:
RUN bash -c 'echo "exec openbox-session &" >> ~/.xinitrc' &&
bash -c 'echo "firefox ${HILO_HOST}">> ~/.xinitrc' &&
bash -c 'chmod 755 ~/.xinitrc'
ืืฉืชื ื ืืกืืืื HILO_HOST ืืืื ืืช ืืชืืืช ืืืื ืืจื ื ืฉื ืืืฉืง ILO ืฉืื ื, ืืืฉื
ืืื ืืืคืื ืืช ืืืชืืืจืืช ืืืืืืืืืช, ืืืื ื ืืกืืฃ ืืจืฉืื. ืืื ืืกื ื-ILO ืืชืจืืฉืช ืขื ืืงืฉืช POST ืจืืืื, ืืืชืืฆืื ืืื ืืชื ืืงืื JSON session_key, ืฉืืืชื ืืชื ืืขืืืจ ืืืงืฉืช GET:
ืืืื ืืืฉื session_key ืืืืฆืขืืช curl ืื ืืฉืชื ื ืืกืืืื 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 ื- docker, ื ืืื ืืืคืขืื ืืช VNC:
exec x11vnc -forever -create
ืขืืฉืื ืื ืื ื ืคืฉืื ืืชืืืจืื ืืจื VNC ืืืฆืืื 5900 (ืื ืื ืืืืจื ืืืจืช) ื-localhost ืื ืขืืืจ ืืงืื ืกืืื ืืืืจืืืืืืช.
ืื ืืงืื ื ืืฆื ืืืืืจ
ืคืงืืื ืืืื ืืืชืืืจ ื-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:
ืืงืืจ: www.habr.com