Программный комплекс для автоматической связи с платформой BOINC::Журнал СА 10.2017
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6194
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6903
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4188
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2989
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3795
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3805
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6299
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3152
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3446
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7263
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10628
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12352
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13982
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9110
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7064
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5375
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4604
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3414
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3145
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3392
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3013
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Программный комплекс для автоматической связи с платформой BOINC

Архив номеров / 2017 / Выпуск №10 (179) / Программный комплекс для автоматической связи с платформой BOINC

Рубрика: Карьера/Образование /  Пятая пара

Без фото ПАВЕЛ ПОВАЛЯЕВ, Московский авиационный институт (национальный исследовательский университет), магистр

Программный комплекс
для автоматической связи с платформой BOINC

В статье рассказывается о том, как облегчить установку и настройку данного программного комплекса

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

В данной статье будут решены следующие задачи:

  • автоматизировать установку системы;
  • настроить подключение к серверу;
  • запустить виртуальный BOINC-сервер;
  • создать проект на сервере;
  • настроить BOINC-клиент для работы с проектом.

Была поставлена цель создать систему, автоматизирующую процесс установки и настройки приложений BOINC-клиент и BOINC-сервер для разработки проектов системы распределенных вычислений BOINC. Далее нужно запустить BOINC-клиенты для работы над созданным проектом.

BOINC-сервер – центральный сервер, к которому делают запросы клиентские машины. Рассмотрим алгоритм сборки и установки сервера. Общую схему можем увидеть на рис. 1.

Рисунок 1. Алгоритм сборки и установки сервера

Рисунок 1. Алгоритм сборки и установки сервера

В данной работе нам нужно иметь понимание о кластерах. Кластер – это многопроцессорный, многоядерный компьютер, на котором выполняются задачи пользователя, связанные высокоскоростной сетью и объединенные специальным программным обеспечением. Для расчетных операций используются кластерные (распределенные) вычисления. Именно открытая программная платформа BOINC организует распределенные вычисления.

Платформа BOINC-клиент-сервер состоит из программы-клиента и составного сервера BOINC, это дает возможность использовать несколько компьютеров в качестве сервера.

Разработка алгоритма автоматической сборки и установки сервера BOINC

Для установки сервера потребуется выполнить следующее.

Шаг 1. Определяем установленный на компьютере дистрибутив (Ubuntu или Debian).

Шаг 2. В зависимости от установленной операционной системы добавляются совместимые репозитории с нашим дистрибутивом.

Выполняем с правами администратора команды:

Подключаемся и добавляем репозиторий, в котором хранится пакет PHP 5, необходимый для запуска веб-сервера (который входит в состав BOINC):

sudo add-apt-repository ppa:ondrej/php -y

Обновляем данные репозитория:

sudo apt-get update

Шаг 3. Cкачивание и установка всех необходимых для сборки BOINC-сервера пакетов и библиотек:

sudo apt-get install -y git apache2 python-pip m4 pkg-config autoconf automake perl libtool build-essential libssl-dev mysql-server libmysqlclient-dev libmysqld-dev curl libcurl4-openssl-dev software-properties-common python-software-properties php5.6 php5.6-mysql libapache2-mod-php5.6 php5.6-mbstring php5.6-simplexml

Шаг 4. Клонируем репозиторий с исходным кодом BOINC-сервера:

git clone https://github.com/BOINC/BOINC.git BOINC-server

Шаг 5. Переходим в папку со скачанными файлами:

cd BOINC-server

Шаг 6. Конфигурирование и подготовка к сборке сервера:

./_autosetup 1>../server-autosetup.log 2>../server-autosetup-error.log

./configure --disable-manager --disable-client 1>../server-config.log 2>../server-config-error.log

  • Параметр 1>./*.log – перенаправление стандартного потока в указанный файл.
  • Параметр 2>./*.error.log – вывод сообщений об ошибках в указанный файл.

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

Параметры:

  • --disable-manager
  • --disable-client

Эти параметры указывают конфигуратору, что в процессе сборки нашего проекта не соберутся manager и client.

--- Build Components: ( libraries server) ---

Обратите внимание на сообщения, выдаваемые в ходе работы скрипта configure, возможно, будут выведены предупреждения наподобие этого:

checking if CFLAG '-include fcgi_stdio.h' works... no

configure: WARNING: fcgi-stdio.h not found.

------------------------------------------------------------

Disabling FCGI. Will not build components that require FCGI

------------------------------------------------------------

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

Шаг 7. Сборка сервера:

make 1>../server-make.log 2>../server-make-error.log

Шаг 8. Создание проекта:

./tools/make_project --db_passwd='123123' --db_user='root' --delete_prev_inst --drop_db_first --url_base="http://unixubuntu.my-BOINC-test-project.com" testappw

Параметрами --db_passwd и --db_user мы указываем логин и пароль для доступа к базе данных.

Скрипт выводит сообщения процесса сборки нового проекта. Прежде всего устанавливаются параметры, связанные с доступом к веб-странице проекта (здесь *server -IP* – это имя сервера в сети):

Creating project ' my_example_app ' (short name ' meapp '):

PROJECT_ROOT = /home/BOINCadm/projects/ meapp /

URL_BASE = http://*server -IP*/

