Мои Конспекты
Главная | Обратная связь


Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Установка сервера 1С

Лабораторная работа №3

(Контейнерная виртуализация)

Продолжаем настраивать предприятия. В этой лабораторной работе вам предстоит настроить систему управления серверов – webmin, развернуть сервер 1С и провести нагрузочное тестирование.

 

Webmin — это программный комплекс, позволяющий администрировать операционную систему через веб-интерфейс, в большинстве случаев, позволяя обойтись без использования командной строки и запоминания системных команд и их параметров.

Установка панели администрирования webmin.

#yum install http://prdownloads.sourceforge.net/webadmin/webmin-1.791-1.noarch.rpm

#yum install webmin-1.791-1.noarch.rpm

#firewall-cmd --permanent --add-port=10000/tcp

#firewall-cmd --reload

Из браузера firefox подключаемся к webmin https://127.0.0.1:10000

 

Вводим имя и пароль пользователя root.

 

 

Установка сервера 1С

Для понимания лабораторной работы необходимо определиться с некоторыми терминами: Хост – основная операционная система, на которой установлены виртуальные машины. Виртуальная машина – операционная система, работающая либо на виртуальном оборудовании, либо через гипервизор. Контейнер – изолированная одним процессом системная среда в которой выполняется приложение.

Существует несколько типов виртуализации:

Трансляция – эмуляция происходит на уровне вызовом программ. В данном случае транслятор перехватывает вызовы программы скомпилированной под одну операционную систему и транслирует в вызовы другой. Например, WINE

Виртуализация на уровне оборудования. В этом случае нужна специальная программа-платформа, которая эмулирует оборудование на котором может быть установлена любая операционная система, понимающая это оборудование. Отметим, что в виртуальную операционную систему в этом случае устанавливаются специальные драйвера, обеспечивающие трансляцию части вызовов напрямую в операционную систему

Паравиртуализация. В этом случае оборудование остается существующее, но в виртуальной операционной системе устанавливается программа - гипервизор, как часть ядра, которая позволяет «делить» оборудование между несколькими виртуальные машинами и хостом.

Контейнеры. Виртуализация на подобии портабельных программ в Windows – изолированная среда со всеми необходимыми библиотеками для работы приложений.

Docker – новое направление контейнерной виртуализации, отличающееся легкостью и использование KVM. Контейнер сформирован как один процесс, без дополнительных трансляторов и эмуляторов.

 

Появление виртуальных контейнеров существенно упрощает работу системных администраторов, поскольку вместо утомительной сборки необходимых библиотек достаточно установить готовый контейнер. Контейнер в некотором смысле напоминает виртуальную машину, но имеет ряд отличительных особенностей:

Возможность связывания нескольких контейнеров и масштабирование системы. Значительно более легкая реализация, поскольку нет необходимости эмуляции оборудования. Значительно меньший размер образа, поскольку нет необходимости копировать системные библиотеки. Контейнеры представляют собой слои – снимки, что позволяет легко откатиться на предыдущее состояние контейнера.

В реализации docker следует различать четыре основных сущности. Первая сущность - образ. Для более легкого восприятия можно представлять образ как пакет или класс, на базе которого создаются готовые приложения (в нашем случае – контейнеры). Образ содержит окружение и необходимые библиотеки для запуска контейнера. Как правило, существует базовый образ, который скачивается с общедоступного регистра. На его основе создаются контейнеры или образы, которые формируют сами пользователи. Второй сущностью являются сами контейнеры. Сущность контейнера довольно интересна, поскольку часть окружения и доступ к системным библиотекам он получает от основной системы как обычный процесс, а часть окружения и библиотек получает из метаданных образа. Контейнер можно представить очень легкой «виртуальной машиной», без собственной операционной системы, поскольку все необходимые системные библиотеки он берет от основной системы, а вот внутри, с помощью метаданных и библиотек образа, создается специальное окружение для работы приложений которые, в общем случае, отличаются от приложений основной системы. Таким образом, в контейнере могут работать программы, собранные и настроенные в другой операционной системе на базе Linux (с ядром не ниже 2.6). Более того, пользователи сами могут добавлять программы в работающий контейнер. Эти программы и настройки записываются «поверх» образа. Третья сущность – том. Грубо говоря, том это смонтированная в контейнер директория основной системы, куда сохраняются все данные полученные при работе контейнера. Если этого не сделать, после выключения контейнера вся информация, созданная в нем, будет потеряна. Четвертая сущность - линки. Это связь между контейнерами внутри сети. Надо отметить, что все контейнеры запускаются в отдельной подсети и получают IP адреса случайным образом. Линки позволяют прописать в связанных контейнерах их имена и IP адреса для межсетевого взаимодействия

 

