Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 12143 сообщений
Cообщения с меткой

linux - Самое интересное в блогах

Следующие 30  »
Диплом_на_заказ_Пишу

Статьи. 2016: Linux. Установка и настройка

Вторник, 26 Июля 2016 г. 16:35 (ссылка)
kniga.xp3.biz/linux/2016/


Статьи. 2016, linux, Linux, Установка и настройка, linux. , linux

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Диплом_на_заказ_Пишу

Статьи. 2016: Linux. Установка и настройка

Вторник, 26 Июля 2016 г. 16:35 (ссылка)
kniga.xp3.biz/linux/2016/


Статьи. 2016, linux, Linux, Установка и настройка, linux. , linux

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Мониторинг проектов с помощью месенджера на примере Nagios и Telegram, с разбором факапов из жизни Highload 24x7

Суббота, 24 Июля 2016 г. 00:09 (ссылка)



Рисунок: Маргарита Закиева





Что будет под катом:




  • Базовые настройки Nagios в связке с Telegram.

  • Общая концепция нашего с коллегами мониторинга проектов.

  • Разбор граблей, на которые мы успели наступить при работе с этой системой.



Наша статья будет полезна для тех, кто:




  • Недоволен информативностью своего текущего мониторинга.

  • Испытывает ежедневную боль ниже спины с оповещениями о проблемах.





Эта статья не про «Telegram Bot API»



Настраивать связку, о которой пойдёт речь, мы начали ещё за месяц до публичного релиза API, поэтому с самого начала для отправки алярмов с сервера мониторинга был использован «Telegram CLI for Linux». Статья, в первую очередь, посвящена именно этому консольному клиенту. В конце статьи мы подробно объяснили, почему не стали отказываться от него в пользу новшеств из мира ботов.



Кто мы и чем занимаемся



Мы — дружная команда «Operations» компании МедиаТех. Админить приходится десятки серверов, это могут быть как VPS, так и «железные» сервера, в том числе в Colocation, а разбросаны они по всему миру. Правильная и эффективная работа с мониторингом — наш основной приоритет.



Общая концепция



У нас вообще нет людей в штате, в обязанности которых входило бы ночью не спать и следить за мониторингом, зато мы имеем один зарегистрированный на «левую» SIM-карту аккаунт, от чьего имени отправляем сообщения и некое количество:





  • Инстансов Nagios — это никак не связано с реализацией отправки уведомлений, просто мы хотим подчеркнуть, что с несколькими Nagios одновременно, всё работает без каких-либо сбоев.



Факап №0 — Не замониторить мониторинг

Рано или поздно вы столкнётесь с тем фактом, что мониторинг тоже может сломаться, а узнать об этом хочется сразу, а не в понедельник, после выходных. В то же время, логично проверять некоторые сервисы «изнутри», а другие, например статус ответа вашего сайта по HTTP — «снаружи». Чтобы «убить двух зайцев одним камнем» настройте себе ещё один Nagios у другого провайдера и распределите нужные вам проверки между двумя мониторингами, не забыв настроить проверку check_nagios одного инстанса на другой и зеркально наоборот. Надеюсь для вас, так же как и для нас, одновременное падения двух провайдеров в разных странах — сценарий крайне маловероятный.

Как выглядит наш мониторинг мониторинга








  • Настроенных уведомлений для сервисов — ключевой момент здесь — это настройка в месенджер только самых важных уведомлений, скорее всего это будет CRITICAL нотисы по самым ключевым метрикам на самых важных хостах. Остальное, например, WARNING или хосты-песочницы настраиваются на отправку сообщений вне той схемы, которая описана в данной статье. Это может быть, например, почта или «личка» c роботом в том же Телеграме.



Факап №1 — Отправлять нотификации, которые требуют немедленного вмешательства в систему, для исправления проблемы в тот же чат, что и те алярмы, которые могут подождать или вообще вскоре пропадут, после автоматической починки сервиса.

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

Типичный канал, на который реагирует дежурный








  • Системных администраторов, которые по очереди приступают к ежедневному «дежурству» на мониторинге, которое длится сутки с 23:00 до 23:00. Администратор, который находится на дежурстве, должен включить (или не выключать) уведомления для канала, который настроен как адресат по умолчанию для критических алярмов из Nagios.



Факап №2 — Реагировать на нотификации по принципу «кто первый увидел».

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

Настройка уведомлений на телефоне или планшете








  • Резервных каналов. Идея проста — если на конкретную поломку никто не отреагировал в течение получаса, мониторинг в автоматическом режиме переключается с обычного чата, на «экстренный», в котором, так же как и в предыдущем, находятся все администраторы. Его отличие заключается в том, что игнорировать его нельзя никому, уведомления должны быть включены всегда и у всех. Также можно сделать ещё один чат не только с администраторами, но и, например, с директорами, на случай, если сервис не работает уже час и никто, в чьи обязанности входит за ними следить, не реагирует на мониторинг. Как именно они реализованы с технической точки зрения — в самом конце статьи.



Факап №3 — Полагаться только на дежурного.

Горький опыт показал нам, что авария в вашем ДЦ может случиться одновременно с отключением доступа в интернет у дежурного системного администратора дома. Несмотря на то, что мобильный интернет есть у всех, по-умолчанию смартфон у всех подключен к домашнему Wi-Fi и то, что доступа в глобальную паутину там нет его не волнует, «палочки то все три». Впрочем, админ может оказаться недоступен и из-за более простых и линейных жизненных сценариев.

Резервные каналы, для которых у всех всегда включены уведодмления








  • Тематических каналов. Системный администратор может устранить далеко не все неисправности, обнаруженные мониторингом, например, ошибки в логах приложения или специфичные дедлоки в базе данных. Концепция «разбудить системного администратора, чтобы он разбудил бекенд разработчика» нам кажется неправильной, поэтому под такие уведомления отдельно созданы «тематические» каналы, ответственность за которые несут не системные администраторы, а другие профильные специалисты.



Факап №4 — Отправлять уведомления от робота в чаты, где проходят рабочие обсуждения.

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

В качестве примера демонстрирую скриншот с «резервными» каналами и одним тематическим, посвящённом базе данных.

Тематический канал, посвящённый базе данных







Небольшое резюме: после принятия описанных выше договорённостей, системным администраторам стало работать намного проще. Это позволило им отвлекаться на уведомления от смартфона реже и дало возможность научиться тратить рабочее время на совершенствование инфраструктуры фирмы. Качество сна админов улучшилось, а «топы» больше не беспокоятся о том, что ночью случиться факап с даутаймом жизненно важных для компании сервисов и её репутация будет подорвана.



Отправляем Nagios уведомления в Telegram.



Установка и первый запуск консольного клиента


Даже если вы найдёте telegram-cli в репозиториях своего дистрибутива(например RPMfusion Repository для CentOS) или готовый пакет на просторах интернета, настоятельно рекомендуем самостоятельно «собрать и скомпилять», благо данная процедура детально рассмотрена прямо на github страничке проекта для многих *nix систем.

Примечание для любителей Fedora и CentOS
для Fedora 20 и CentOS 6, необходимо предварительно самостоятельно скомпилировать libjansson, которого не оказалось в стандартных репах.



После успешной компиляции бинарника, необходимо создать в системе пользователя с логином «telegramd», для того, чтобы после первого запуска клиента у вас в системе создалась директория /home/telegramd/.telegram-cli, внутри которой клиент после подтверждения своей авторизации будет хранить служебные файлы, например, полученный приватный ключ с серверов Telegram.



Почему имя пользователя именно 'telegramd'
telegramd — именно такое дефолтное имя пользователя используется клиентом, если вы запускаете его в системе от имени суперпользователя, в документации такой информации мы не нашли, зато подсмотрели её в «main.c».



Как не потерять доступ к аккаунту, зарегистрированному на «левую симку»
Достаточно бекапить ту самую папку «.telegram-cli», которая упомянута ранее. Перенеся её на другой сервер, Telegram сразу будет запускать с нужной вам авторизацией и настройками.



И так, у вас в руках телефон с симкой, на которую будем регистрировать Телеграм, а на компьютере открыта консоль сервера с мониторингом.

adduser telegramd # --disabled-login
./bin/telegram-cli -k tg-server.pub


Следуем инструкциям на экране и попадаем в консольный телеграм




Теперь можно добавить кого-нибудь в «contact_list» по его номеру телефона, насколько нам известно — это единственный способ занести пользователя в «контакты» так, чтобы в последствии отправлять туда уведомления из Nagios. Сделать это можно из консоли или из любого другого клиента, включая Telegram Web-version, разумеется, предварительно авторизовавшись там с тем же телефонным номером, который вы только что использовали. Для отправки сообщений в общий чат или канал на стороне «робота» вообще ничего делать не нужно, достаточно позаботиться о том, чтобы он был администратором, если вы отправляете сообщения в «канал».

add_contact +79991112233 My Contact
quit


Настройка клиента под отправку алертов


Теперь у нас есть настроенный консольный клиент с одним контактом для отправления туда нотификаций. Для удобства использования обернём это в скрипт на баше.

/usr/local/bin/telegram.sh
#!/bin/bash
#This script helps integrate Nagios instances
#with telegrams chats or channels.
sendFunc()
{
"$tgBinPath" `
`--rsa-key "$tgKeyPath" `
`--wait-dialog-list `
`--exec "$tgSendCmd $contactName $messageText" `
`--disable-link-preview `
`--logname "$mesLogFile" `
`>> $mesLogFile
}
#Path setup
tgSendCmd="msg"
tgDir="/usr/local/bin"
tgBinPath=""$tgDir"/telegram-cli"
tgKeyPath=""$tgDir"/tg-server.pub"
logDir="/var/log/telegram"
#dont forget to setup log rotation
mesLogFile=""$logDir"/telegram.log"
#Parse arguments
contactName="$1"
messageText="$2"
sendFunc #send telegram message
exit $?




Настраиваем права в системе (проверено в Debian 8 jessie)
mkdir -p /var/log/telegram
chown telegramd:nagios /var/log/telegram -R
chmod 770 /var/log/telegram -R
chown telegramd:nagios /usr/local/bin/t*
chmod +x /usr/local/bin/t*
chown telegramd:nagios /home/telegramd/ -R
chmod 770 /home/telegramd/ -R
ln -s /home/telegramd/.telegram-cli/ /var/lib/nagios/.telegram-cli




Отправим «foo» сообщение для «My Contact»
/usr/local/bin/telegram.sh My_Contact foo # обратите внимание на нижнее подчёркивание