HTML_USER_URL = http://* server -IP*/ meapp /

HTML_OPS_URL = http://* server -IP*/meapp_ops/

CGI_URL = ://*server -IP*/meapp_cgi/

KEY_DIR = /home/BOINCamd/projects/meapp/keys/

DB_NAME = meapp

Затем создаются необходимые каталоги:

Setting up server: creating directories

Происходит генерация криптографических ключей:

Keys don't exist in /home/BOINCadm/projects/meapp/keys/; generate them? [Y/n]

Setting up server files: generating keys

Копирование необходимых файлов, создание таблиц базы данных и файлов настроек, установка независимых от приложения служб:

Setting up server files: copying files

Setting up database

Setting up server files: writing config files

Setting up server files: linking cgi programs

update_translations finished

Done installing default daemons

Шаг 9. Настройка веб-страницы. Перед настройкой Apache, нужно установить правильные права доступа на папку, где содержится сама страница:

chmod –R 755 html/*

Настройки веб-сервера Apache для нового проекта содержатся в файле testappw.httpd.conf. Откроем файл, в котором мы видим, что данная конфигурация была сгенерирована для Apache 2.2, так как у нас установлена версия Apache 2.4, нам нужно заменить:

Order deny, allow

Deny from all

на:

Require all denied

И:

Order allow, deny

Allow from all

на:

Require all granted

Содержимое файлов настроек подключается либо напрямую, либо подключением через основной файл настроек (все действия необходимо выполнить с правами root):

root@BOINCserver:/home/BOINCadm/projects/meapp>

cat meapp.httpd.conf >> /etc/apache2/httpd.conf

Необходимо перезапустить сервер Apache:

root@BOINCserver:/home/BOINCadm/projects/meapp>

/etc/init.d/apache2 restart

Установим пароль для доступа к административной части:

sudo htpasswd -c html/ops/.htpasswd admin

Мы видим главную страницу тестового проекта BOINC, с помощью нее мы связываемся с пользователями нашего проекта (см. рис. 2). Данная страница является шаблоном сайта проекта, который в дальнейшем необходимо модифицировать или заменить под нужды проекта.

Рисунок 2. Веб-страница

Рисунок 2. Веб-страница

Для написания программы инсталлятор автоматической установки и развертывания BOINC-сервера использовался скриптовый язык программирования Bash.

Для автоматической установки BOINC-сервера нужно ввести адрес сервера, название проекта, а также пароль от администратора веб-страницы:

read -p "url to server: http://" -e BOINC_URL

BOINC_URL="http://$BOINC_URL"

read -p "project_name: " -e BOINC_NAME

read -p "password for admin web-page: " -e ADMIN_PASSW

echo "url: $BOINC_URL"

echo "project_name: $BOINC_NAME"

Здесь:

  • "url to server: http://" -e BOINC_URL – ввод с клавиатуры адреса BOINC-сервера;
  • "project_name: " -e BOINC_NAME – ввод с клавиатуры названия проекта;
  • "password for admin web-page: " -e ADMIN_PASSW – введение пароля от администратора веб-сервера.

За определение установленного на компьютере дистрибутива отвечает специальная команда:

dpkg -s lsb-release >/dev/null 2>/dev/null || sudo apt-get -y install lsb-release

LINUX_DIST=$(lsb_release -a 2>/dev/null | grep "Distributor ID:")

Здесь:

  • lsb-release – проверка на установку программы lsb-release, которая отвечает за определение дистрибутива;
  • install lsb-release – установка программы, если не была найдена;
  • "Distributor ID:" – получение установленного дистрибутива.

Для успешной работы инсталлятора нужно настроить веб-сервер Apache:

python -c "exec(\"f=open(''${BOINC_NAME}'.httpd.conf', 'r')\\nf2 = open('BOINC.httpd.conf', 'w')\\nfor line in f: f2.write(line.replace('Order deny,allow', '').replace('Order allow,deny', '').replace('Allow from all', 'Require all granted').replace('Deny from all', 'Require all denied'))\")"

sudo sh -c "cp BOINC.httpd.conf /etc/apache2/BOINC.httpd.conf"

sudo sh -c "echo 'Include BOINC.httpd.conf' >> /etc/apache2/apache2.conf"

Здесь представлен код изменения конфигурации Apache на более новую версию. Пайтоновская программа открывает файл с конфигурацией для Apache и заменяет строчки.

В ходе исследования была выполнена следующая работа:

  • определение дистрибутива;
  • скачивание и установка пакетов и библиотек;
  • конфигурирование и сборка сервера;
  • создание проекта;
  • настройка веб-страницы;
  • проверка функциональности проекта в рамках сервера BOINC;
  • разработана программа на языке программирования Bash;
  • тестирование разработанной программы.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru