Open Source and Linux Lab

Главная » Uncategorized

Category Archives: Uncategorized

Quick way to create Vagrant libvirt box from existing one

Introduction

This article is aimed to describe very fast approach of creating Vagrant Libvirt boxes using existing ones as a base. The described solution is applicable for following use-cases:

  • you need box with slightly different software dependencies (different packages/versions);
  • you need different configuration of existing software;
  • you need add some files to box.

Due to described process simplicity it has one big limitation — ssh password of vagrant use is hard-coded. This means that every box user will need to set it explicitly in Vagrantfile. Such solution may be inflexible for a number of use-cases and obviously contain security vulnerability.

Described approach target is only to modify existing box quickly and it does not cover deep libvirt configuration issues. For more complex boxes it is better to use https://www.packer.io/.

Prerequisites

  1. Clone https://github.com/vagrant-libvirt/vagrant-libvirt .
  2. Ensure that you have enough free space on the host machine, you may need atleast three or a four times more space that <needed_box_name> file takes.
  3. Do vagrant box add <needed_box_name>.

Creating box

Write Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  config.vm.box = "<needed_box_name>"
  config.vm.synced_folder "./", "/vagrant", type: "rsync", rsync__auto: true
  config.vm.provider "libvirt" do |libvirt|
     libvirt.driver = "qemu"
  end
 
 config.vm.provision "shell", inline: <<-EOC
    # Important part - hardcoding vagrant password which will allow us to connect to new   box without messing with keys
    echo "vagrant\nvagrant"| passwd vagrant
    # Do needed environment settings
    sudo aptitude install ruby gcc make 
  EOC
end

Start VM

  1. Call vagrant up —provider=libvirt .
  2. Wait for virtual machine to complete provision.
  3. Copy any files to machine or do any other manual actions which should persist in new box.

Package box

Run:

cd <vagrant_libvirt_dir>
sudo tools/create_box.sh /var/lib/libvirt/images/<needed_box_name>.img

(If you have troubles finding .img file, corresponding to running VM use virsh -q vol-list —pool default command to list all libvirt images. )

After successful ending of the last command the box file will appear at ./<needed_box_name>.box. This file can be added localy to vagrant by running:

vagrant box add ./needed_box_name.box --name <name_of_new_box>