Отправим «bar» в канал«Monitoring»
/usr/local/bin/telegram.sh Monitoring bar


Отправляем уведомление из Nagios


Описание команд основано на классическом шаблоне для Jabber. В тексте сообщения используется #ИМЯ_МОНИТОРИНГА, таким образом, оно становится хэш-тегом в тексте сообщения, для нас это удобно.

Определение контакта для конфига Nagios
define contact{

name telegram-contact

service_notification_period 24x7

host_notification_period 24x7

service_notification_options u,c,r,f ; Обратите внимание, уведомления типа "Warning" отправляться не будут

host_notification_options d,u,r,f

service_notification_commands service-notify-by-telegram

host_notification_commands host-notify-by-telegram

register 0

}



define contact{

contact_name telegramonlycrucial

use telegram-contact

alias Telegram OnlyCrucial

address1 Monitoring ; Название канала

}





Определение команд для конфига Nagios
define command{

command_name host-notify-by-telegram

command_line /usr/local/bin/telegram.sh $CONTACTADDRESS1$ "***** #Nagios_Instance_Name ***** Host $HOSTNAME$ is $HOSTSTATE$ - Info: $HOSTOUTPUT$"

}

define command{

command_name service-notify-by-telegram

command_line /usr/local/bin/telegram.sh $CONTACTADDRESS1$ "***** #Nagios_Instance_Name ***** $NOTIFICATIONTYPE$ $HOSTNAME$ $SERVICEDESC$ $SERVICESTATE$ $SERVICEOUTPUT$ $LONGDATETIME$"

}





Последний штрих — замониторить сам Телеграм


Для нас, мониторинг — самая важная и критичная вещь во всей инфраструктуре, а так как уведомления — одна из основных его составляющих, необходимо замониторить сам telegram-cli по следующим метрикам:


  1. Каждую минуту запускаем клиент, в котором запрашиваем список контактов, после — проверяем код выхода из клиента, если всё хорошо — это всегда должен быть ноль. (Делается отдельным bash скриптом, мы думаем у вас не возникнет проблем в написании своей реализации такой проверки)

  2. Проверяем, что в логе отправки сообщений нету строк, содержащих «FAIL», именно это ключевое слово свидетельствует о том, что при отправке уведомлений что-то идёт не так. (Мы используем для этой проверки check_logfiles)

  3. Проверяем, что экземпляры telegram-cli не подвисли, а в системе не появляется всё больше и больше экземпляров этого процесса, которые стремятся оставить ваш сервер без оперативной памяти. (Для такого мониторинга отлично подойдёт стандартный check_procs)






Факап №5 — Не замониторить локального агента отправки уведомлений в Telegram.

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




Почему локальный неофициальный клиент, вместо официального API в облаке?


1. telegram-cli регулярно обновляется, поэтому работает он стабильно и имеет весь нужный нам функционал.

2. За API всё равно нужно следить, например во время релиза Bot Api 2.0 с ним были замечены сбои, в то время, как обычный клиент работал исправно.

3. Так как мы не используем никакое общение с нашим роботом и не управляем с его помощью мониторингом, нас просто устраивает текущее решение. Работает — не трогай.



Нераскрытые возможности Телеграм в связке мониторингом


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

Разумеется отправка изображений и других типов документов в Телеграме есть из коробки, так что возможности такого мониторинга ограничены только вашим воображений.

Вот как, к примеру, как у нас реализован механизм «резервных» каналов, здесь представлена упрощенная версия кода, для того, чтобы вам проще было в нём разобраться.



Обещанная ранее программная часть, отвечающая за механизм резервирования каналов.



Удачи с мониторингом ваших проектов и большого аптайма вам, коллеги!
Original source: habrahabr.ru.

https://habrahabr.ru/post/306272/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

[Перевод] Валидация JSON из командной строки Linux

Четверг, 21 Июля 2016 г. 15:25 (ссылка)

Вследствие синтаксической простоты и гибкости, JSON (JavaScript Object Notation, Объектная Нотация JavaScript) стал стандартом де-факто, используемым для обмена данными во многих веб-приложениях. В связи с тем, что JSON широко используется для представления структурированных данных с высокой степенью гибкости, возникает необходимость иметь возможность «валидировать» JSON-представления.



Таким образом появилась так называемая схема JSON (в настоящий момент 4-я версия черновика IETF), которая определяет структуру данных JSON в декларативном формате, так же, как схема базы данных определяет логическую структуру и взаимоотношение записей базы данных. Сама схема JSON записана в JSON. Схема JSON может быть довольно полезна не только для генерации правильно форматированных данных JSON, но также для проверки корректности структуры данных JSON.







Это руководство затронет два аспекта валидации JSON с соблюдением схемы JSON. Во-первых, вы можете валидировать данные JSON по схеме JSON, т.е., проверять, чтобы данные JSON соответствовали спецификации из схемы JSON. Другой аспект валидации — это валидация схемы, когда вы проверяете, чтобы сама схема JSON была правильно оформлена в соответствии с Интернет-черновиком схемы JSON. В обоих случаях я покажу вам, как произвести необходимую валидацию из командной строки Linux.



Валидация данных JSON по схеме JSON из командной строки



Есть много библиотек и утилит с открытым исходным кодом, которые погут валидировать данные JSON. Одна из них — это библиотека JSON-Spec на python, которая идет с утилитой командной строки json.



