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

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

Интеграция Open Source-решений  

Open Source в облачной среде

Облачные решения становятся всё более популярными в мире. Компании стремятся использовать их для

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

Автоматизация  

Нейросеть вам в руки! Как использовать ИИ для автоматизации задач

Использование ИИ для автоматизации задач помогает компании получить конкурентное преимущество, поскольку объединение

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

Рынок труда  

Специалист по этическому ИИ, инженер по квантовым вычислениям или аналитик по метавселенной?

Новые тенденции в развитии ИТ могут привести к возникновению новых специальностей в

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

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

Учитесь убеждать и побеждать

Издательство «БХВ», как всегда, порадовало своих читателей хорошими книжными новинками. Кроме популярных

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

Сетевая инфраструктура  

Как удаленная работа меняет подход к сетевой инфраструктуре?

С увеличением числа сотрудников, работающих из дома, организации сталкиваются с необходимостью создания

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

Мониторинг  

Какой мониторинг нужен сегодня?

По мнению экспертов ГК InfoWatch, действия сотрудников – самая распространенная причина инцидентов

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

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

Руководство для тех, кто увлечен ИИ, программированием. И дизайном

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

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

Мобильные приложения  

Искусственный интеллект в мобильных приложениях: возможности и перспективы

Обзор современных применений ИИ в мобильных приложениях, анализ перспектив развития этой технологии,

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

ИТ-образование  

Как сделать ИТ-образование эффективным?

Эксперты ИТ-отрасли отвечают на вопросы «СА». Обсуждаем ключевые аспекты для улучшения образовательных

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

Work-life balance  

Как айтишнику найти баланс между работой и личной жизнью?

Обсуждаем инструменты для эффективного управления временем, снижения уровня стресса и достижения гармонии. На

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

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

Всё самое нужное – под одной обложкой

Отличительная черта книжных новинок, выпущенных недавно издательством «БХВ» – это их универсальность. Не просто

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

ИТ-инфраструктура  

Системы мониторинга ИТ-инфраструктуры-2025

Без мониторинга ИТ-инфраструктуры не обходится ни одна компания, хотя бы потому, что

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

Открытое ПО  

Безопасность Open Source: рискуем или контролируем?

Компания «Кросс технолоджис» изучила, как используется ПО с открытым кодом в компаниях

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

Работа с нейросетью  

Скажи, есть ли у тебя AI, и я скажу, кто ты

Недавно сервис по поиску работы SuperJob выяснил, что каждый второй россиянин уже

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Друзья сайта  

 Программный комплекс для автоматической связи с платформой 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