or can be uploaded to Atlas( https://atlas.hashicorp.com/).

Links

  1. https://github.com/vagrant-libvirt/vagrant-libvirt#create-box
  2. https://www.vagrantup.com/
  3. https://libvirt.org/
  4. https://atlas.hashicorp.com/
  5. https://www.packer.io/

Семинар «Простые и производительные веб-карты с библиотекой Leaflet»

Друзья!

Приглашаем вас принять участие в семинаре «Простые и производительные веб-карты с библиотекой Leaflet», который состоится 11.02 в 19-00 в БЦ Таймс.

quick-start

Семинар посвящен практическим вопросам использования leaflet.js для построения удобных и высокопроизводительных веб-карт. На примерах будет показано:
— короткое введение в саму библиотеку (возможности/ какие фигуры можно рисовать и как настроить их отображение/ какие есть стандартные элементы управления),
— практические рекомендации/хаки/ для работы с библиотекой, сформулированные на основе опыта разработки в проекте Geo2Tag,
— использование сменных подложек (Google, Yandex, OSM) на одной карте leaflet,
— практические рекомендации по организации интерфейсов повторно используемых виджетов карт,
— снижение объема выводимых объектов и повышение наглядности UI (https://github.com/Leaflet/Leaflet.markercluster),
— редактирование объектов на карте (https://github.com/yohanboniface/Leaflet.Editable).

Выделение_090

В ходе семинара планируется демонстрация интерактивных примеров по каждой теме.

Докладчик: Марк Заславский, асприант НИУ ИТМО, активный участник Open Source and Linux Laboratory, один из авторов и разработчиков проекта Geo2Tag.

Семинар пройдет по адресу Кантемировская ул., 2 (Бизнес-Центр Таймс), 4 этаж.

Телефон для связи 89112770029, email mark.zaslavskiy at gmail dot com.

Опубликовано видео доклада “Тестирование веб-приложений в Selenium”

Опубликовано видео, слайды и примеры к докладу “Тестирование веб-приложений в Selenium”, прочитанному Марком Заславским 17 декабря.

Слайды:

Примеры: http://bit.ly/1T36po8

Больше материалов доступно в канале лаборатории на YouTube и аккаунте SlideShare

https://www.youtube.com/channel/UCYW9j9dqDL61aa8NCkzKSRA

http://www.slideshare.net/osll

Доклад “Тестирование веб-приложений в Selenium”

19-00 17.12.15 в БЦ Таймс состоится доклад “Тестирование веб-приложений в Selenium

В докладе будут проиллюстрированы основные возможности фреймворка и их применение для решения реальных задач веб-разработчика. На основании опыта использования Selenium в проекте Geo2Tag будут рассмотрены следующие вопросы:

  • состав API Selenium
  • как автоматизировать действия в браузере
  • как писать UI тесты для веб-интерфейсов
  • как интегрировать Selenium и фремворки для юнит-тестирования
  • как настроить непрерывную интеграцию и полностью автоматизировать тестирование веб-приложений

В процессе доклада будут продемонстрированы практические примеры тестов на языке Python. Для их корректной работы необходим Python 2.7 с установленным пакетом selenium.

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

Докладчик: Марк Заславский, асприант НИУ ИТМО, активный участник Open Source and Linux Laboratory, один из авторов и разработчиков проекта Geo2Tag.

Семинар пройдет по адресу Кантемировская ул., 2 (Бизнес-Центр Таймс), 4 этаж.

Телефон для связи 89112770029, email mark.zaslavskiy at gmail dot com.

Семинар о микросервисной архитектуре для веб-приложений

26 ноября в 19-00 часов в БЦ Таймс (Кантемировская ул., 2) состоится семинар Владислава Марина «Микросервисная архитектура и виртуализация средствами Docker, проект виртуализации Geo2Tag».

Доклад посвящен вопросам проектирования и реализации веб-приложений для повышения их масштабируемости и отказоустойчивости. В первой части выступления будут проиллюстрированы основные идеи микросервисной архитектуры, ее положительные и отрицательные стороны. Во второй части доклада будут описаны существующие инструменты виртуализации. Также будет показано, как с помощью Docker можно реализовать разделение приложения на отдельные сервисы, используя механизм Linux-контейнеров. В третьей части выступления будет дан практический пример рефакторинга существующего монолитного веб-приложения Geo2Tag для микросервисной архитектуры.
О докладчике
Владислав Марин, магистрант СПБГЭТУ «ЛЭТИ», активный участник проекта Geo2Tag.

Семинар пройдет по адресу Кантемировская ул., 2 (Бизнес-Центр Таймс), 4 этаж.

Телефон для связи 89112770029, email mark.zaslavskiy at gmail dot com.

Вакансия преподавателя робототехники

Открыта вакансия преподавателя на занятиях по робототехнике на платформе ScratchDuino для учащихся начальной школы.
Занятия проводятся в школе в районе м.Пионерская и м. Удельная.

Требования
  • студент технической специальности, имеющий опыт в программировании и робототехнике.
  • умение объяснять и интересно подать материал
  • желание работать с детьми
  • большим плюсом будет знание платформы ScratchDuino/Arduino

Условия: официальное трудоустройство по срочному трудовому договору

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

E-mail для связи: mark.zaslavskiy at gmail.com

Basic training for Linux-IO-Scheduler project

Next steps should be done before start the project activity. Expected results [red in brackets]

  • install linux, git, build-essential
  • download kernel sources
  • configure kernel simplest as possible [kernel config file]
  • build and install (if fail, go previous step)
  • read and understand «Block Drivers» chapter from LDD
  • read and understand how does elevator work and make [wiki-page] with description
  • using noop-elevator as a template make new my-elevator io scheduler and build it into kernel, it should be possible change IO-scheduler on the fly from standard to yours and vise-versa. [patch, kernel config]
Useful links

Конференция «Современные технологии в теории и практике программирования»

Компания EMC совместно с Санкт-Петербургским Государственным Политехническим Университетом проводят учебно-практическую конференцию «Современные технологии в теории и  практике программирования». Одна из главных целей конференции помощь студентам с подготовкой их первых публикаций.

В рамках конференции проводится конкурс студенческих работ — которые могут претендовать на именные дипломы.

Срок проведения конференции: 28 апреля 2015 года

Тематические секции
  • Программная инженерия: приложения, продукты и системы
  • Программная инженерия: инструментальные средства и технологии проектирования и разработки
  • Программная инженерия: методы и алгоритмы теории программирования
  • Подходы к разработке ПО на основе технологий EMC

Для подачи заявки на участие требуется подготовить тезисы на 1 страницу.

Подробные требования

 

Исследование технологий программно-конфигурируемых систем хранения

В проект по исследованию программно-конфигурируемых систем хранения приглашаются студенты технических направлений.

О предметной области:

В системах хранения данных наметилась тенденция применения программно конфигурируемых сетей (Software Defined Networks, SDN) для обеспечения доступа клиентов к системам хранения. Основным сценарием является создание виртуальной сетевой инфраструктуры отдельно для системы хранения и клиентских узлов таким образом, чтобы минимизировать (а, фактически свести до нуля) необходимость ручной настройки сетевых параметров.

Текущий статус проекта

Во второй половине 2014 года участниками студенческого проекта лаборатории  OSLL была выполненена разработка прототипа программных средств управления соединениями клиентов (tenants) к системе хранения на основе Open vSwitch, а также выполнен анализ возможностей для реализации сценариев предоставления сервисов системы хранения в стиле SDN.

Основные результаты и выводы предыдущего этапа:

  • Создана тестовая конфигурация для проверки основного сценария конфигурирования подключения системы хранения к клиентам;
  • Проведен сравнительный анализ реализаций контроллеров OpenFlow;
  • Определены следующий методики тестирования контроллеров:
    • реактивная: первый пакет из потока пересылается со свитча на контроллер для добавления записи о потоке в каждый OpenFlow свитч в сети. Данный подход представляет наиболее эффективное использование памяти для таблицы потоков, но каждый новый поток добавляет небольшое время для установки записей. При жесткой зависимости от контроллера, если свитч теряет соединение с контроллером, то он имеет ограниченное применение.
    • проактивная: контроллер предварительно заполняет таблицу потоков на каждом свитче. Этот подход имеет нулевое время добавления нового потока, так как все правила уже определены.
Задачи на следующий этап:
  • Исследование возможности использования технологии VxLAN и способов комбинирования 802.1q VLAN и VxLAN.
  • Автоматизация конфигурирования и развертывания виртуального сетевого окружения
  • Автоматическое нагрузочное тестирование, генерация сценариев, аналитика
Для участия в проекте:
  • прислать заявку на projects(на)osll.ru

Марк Заславский получил именную стипендию RAIDIX

Активный участник нашей лаборатории, Марк Заславский, получил именую стипендию от компании RAIDIX за весомый вклад в развитие проекта, посвященного исследованию производительности систем хранения данных, построенных по принципу Active-Active.

Марком, при подержке экспертов компании RAIDIX, была разработана математическая и имитационная модель, позволяющая изучать поведение системы хранения данных (СХД) при различных нагрузках и шаблонах (паттернах) доступа к данным. Рассматриваемый класс систем хранения состоит из двух процессоров обработки потоков данных (Storage Processors) использующих для ускорения работы кэш и набор алгоритмов, управляющих его когерентностью и наполнением. Созданные модели позволяют тестировать производительность СХД и отлаживать алгоритмы управления кэш-памятью не прибегая к использованию дорогостоящего оборудования.