Sampeyan bisa uga mikir - kenapa Docker ana ing kene? Apa masalah nalika mlebu ing antarmuka web ILO lan nyetel server sampeyan yen perlu?
Iku sing dakkira nalika dheweke menehi sawetara server lawas sing ora perlu sing kudu diinstal maneh (apa sing diarani reprovision). Server kasebut dhewe dumunung ing luar negeri, mung ana antarmuka web. Dadi, aku kudu menyang Konsol Virtual kanggo mbukak sawetara perintah. Ing kono wiwit.
Kaya sing wis dingerteni, Java biasane digunakake kanggo macem-macem konsol virtual, apa ing HP utawa Dell. Paling ora kaya ngono (lan sistem wis lawas banget). Nanging Firefox lan Chrome wis suwe ora ndhukung applet kasebut, lan IcedTea anyar ora bisa digunakake karo sistem kasebut. Mulane, sawetara opsi muncul:
1. Miwiti mbangun kebon binatang saka browser lan versi Java ing mesin sampeyan, pilihan iki ora dibutuhake maneh. Ora ana kepinginan kanggo moyoki sistem kanggo saperangan printah.
2. Bukak soko cukup lawas ing mesin virtual (pranyata metu eksperimen sing perlu Jawa 6) lan ngatur kabeh sing perlu liwat.
3. Padha titik 2, mung ing wadhah, wiwit sawetara kolega nemokke masalah padha lan iku luwih gampang kanggo nransfer link menyang wadhah ing Dockerhub saka gambar mesin virtual, karo kabeh sandhi, etc.
(Nyatane, aku mung entuk poin 3 sawise aku nindakake poin 2)
Kita bakal nindakake titik 3 dina iki.
Aku diilhami utamane dening rong proyek:
1.
2.
Sejatine proyek pisanan
Pisanan, ayo nginstal paket sing dibutuhake - Java 6 lan 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
Saiki sampeyan mung kudu pindhah menyang kaca antarmuka ILO lan ketik jeneng pangguna lan sandhi. Bukak Firefox ing autostart:
RUN bash -c 'echo "exec openbox-session &" >> ~/.xinitrc' &&
bash -c 'echo "firefox ${HILO_HOST}">> ~/.xinitrc' &&
bash -c 'chmod 755 ~/.xinitrc'
Variabel lingkungan HILO_HOST ngemot alamat web antarmuka ILO kita, contone
Kanggo ngotomatisasi login, ayo nambah wewenang. Mlebet ILO dumadi kanthi panyuwunan POST biasa, minangka asil sampeyan nampa JSON session_key, sing banjur sampeyan lebokake ing panjalukan GET:
Ayo ngetung session_key liwat curl yen variabel lingkungan HILO_USER lan HILO_PASS ditetepake:
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
Sawise kita wis ngrekam session_key ing docker, kita bisa miwiti VNC:
exec x11vnc -forever -create
Saiki kita mung nyambung liwat VNC menyang port 5900 (utawa liyane saka pilihan sampeyan) ing localhost lan pindhah menyang console virtual.
Kabeh kode ana ing gudang
Perintah lengkap kanggo nyambung menyang 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
ngendi ADDRESS_OF_YOUR_HOST minangka jeneng host ILO, SOME_USERNAME minangka login lan, kanthi mangkono, SOME_PASSWORD sandhi kanggo ILO.
Sawise iku, bukak wae klien VNC menyang alamat kasebut: vnc://localhost:5900
Tambahan lan panjalukan narik, mesthi, sambutan.
Ana proyek sing padha kanggo nyambungake menyang antarmuka IDRAC mesin DELL:
Source: www.habr.com