Чтобы установить JSON-Spec на Linux, для начала установите pip, а затем установите ее, как показано далее.



$ sudo pip install json-spec


Затем вы можете валидировать данные JSON по схеме JSON в следующей форме:



$ json validate --schema-file=schema.json --document-file=data.json


$ json validate --schema-file=schema.json < data.json


$ json validate --schema-file=schema.json --document-json='{"foo": ["bar", "baz"]}'


Давайте используем следующие примеры данных JSON и схемы JSON и посмотрим, как данные JSON могут быть валидированы по схеме JSON.



data.json:



{
"id" : 1,
"name": "Dan Nanni",
"age": 25,
"skills": ["написание скриптов", "работа в дата-центре"]
}


schema.json:



{
"title": "Работник",
"description": "Информация о работнике",
"type": "object",
"properties": {
"id": {
"description": "Уникальный идентификатор работника",
"type": "integer"
},
"name": {
"description": "Имя работника",
"type": "string"
},
"age": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
"skills": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true
}
},
"required": ["id", "name", "age"]
}


Взяв приведенные выше примеры, валидируйте data.json по schema.json, как показано далее.



$ json validate --schema-file=schema.json --document-file=data.json


Если данные JSON соответствуют схеме, команда ничего не выдаст. Если нет, команда выдаст исключение:



Exception: document does not validate with schema.

#/
- reason Missing property


Исключение: документ не соответствует схеме.

#/
- причина Отсутствующее свойство


Валидация схемы JSON из командной строки



Еще один аспект валидации JSON — это проверять соответствует ли сама схема JSON правильному синтаксису. Для валидации схемы пригодится инструмент на Java под названием json-schema-validator. Этот инструмент поддерживает валидацию синтаксиса для самой последней 4-й версии черновика схемы JSON. Он может работать независимо из командной строки или может быть интегрирован в процесс сборки Maven как плагин.



Для запуска его из командной строки вы можете скачать исполняемую версию JAR из Bintray. Убедитесь, что скачиваете архив json-schema-validator-X.X.X-lib.jar, в который включены все зависимости.



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



$ java -jar json-schema-validator-2.2.6-lib.jar --syntax schema.json


--- BEGIN /home/dan/schema.json---
validation: SUCCESS
--- END /home/dan/schema.json---


--- НАЧАЛО /home/dan/schema.json---
валидация: УСПЕШНО
--- КОНЕЦ /home/dan/schema.json---

Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/306140/

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

[Из песочницы] Проброс USB-принтера в контейнер LXD

Среда, 20 Июля 2016 г. 21:30 (ссылка)

Хочу поделиться найденным решением по пробросу принтера HP LaserJet 1000 в контейнер, созданый при помощи LXD.



Немного предыстории



Есть домашний сервер на базе старого ноутбука Acer Aspire 5520G, который используется для всяких экспериментов. На нем была установлена Ubuntu 14.04 и создано несколько контейнеров при помощи LXC, один из которых использовался как принт-сервер.



Проброс принтера был осуществлен путем добавления в файл конфигурации гостя следующих строк:



lxc.cgroup.devices.allow = c 189:* rwm
lxc.mount.entry = /dev/bus/usb/003 dev/bus/usb/003 none bind,optional,create=dir
lxc.mount.entry = /dev/usb/lp0 dev/usb/lp0 none bind,optional,create=file


Все работало отлично, но захотелось обновиться до Ubuntu 16.04 и попробовать LXD.



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



Приступаем к пробросу



Итак, Ubuntu 16.04+LXD установлены, контейнер на базе той же Ubuntu 16.04 создан, приступаем к пробросу.

Для начала выясним, куда подключен принтер на хосте:



root@aspire-5520g:~# lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 0bda:8197 Realtek Semiconductor Corp. RTL8187B Wireless Adapter
Bus 001 Device 003: ID 5986:0102 Acer, Inc Crystal Eye Webcam
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 03f0:0517 Hewlett-Packard LaserJet 1000
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub


Принтер подключен на Bus 003 Device 002, другими словами, ему соответствует unix-char файл /dev/bus/usb/003/002

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



root@aspire-5520g:~# ls -l /dev/bus/usb/003/002
crw-rw-r-- 1 root lp 189, 257 Июл 15 16:02 /dev/bus/usb/003/002


Файл принадлежит пользователю root и группе lp, права на файл 0664. Данная информация пригодится нам в будущем.

Выясним, какой числовой идентификатор у группы lp:



root@aspire-5520g:~# cat /etc/group | egrep lp
lp:x:7:


Группа lp имеет числовой идентификатор 7.

Теперь выясним, кто является владельцем и с какими правами, файла lp0:



root@aspire-5520g:~# ls -l /dev/usb/lp0
crw-rw---- 1 root lp 180, 0 Июл 15 16:02 /dev/usb/lp0


Файл принадлежит пользователю root и группе lp с правами 0660.



Пробросим принтер в контейнер



На самом деле, все оказалось не сильно и сложно. В моем случае контейнер называется print, а устройство я решил назвать lj1000. Для проброса нужно выполнить несколько простых манипуляций:



root@aspire-5520g:~# lxc config device add print lj1000 unix-char path=/dev/bus/usb/003/002 mode=0664 gid=7
Устройство lj1000 добавляется к print
root@aspire-5520g:~# lxc config device add print lp0 unix-char path=/dev/usb/lp0 gid=7
Устройство lp0 добавляется к print


