Anda mungkin bertanya-tanya - mengapa Docker ada di sini? Apa masalah dengan antarmuka web ILO dan mengatur server Anda sebagaimana mestinya?
Jadi saya pikir ketika mereka memberi saya beberapa server lama yang tidak perlu yang harus saya instal ulang (apa yang disebut reprovision). Server itu sendiri terletak di seberang lautan, satu-satunya hal yang tersedia adalah antarmuka web. Jadi, saya harus pergi ke Konsol Virtual untuk menjalankan beberapa perintah. Di sinilah dimulai.
Seperti yang Anda ketahui, untuk berbagai jenis konsol virtual, Java biasanya digunakan, yaitu di HP, di Dell. Bagaimanapun, itu dulu sangat akurat (dan sistemnya sudah sangat tua). Tetapi Firefox dan Chrome sudah lama tidak mendukung applet ini, dan IcedTea baru tidak berfungsi dengan sistem ini. Oleh karena itu, beberapa opsi diidentifikasi:
- Untuk mulai membangun kebun binatang dari browser dan versi Java di mesin Anda, opsi ini segera menghilang. Tidak ada keinginan untuk mengejek sistem untuk beberapa tim.
- Jalankan sesuatu yang cukup lama di mesin virtual (secara eksperimental diketahui bahwa Java 6 diperlukan) dan konfigurasikan semua yang Anda butuhkan melalui itu.
- Hal yang sama dengan poin 2, hanya di dalam wadah, karena beberapa rekan menemukan masalah yang sama dan jauh lebih mudah untuk memberikan mereka tautan ke wadah di dockerhub daripada gambar mesin virtual, dengan semua kata sandi, dll.
(Sebenarnya, saya mencapai poin 3 hanya setelah saya membuat poin 2)
Poin 3 akan kita lakukan hari ini.
Saya terutama terinspirasi oleh dua proyek:
- buruh pelabuhan-baseimage-gui
- buruh pelabuhan-firefox-java
Pada prinsipnya, proyek
docker-baseimage-gui pertama sudah berisi utilitas dan konfigurasi untuk meluncurkan aplikasi desktop di docker. Biasanya Anda perlu mendefinisikan variabel standar dan aplikasi Anda akan dapat diakses melalui browser (websocket) atau VNC. Dalam kasus kami, kami akan menjalankan melalui Firefox dan VNC, melalui websocket tidak berfungsi.
Pertama, instal paket yang diperlukan - Java 6 dan 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
Sekarang tinggal pergi ke halaman antarmuka ILO dan masukkan nama pengguna dan kata sandi Anda. Kami memulai Firefox di 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 berisi alamat web dari antarmuka ILO kami, misalnya
myhp.example.com .
Untuk mengotomatiskan entri, mari kita abaikan otorisasi. Login ke ILO dilakukan oleh permintaan POST biasa, sebagai hasilnya Anda mendapatkan JSON session_key, yang kemudian Anda sampaikan dalam permintaan GET.
Hitung session_key melalui curl jika variabel lingkungan HILO_USER dan HILO_PASS didefinisikan:
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
Setelah kami mencatat session_key di buruh pelabuhan, kami dapat memulai VNC:
exec x11vnc -forever -create
Sekarang cukup terhubung melalui VNC ke port 5900 (atau yang lain pilihan Anda) di localhost dan pergi ke konsol virtual.
Semua kode ada dalam repositori
docker-ilo-client .
Perintah penuh untuk terhubung ke 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
di mana ADDRESS_OF_YOUR_HOST adalah nama host ILO, SOME_USERNAME adalah nama pengguna dan, oleh karena itu, SOME_PASSWORD adalah kata sandi ILO.
Setelah itu, jalankan klien VNC apa saja di alamat:
vnc://localhost:5900
Penambahan dan permintaan tarik dipersilakan, tentu saja.
Proyek serupa ada untuk menghubungkan ke antarmuka IDRAC mesin DELL:
docker-idrac6 .