Краткий перечень опций клиента docker при работе с контейнерами

docker run– запустить контенер

--rm: сообщает Docker удалять контейнер каждый раз, как только произойдет выход из процесса. Хорошая возможность при тестировании, позволяющая избежать беспорядка

-ti: указывает Dockerу создать псевдотерминал и предоставить его для использования в интерактивном режиме. Это возможность для доступа к контейнеру и она хорошо подходит для быстрого прототипирования и различных игр, но при использовании контейнера в производственных условиях вы не должны включать эти флаги.

-d: - демонировать контейнер. Сделать его службой

-p: - проброс портов <host port:container port>

-v: -папка (том), который монтируется поверх образа контейнера

--link: - name:alias – связь между контейнерами

--name: -имя контейнера

--volumes-from: -связь между данными контейнеров

--expose 2000-2008 – P true – проброс группы портов из хоста в контейнер и обратно.

-m 256m — ограничение памяти

-с 512 — вес контейнера (от 1 до 1024) ЧЕМ МЕНЬШЕ ТЕМ БОЛЬШЕ ПРИОРИТЕТ

-cpuset 0 — привязка к определенному ядру процессора

docker build- построить контейнер по файлу Dockerfile

-f – конфигурационный файл

-m – объем памяти для контейнера

-t – тег контейнера

docker create– создает контейнер

-v: - том данных (реальная папка на фс)

docker inspect –проверка контейнера

docker rm – удаление контейнера

docker rmi {image} – удаление образа

Установка docker для CentOS 7 x86_64 ничем не отличается от установки обычных служб. Мы устанавливаем и запускаем сервис docker и локальный регистр для сохранения созданных образов.

# yum install docker docker-registry –y

# systemctl enable docker; systemctl start docker

В том случае, если сеть предприятия находится за прокси-сервером, нужно дополнительно настроить docker для работы по протоколам HTTP и HTTPS через прокси. Как оказалось, системные настройки им не подхватываются. Для работы Docker по протоколу HTTP создаем файл

/etc/system/system/docker.service.d/http-proxy.conf

с содержимым:

==============================================================

[Service]

Environment="HTTP_PROXY=http://proxy.local.ru:3128/" "NO_PROXY=localhost,127.0.0.1"

==============================================================

и файл для работы по протоколу HTTPS

/etc/system/system/docker.service.d/https-proxy.conf

с содержимым

===============================================================

[Service]

Environment="HTTPS_PROXY=http://proxy.local.ru:3128/" "NO_PROXY=localhost,127.0.0.1"

==================================================================

Перегружаем systemd чтобы принялись изменения.

#systemctl daemon-reload

Ищем готовые образы docker на сервере на www.docker.io

#docker search 1с

Скачиваем 2 базовых образа, на основе которых будем конфигурировать наши контейнеры

#docker pull temrdm/1c_postgres – база данных PostgreSQL для 1С

#docker pull temrdm/1c_server – сервер 1с v8.3

Просмотр скачанных образов

#docker images

Схема развертывания сервера 1C на основе контейнеров docker показана на Рис

Порядок конфигурирования и запусков контейнеров следующий: первоначально конфигурируется и запускается контейнер базы данных – 1с_postgres. Далее запускается контейнер 1с_server, в котором собран готовый сервер 1С. Между контейнерами организуем линк.