Первая команда осуществляет проброс unix-char устройства с правами 0664 и принадлежащего группе 7 (lp), вторая команда осуществляет проброс устройства lp0 с правами по умолчанию (0660) и принадлежащего той же группе 7.



Вот и все. Проброс устройства осуществлен. Далее необходимо установить принтер в контейнере:



root@aspire-5520g:~# lxc exec print -- apt update && apt upgrade -y && apt install hplip -y
root@aspire-5520g:~# lxc exec print -- hp-setup -i


Здесь просто следуем инструкции установщика. Результатом должна стать распечатанная пробная страница печати.



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



Всем спасибо за внимание.
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/306074/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Что нового ожидается в ядре v4.8-rc1 для Intel Edison. Дайджест

Понедельник, 18 Июля 2016 г. 19:26 (ссылка)

Уже прошло около полутора лет с момента моей предыдущей публикации, посвящённой поддержке Intel Atom Z34xx, а попросту говоря Intel Edison, ванильным ядром Linux. Здесь я рассмотрю новшества, которые ждут своей очереди в ядро версии v4.8-rc1.



Я долго жаловался на отсутствие драйвера Power Management Unit (PwrMU) для платформы, пока сам не сел и не почистил известный код до состояния, позволившего включить его в ванильное ядро. Таким образом устройства южного моста, а это почти все устройства, которые используются для периферии и IoT. Наличие драйвера позволило продолжить работу над остальными частями платформы.



GPIO и pinctrl



