์๋ง๋ Docker๊ฐ ์ฌ๊ธฐ์ ์กด์ฌํ๋ ์ด์ ๊ฐ ๋ฌด์์ธ์ง ๊ถ๊ธํ ๊ฒ์
๋๋ค. ILO ์น ์ธํฐํ์ด์ค์ ๋ก๊ทธ์ธํ๊ณ ํ์์ ๋ฐ๋ผ ์๋ฒ๋ฅผ ์ค์ ํ๋ ๋ฐ ์ด๋ค ๋ฌธ์ ๊ฐ ์์ต๋๊น?
์ฌ์ค์น(์ฌํ๋ก๋น์ ๋)๊ฐ ํ์ํ ์ค๋๋๊ณ ๋ถํ์ํ ์๋ฒ ๋ ๋๋ฅผ ๊ทธ๋ค์ด ๋์๊ฒ ์ฃผ์์ ๋ ๋๋ ๊ทธ๋ ๊ฒ ์๊ฐํ์ต๋๋ค. ์๋ฒ ์์ฒด๋ ํด์ธ์ ์์ผ๋ฉฐ, ์ฌ์ฉํ ์ ์๋ ์ ์ผํ ๊ฒ์ ์น ์ธํฐํ์ด์ค๋ฟ์
๋๋ค. ๋ฐ๋ผ์ ์ผ๋ถ ๋ช
๋ น์ ์คํํ๋ ค๋ฉด ๊ฐ์ ์ฝ์๋ก ์ด๋ํด์ผ ํ์ต๋๋ค. ๊ทธ๊ฒ์ด ์์๋ ๊ณณ์
๋๋ค.
์์๋ค์ํผ Java๋ ์ผ๋ฐ์ ์ผ๋ก HP๋ Dell ๋ฑ ๋ค์ํ ์ข
๋ฅ์ ๊ฐ์ ์ฝ์์ ์ฌ์ฉ๋ฉ๋๋ค. ์ ์ด๋ ์์ ์๋ ๊ทธ๋ฌ์ต๋๋ค(์์คํ
๋ ๋งค์ฐ ์ค๋๋์์ต๋๋ค). ๊ทธ๋ฌ๋ Firefox์ Chrome์ ์ค๋ ์ ์ ์ด๋ฌํ ์ ํ๋ฆฟ ์ง์์ ์ค๋จํ์ผ๋ฉฐ ์๋ก์ด 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 ์์ฒญ์ผ๋ก ์ ๋ฌํฉ๋๋ค.
HILO_USER ๋ฐ HILO_PASS ํ๊ฒฝ ๋ณ์๊ฐ ์ ์๋ ๊ฒฝ์ฐ ์ปฌ์ ํตํด session_key๋ฅผ ๊ณ์ฐํด ๋ณด๊ฒ ์ต๋๋ค.
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
docker์ session_key๋ฅผ ๊ธฐ๋กํ๊ณ ๋๋ฉด VNC๋ฅผ ์์ํ ์ ์์ต๋๋ค.
exec x11vnc -forever -create
์ด์ VNC๋ฅผ ํตํด localhost์ ํฌํธ 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
์ถ๊ฐ ์ฌํญ๊ณผ ๋์ด์ค๊ธฐ ์์ฒญ์ ๋ฌผ๋ก ํ์ํฉ๋๋ค.
DELL ์์คํ
์ IDRAC ์ธํฐํ์ด์ค์ ์ฐ๊ฒฐํ๊ธฐ ์ํ ์ ์ฌํ ํ๋ก์ ํธ๊ฐ ์์ต๋๋ค.
์ถ์ฒ : habr.com