Docker wadahna pikeun ngatur server HP via ILO

Anjeun panginten panginten - naha Docker aya di dieu? Naon masalahna sareng asup kana antarmuka wéb ILO sareng nyetél server anjeun upami diperyogikeun?
Éta anu kuring pikir nalika aranjeunna masihan kuring sababaraha server anu teu perlu lami anu kuring kedah pasang deui (anu disebut reprovision). Server sorangan ayana di luar negeri, hiji-hijina hal anu aya nyaéta antarmuka wéb. Nya, sasuai, kuring kedah angkat ka Konsol Virtual pikeun ngajalankeun sababaraha paréntah. Éta tempat dimimitian.
Sakumaha anjeun terang, Java biasana dianggo pikeun sababaraha jinis konsol virtual, naha dina HP atanapi Dell. Sahenteuna éta kumaha éta (sareng sistemna lami pisan). Tapi Firefox sareng Chrome parantos lami lirén ngadukung applet ieu, sareng IcedTea énggal henteu tiasa dianggo sareng sistem ieu. Ku alatan éta, sababaraha pilihan muncul:

1. Ngamimitian ngawangun kebon binatang tina browser sareng versi Java dina mesin anjeun, pilihan ieu henteu diperyogikeun deui. Teu aya kahayang pikeun nyindiran sistem pikeun sababaraha paréntah.
2. Ngajalankeun hal rada heubeul dina mesin virtual (tétéla ékspériméntal nu peryogi Java 6) jeung ngonpigurasikeun sagalana nu peryogi ngaliwatan eta.
3. Sarua jeung titik 2, ngan dina wadahna, saprak sababaraha kolega encountered masalah anu sarua jeung loba gampang a mindahkeun éta link ka wadahna on Dockerhub ti gambar mesin virtual, kalayan sagala kecap akses, jsb.
(Malah, kuring ngan meunang titik 3 sanggeus kuring ngalakukeun titik 2)
Urang bakal ngalakukeun titik 3 dinten ayeuna.

Kuring diideuan utamina ku dua proyék:
1. docker-baseimage-gui
2. docker-firefox-java
Dasarna proyék munggaran docker-baseimage-gui parantos ngandung utilitas sareng konfigurasi pikeun ngajalankeun aplikasi desktop di Docker. Biasana anjeun kedah netepkeun variabel standar sareng aplikasi anjeun tiasa diaksés ngalangkungan browser (websocket) atanapi VNC. Dina kasus urang, urang bakal ngajalankeun via Firefox sareng VNC; éta henteu tiasa dianggo via websocket.
Mimiti, hayu urang pasang bungkusan anu diperyogikeun - Java 6 sareng 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

Ayeuna anu anjeun kedah laksanakeun nyaéta angkat ka halaman antarmuka ILO sareng lebetkeun nami pangguna sareng kecap akses anjeun. Jalankeun Firefox dina 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 ngandung alamat wéb antarmuka ILO urang, contona myhp.example.com
Pikeun ngajadikeun otomatis login, hayu urang tambahkeun otorisasina. Asup ka ILO lumangsung kalayan pamenta POST biasa, salaku hasilna anjeun nampi JSON session_key, anu anjeun teraskeun dina pamundut GET:
Hayu urang ngitung session_key via curl upami variabel lingkungan HILO_USER sareng HILO_PASS didefinisikeun:

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

Sakali kami parantos ngarékam session_key di docker, urang tiasa ngaluncurkeun VNC:

exec x11vnc -forever -create

Ayeuna urang ngan saukur nyambung via VNC ka port 5900 (atawa nu sejenna tina pilihan Anjeun) on localhost tur buka konsol virtual.
Sadaya kode aya dina gudang docker-ilo-klien.
Paréntah lengkep pikeun nyambung ka 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

dimana ADDRESS_OF_YOUR_HOST mangrupikeun nami host ILO, SOME_USERNAME mangrupikeun login sareng, sasuai, SOME_PASSWORD sandi kanggo ILO.
Sanggeus éta, kantun ngajalankeun sagala klien VNC ka alamat: vnc://localhost:5900
Tambihan sareng pamundut tarikan, tangtosna, wilujeng sumping.

Aya proyék anu sami pikeun nyambungkeun ka antarmuka IDRAC tina mesin DELL: docker-idrac6.

sumber: www.habr.com

Tambahkeun komentar