Самыми важными драйверами на любой встраиваемой платформе являются GPIO и pinctrl. Без них большинство устройств на плате будут работать неверно или вообще не работать. Как относительно недавно выяснилось задекларированный ранее в ванильных ядрах GPIO драйвер в принципе был неработоспособным, а pinctrl и вовсе отсутствовал. Необходимость наличия этих драйверов вызвана использованием некоторых конктактных площадок (pad'ов) в разных режимах для контроллеров других устройств и шин.



Драйверы последовательных шин



Наконец-то обрадуются пользователи устройств, подключенных к контроллерам последовательных шин, а именно SPI и I2C. В ожидаемой новой версии будет включена поддержка этих контроллеров для Intel Atom Z34xx, помимо этого по умолчанию будут инициализироваться расширители GPIO (PCAL9555a), установленные на плату Edison-Arduino, и SPI5 получит своё специальное устройство /dev/spidev5.1 (сигнал выбора чипа 0 заведен на АЦП, а выбор чипа 1 — подключаемое пользователем устройство).



Ближе к эфиру



Помимо вышеупомянутого делается шаг на встречу к включению WiFi. На данный момент в локальном дереве карточка SDIO, bcm43340, распознаётся драйвером, хотя ведёт себя весьма нестабильно, да и сети не видит, хотя интерфейс wlan0 регистрируется.



Работа кипит



Продолжить список целей, которых я хотел бы достичь в ванильном ядре, можно следующими пунктами (план-минимум):

  • устойчивая работа PWM

  • максимально приблизиться к запуску WiFi

  • работа слота micro-SD

  • поддержка CPU C-states в драйвере intel_idle





Вливайся в процесс



Работы как для одного человека во вне рабочее время на самом деле многовато, желающие помочь принимаются с радостью!



Экспериментальное дерево исходников здесь: github.com/andy-shev/linux/commits/eds
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/305880/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Как Линус Торвальдс сделал разработку ПО свободнее

Понедельник, 18 Июля 2016 г. 18:49 (ссылка)





«Я делаю свободное ПО, потому что считаю это единственным правильным способом разработки»



Некоторые считают Линуса Торвальдса, создателя операционной системы Linux и репозитория Git, просто везучим человеком. Кому-то он, наоборот, кажется целеустремленным энтузиастом своего дела. Однако никто не будет спорить с тем, что благодаря исключительной одаренности Торвальдса появилась операционная система, которая распространилась по всему миру.



Более того, принципиально важным для ее создателя было бесплатное использование и свободное редактирование исходного кода ОС. Вокруг Linux образовалось огромное opensource-сообщество, благодаря которому система развивается и по сей день: постоянно появляются новые сборки и новые операционные системы на базе ядра Linux.

Условия распространения Linux были разработаны еще на начальной стадии. Linux распространяется свободно, при этом не может быть выставлена на продажу. В случае если пользователь вносил какие-то изменения или улучшения в систему, он должен был сделать их всеобщим достоянием в виде исходников.


Линус писал свою ОС, опираясь на множество свободно распространяемых по интернету инструментов. Самым важным из них был компилятор GCC, авторские права которого были оговорены в General Public License. Впоследствии, вся операционная система Linux была зарегистрирована под лицензией GPL.



«Игра» в Linux



Линус Торвальдс не думал о славе, и вообще не предполагал, что история с Linux так далеко зайдет. Он увлекался компьютерами и программированием с школьных лет и продолжал заниматься любимым делом, учась в Университете Хельсинки. Он сам часто отмечает, что программированием нужно заниматься в удовольствие. Поэтому точно так же, как в детстве, он просто «играл» в разработку Linux. Движимый сначала азартом, а позднее положительными отзывами, Торвальдс в один прекрасный момент обнаружил, что создал операционную систему.





Linux 0.01



«Никто на самом деле не создает прекрасный код с первого раза, за исключением меня, но я такой один».



Постепенно «играть» в Linux вместе с его создателем стали другие разработчики. Раскрыв все карты и выложив исходники своего детища в открытый доступ, Торвальдс в какой-то степени рисковал потерять статус ведущего разработчика в проекте. Однако он, судя по всему, догадывался, что его профессиональный уровень был значительно выше большинства разработчиков. Кроме того, далеко не все умеют работать много, качественно и при этом бесплатно. А у Линуса Торвальдса как раз была такая «уникальная» способность.



А следующая цитата иллюстрирует термин «развлечение» в представлении Торвальдса:

Итак, большинство из вас, скорее всего, будет невыносимо маяться от скуки в Рождество, и вот вам идеальное развлечение. Протестируйте 2.6.15-rc7. Все магазины будут закрыты, и на самом деле не будет лучшего занятия между поеданием пищи.


В общем-то, до того, как Линус женился на своей студентке, программирование было едва ли не единственным занятием, которым он занимался между «поеданием пищи». После женитьбы в 1996 году Торвальдс устроился на работу в калифорнийский стартап Transmeta, который разрабатывал энергоэффективные CPU. Но тем не менее, он оставался ведущим разработчиком Linux и при этом продолжал получать удовольствие.







А в 2003 году он ушел из компании, чтобы всецело сосредоточиться на разработке своей ОС. Уход стал возможен благодаря новообразованной общественной организации The Linux Foundation (в то время она называлась Open Source Development Labs), которая обеспечила Торвальдса медицинской страховкой и зарплатой.



Нечаянный успех



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



Можно также вспомнить, что подобное притягивает подобное: будучи адекватным и самокритичным профессионалом без завышенного ЧСВ, Торвальдс естественным образом «притянул» к себе тех, кто обладал схожими качествами. В какой-то момент Linux стал самым успешным opensource-проектом. А как известно, команда чаще всего добивается серьезных успехов, когда ее участники смотрят примерно в одном направлении.



Подобные результаты не могли оставить равнодушными коммерческих производителей операционных систем… и просто завистливых людей, оставшихся в стороне. Однако Линус Торвальдс не стремился перейти им дорогу или заставить кого-то завидовать. ОС Linux начала распространяться за пределами сообщества потому, что была действительно качественным продуктом. Особенно широкие возможности открылись перед ней, когда весной 1992 года хакер Орест Збровски успешно адаптировал X Window для Linux. Таким образом, у Linux появился графический интерфейс.







Git



Помимо разработки операционных систем, Торвальдса мало что интересовало. Хотя эта тема включает в себя множество аспектов, которыми можно заниматься всю жизнь. Наиболее скучными направлениями Линус считал разработку систем контроля версий и работу с базами данных. Однако, по иронии судьбы, в 2005 году он был вынужден создать свою систему управления исходным кодом.



В 2005 году Торвальдс выпустил релиз Linux 2.6.12-rc2 и заявил, что не продолжит разработку операционной системы, пока не будет замены репозитория BitKeeper, которым сообщество Linux пользовалось до 2005 года. От BitKeeper пришлось отказаться в силу разногласий с ее разработчиками по вопросам его бесплатного использования в opensource-разработке. А другие системы управления исходным кодом Торальдсу категорически не нравились.



«В результате, я решил, что сам за две недели смогу написать что-то получше, и не ошибся».



Торвальдс создал распределенную систему управления исходным кодом Git за две недели. Он не раз говорил, что терпеть не может централизованные репозитории по типу SVN. При создании Git Линус четко представлял, что ему нужно: децентрализация, возможность независимой офлайн-разработки, удобство и надежность при ветвлении и слиянии. Более того, он создавал систему управления исходным кодом специально для нужд разработчиков ядра Linux.







Но Git была уготована «великая» судьба, чего Торвальдс, опять же, никак не ожидал. Репозиторий стал популярен за пределами Linux-сообщества. Git использовали разработчики таких продуктов, как KVM, Qt, Drupal, Puppet, Wine.



Гик с характером



На волне популярности Git Линус даже выступил с докладом в Google в 2007 году. Ознакомившись с докладом, можно сделать вывод, что Торвальдс относился к себе и сложившейся ситуации с достаточной долей иронии и самокритики:

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


Еще в детстве Линус Торвальдс был застенчивым и малообщительным человеком. В школе он считался типичным «ботаником», что вполне соответствовало его внешности (щуплый и низкорослый) и увлечениям. Он считал себя «некрасивым» – в том числе, из-за большого носа.



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



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







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


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

Я запустил проект, разработал архитектуру и начальный код, на протяжении последних полутора лет его поддерживает гораздо более славный парень, японец Junio Hamano, и именно он сделал Git более доступным для простых смертных. Ранние версии Git действительно требовали некоторое количество «ментальных пунктов» мозгосилы. C тех пор он стал гораздо проще.



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


Не чужды Линусу Торвальдсу и такие качества, как откровенная прямота, граничащая с демонстративным неприличием. Это иллюстрирует история сотрудничества с компанией NVidia в 2012 году.



Одна из студенток вуза попросила создателя Linux прокомментировать отношения opensource-сообщества с одним из крупнейших в мире разработчиков графических ускорителей и процессоров – NVidia.



Линус Торвальдс заявил, что NVidia является одной из худших компаний, с которыми ему приходилось иметь дело. По его словам, представители NVidia совершенно не имеют желания сотрудничать с сообществом разработчиков Linux и продолжает держать закрытым код своих графических драйверов для Linux.



Завершая свой ответ, Линус Торвальдс подытожил вышесказанное в отношении NVidia, сделал неприличный жест рукой на камеру и заявил: «NVidia, fuck you!»







Ценности, которые отстаивал (может быть, порой чересчур демонстративно) Линус Торвальдс, изменили представление о том, каким может быть opensource-сообщество. Его пример вдохновил, да и сейчас продолжает вдохновлять, «на подвиги» других разработчиков.



20 апреля 2012 года Линус Торвальдс (вместе с японским медиком Синъей Яманакой) стал лауреатом премии «Технология тысячелетия» (Финляндия).



В 2014 году Линус Торвальдс получил награду Computer Pioneer от организации IEEE Computer Society.
Original source: habrahabr.ru.

https://habrahabr.ru/post/305870/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Как подключиться к серверу по RDP c Windows, Mac OS, iPhone, iPad, Android, Ubuntu или Debian (Linux ОС)

Четверг, 14 Июля 2016 г. 15:35 (ссылка)

Все сервера, создаваемые Windows сервера на UltraVDS по умолчанию сразу доступны для подключения по стандартному протоколу RDP (Remote Desktop Protocol) – обычное «Подключение к удалённому рабочему столу» в русскоязычных редакциях Windows.



В данной статье будет описано как подключиться к только что созданному виртуальному серверу на UltraVDS с различных устройств (операционных систем). Если вам требуется какой-либо другой способ подключения (RAdmin, TeamViewer и т.д.) после успешного подключения по RDP, вы сможете его настроить так же, как и любое другое программное обеспечение.



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







Подключение к виртуальному серверу с десктопной версии Windows (версии XP, 7, 8, 8.1, 10)



При использовании стандартной операционной системы Windows для подключения к серверу необходимо открыть следующий путь:

Пуск -> Программы -> Стандартные -> Подключение к удалённому рабочему столу
Либо просто нажмите комбинацию клавиш Win+R и в открывшемся окне наберите mstsc







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

IP-адрес вашего сервера указан возле вашего сервера в личном кабинете в разделе «Мои сервера».







После ввода IP-адреса сервера нажмите кнопку «Подключить» и вы увидите окно с полями авторизации. Здесь нужно выходить под новым пользователем:







При создании каждого нового сервера система в автоматическом режиме генерирует случайный пароль пользователя Administrator. Этот пароль отображается также в личном кабинете возле вашего сервера:







В некоторых редакциях Windows есть странность: если пароль от сервера скопировать и вставить в поле авторизации перед подключением, то при попытке подключения ничего не произойдёт, и RDP-клиент снова покажет окно авторизации как будто учётные данные были введены некорректно. В таком случае необходимо ввести пароль вручную (большие буквы большими, маленькие – маленькими, в английской раскладке клавиатуры).



Подключение к удалённому рабочему столу – очень удобная вещь, с её помощью можно переносить файлы с компьютера на сервер и обратно просто копируя и вставляя их, тоже самое с текстом в буфере обмена. Также можно с вашего компьютера, передать на сервер любые включенные в него USB-устройства и сетевые принтеры/сканнеры. Для этого при первом подключении к серверу выберите «Показать параметры» в левом нижнем углу.







В открывшемся окне перейдите на вкладку «Локальные ресурсы» и выберите требуемые вам параметры:







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







Отметьте здесь галочкой поле «Больше не выводить запрос о подключениях к этому компьютеру» и нажмите «Да».








Подключение к VDS серверу с Mac OS



Для Mac OS компания Microsoft выпускает официальный RDP-клиент, который стабильно работает при подключении к любым версиям ОС Windows.

Скачать его можно с iTunes здесь: https://itunes.apple.com/gb/app/id715768417



Интерфейс программы простой и интуитивно понятный. Перед началом работы необходимо настроить параметры подключения. Для этого создаём новое:





В окне настроек соединения указываем произвольное название, например, «Сервер на UltraVDS», IP-адрес созданного сервера и данные для авторизации (логин Administrator и назначенный серверу в автоматическом режиме пароль) – эти данные отображаются в вашем личном кабинете.



После выхода из окна настроек всё сохранится автоматически и в списке подключений вы увидите новое созданное:







Кликните на него дважды мышкой, и вы подключитесь к вашему серверу.

При подключении к серверу вы можете увидеть информацию о недоверенном сертификате безопасности. Почему возникает такое уведомление и что оно означает этого описано выше.











Добавив самоподписанный сертификат вашего сервера в доверенные или просто приняв его единожды, вы увидите рабочий стол Windows вашего виртуального сервера.












Подключение к VPS серверу со смартфона или планшета на iOS (с iPhone или iPad)



Перед подключением к серверу необходимо скачать с Apple Store приложение Microsoft Remote Desktop (это официальный RDP-клиент от Microsoft):

https://itunes.apple.com/ru/app/id714464092







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







В окне создания нового подключения необходимо указать IP-адрес вашего виртуального сервера и данные для авторизации, которые отображаются в вашем личном кабинете (подробнее о том, где они указано выше).







При подключении к серверу вы можете увидеть информацию о недоверенном сертификате безопасности. Причина этого описана выше.

Выберите «Больше не спрашивать для этого ПК» и нажмите «Принять».





Если авторизационные данные и IP-адрес сервера были введены без ошибок, вы успешно подключитесь к вашему серверу.












Подключение к виртуальному серверу со смартфона или планшета на Android



Прежде всего вам необходимо скачать с Google Play и установить программу Microsoft Remote Desktop (это официальный RDP-клиент от Microsoft):

https://play.google.com/store/apps/details?id=com.microsoft.rdc.android&hl=ru







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







В окне создания нового подключения необходимо указать IP-адрес созданного VDS сервера и данные для авторизации (где их взять описано чуть выше).







При подключении к серверу вы можете увидеть информацию о недоверенном сертификате безопасности. Причина этого описана выше.

Выберите галочкой «Don’t ask me again for connections to this computer» и нажмите «Connect».







Если авторизационные данные и IP-адрес сервера были введены без ошибок, вы успешно подключитесь к вашему серверу.












Подключение к серверу по RDP из Ubuntu



RDP – это закрытый протокол компании Microsoft, она же в свою очередь не выпускает RDP-клиентов для операционных систем семейства Linux.

Однако всё же есть различные рабочие версии от тех или иных производителей.

Мы рекомендуем использовать клиент Remmina



Для пользователей Ubuntu есть специальный репозиторий с различными пакетами приложение, в числе которых есть Remmina и RDP.

Установка производится в 3 простые команды, которые вводятся по очереди в Терминале:



Для установки пакета Remmina
sudo apt-add-repository ppa:remmina-ppa-team/remmina-next


Устанавливаем обновления
sudo apt-get update


Устанавливаем плагин протокола RDP
sudo apt-get install remmina remmina-plugin-rdp libfreerdp-plugins-standard


Если вы до этого уже устанавливали или запускали существующую версию Remmina, то её необходимо перезапустить. Сделать это можно перехагружкой компьютера, либо выполнением следующей команды в том же терминале:

sudo killall remmina
Если процесс запущен не был, то появится сообщение об ошибке: процесс не найден, что тоже нас устраивает.



Открываем меню поиска и находим там свежеустановленный пакет Remmina







Нажимаем на добавление нового подключения и заполняем поля данными для подключения и авторизации к вашему серверу (где находятся данные для подключения к именно вашему серверу описано выше):







После сохранения ваш сервер будет всегда доступен в списке подключений для быстрого доступа. Для подключения к нему дважды кликните мышкой по строчке вашего сервера.







При первом подключении к серверу вы можете увидеть информацию о недоверенном сертификате безопасности. Причина этого описана выше. Просто нажмите «ОК» и вы увидите рабочий стол вашего сервера.
















Подключение к удаленному рабочему столу (RDP) из Debian



RDP (подключение к удалённому рабочему столу) – это закрытый протокол компании Microsoft, они же в свою очередь не выпускает RDP-клиентов для операционных систем семейства Linux.

Но всё же есть различные рабочие версии от тех или иных компаний-разработчиков.

Мы рекомендуем использовать RDP-клиент Remmina



Для установки приложения Remmina и плагина RDP к нему необходимо открыть менеджер установки пакетов:







Здесь в строке поиска вводим «Remmina» и выделяем все результаты для установки:







Установка занимает буквально 3-4 секунды, после чего сразу можно пользоваться приложением.

Находим его в главном меню и запускаем:







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







В открывшемся окне необходимо задать корректные параметры RDP подключения и данные для авторизации (указаны в личном кабинете UltraVDS):







После сохранения ваш сервер будет всегда доступен в списке подключений для быстрого доступа. Для подключения к нему просто дважды кликните мышкой по строчке вашего сервера.







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












Что делать если при попытке подключения с ОС семейства Linux сразу возникает ошибка?



По умолчанию на всех создаваемых на UltraVDS серверах разрешено только подключение по RDP с компьютеров (клиентов), на которых работает проверка подлинности на уровне сети. Некоторые RDP клиенты под Linux эту проверку подлинности могут не поддерживать. В таком случае перед подключением к серверу по RDP необходимо это требование отменить на самом VDS сервере.



На UltraVDS реализована возможность аварийного доступа к серверу в случае если вы не можете к нему подключиться, именно ею мы и воспользуемся для отключения требования обязательной проверки подлинности. Для открытия аварийного режима зайдите в ваш личный кабинет на страницу «Мои сервера» и кликните на скриншот требуемого сервера







В открывшемся окне необходимо активировать возможность авторизации пользователя. Это делается нажатием комбинации клавиш Ctr+Alt+Del, но так как такая комбинация через web передана быть не может, специальная кнопка была вынесена на верхнюю панель окна:







Далее вводим пароль администратора и нажимаем Enter:







Вы увидите стандартный рабочий стол Windows. Здесь нажмите кнопку «Пуск» (Start), найдите там «Мой компьютер» (This PC) и кликните на него правой кнопкой мыши:







Выберите в меню пункт «Свойства» (Properties) для открытия окна информации о системе







В меню слева необходимо найти кнопку управления параметрами удалённого рабочего стола (Remote settings).







Последним шагом снимаем флажок с параметра «Allow connections only from…» и нажимаем «ОК».
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/305672/

Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<linux - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda