Балким, сиз ойлонуп жаткандырсыз - эмне үчүн Докер бул жерде бар? ЭЭУнун веб-интерфейсине кирүү жана сервериңизди зарылчылыкка жараша орнотууда кандай көйгөй бар?
Алар мага кайра орнотушум керек болгон бир нече эски керексиз серверлерди бергенде, мен ушундай деп ойлогом (бул репровизия деп аталат). Сервер өзү чет өлкөдө жайгашкан, бир гана веб-интерфейс бар. Демек, мен кээ бир буйруктарды иштетүү үчүн Virtual Console барууга туура келди. Мына ошондон башталды.
Белгилүү болгондой, 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
Эми сиз болгону ЭЭУнун интерфейс барагына өтүп, колдонуучу атыңызды жана паролуңузду киргизсеңиз болот. Firefoxту автоматтык түрдө ишке киргизиңиз:
RUN bash -c 'echo "exec openbox-session &" >> ~/.xinitrc' &&
bash -c 'echo "firefox ${HILO_HOST}">> ~/.xinitrc' &&
bash -c 'chmod 755 ~/.xinitrc'
HILO_HOST чөйрө өзгөрмөсү, мисалы, биздин ILO интерфейсибиздин веб дарегин камтыйт
Кирүүнү автоматташтыруу үчүн авторизацияны кошобуз. ЭЭУга кирүү кадимки POST суроо-талабы менен ишке ашат, анын натыйжасында сиз JSON session_key ачкычын аласыз, андан кийин аны GET сурамына тапшырасыз:
HILO_USER жана HILO_PASS чөйрө өзгөрмөлөрү аныкталган болсо, curl аркылуу 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
Докерге 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 интерфейстерине туташуу үчүн бар:
Source: www.habr.com