Шояд шумо дар ҳайрат бошед - чаро Docker дар ин ҷо вуҷуд дорад? Мушкилоти ворид шудан ба веб-интерфейси СБМ ва ҳангоми зарурат насб кардани сервери шумо чист?
Ин ҳамон чизест, ки ман фикр кардам, вақте ки онҳо ба ман якчанд серверҳои нолозими кӯҳнаро доданд, ки онҳоро аз нав насб кардан лозим буд (ки онро азнавсозӣ меноманд). Худи сервер дар хориҷа ҷойгир аст, ягона чизе, ки дастрас аст, интерфейси веб аст. Хуб, мувофиқан, ба ман лозим омад, ки ба Консоли виртуалӣ равам, то баъзе фармонҳоро иҷро кунам. Аз он ҷо сар шуд.
Тавре ки шумо медонед, 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 мегиред, ки шумо онро дар дархости GET мегузоред:
Биёед session_key-ро тавассути curl ҳисоб кунем, агар тағирёбандаҳои муҳити HILO_USER ва HILO_PASS муайян карда шаванд:
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 ба порти 5900 (ё ягон дилхоҳи шумо) дар localhost пайваст мешавем ва ба консоли виртуалӣ меравем.
Ҳама кодҳо дар репозиторий ҷойгиранд
Фармони пурра барои пайвастшавӣ ба 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 номи мизбони СБМ мебошад, SOME_USERNAME логин ва мувофиқан SOME_PASSWORD пароли ILO мебошад.
Пас аз он, ҳама гуна муштарии VNC-ро ба суроғаи зерин оғоз кунед: vnc://localhost:5900
Иловаҳо ва дархостҳои ҷалб, албатта, хуш омадед.
Лоиҳаи шабеҳ барои пайвастшавӣ ба интерфейсҳои IDRAC мошинҳои DELL вуҷуд дорад:
Манбаъ: will.com