LINUX.ORG.RU

Сообщения si0

 

Ищу VPS с поддержкой вложенной виртуализации и почасовой оплатой

Посоветуйте VPS с поддержкой вложенной виртуализации и почасовой оплатой, пожалуйста. Я - физическое лицо из РФ, поэтому Google Cloud не подходит.

Производительность не критична, качество сети и толщина канала тоже, SLA никаких не требуется. Ищу условные 4 vCPU, 8GB RAM за менее чем $0.1/час. Инстансы все будут короткоживущие, до 8 часов, поминутная оплата была бы тоже кстати.

Для разовых экспериментов я привык запускать VPS от Scaleway и уже внутри них поднимать несколько виртуальных машин через Libvirt. Периодически на Scaleway сталкивался с полным фризом гостя на ранних этапах загрузки (большое потребление CPU процессом qemu, нулевая активность дисков и сети, в VNC просто стоп-кадр без реакции на клавиши). Раньше я списывал это на неудачный диск, убивал сервер и просто создавал новый. Сейчас эти фризы наблюдаются на 100% инстансов, может, это какое-нибудь ложноположительное срабатывание защиты от майнеров :-) Банальное vagrant init && vargant up стало невозможно выполнить.

Ищу альтернативы.

 , ,

si0 ()

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

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

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

Хочется сказать фреймворку: «Положи на DOM 4 кнопки, 2 списка, затем еще 3 кнопки. И пусть оно выглядит не совсем отвратительно.» Для каждого из элементов DOM прописать простенькую логику и повесить на события: сходи на сервер с таким запросом, из ответа возьми данные и замени контент там-то. Часть данных о состоянии для каждого элемента желательно хранить за пределами DOM, они нужны не пользователю, а чтобы составить правильное обращение к бэкэнду. Желательно иметь заготовки для чисто клиентских операций: сортировать список, фильтровать список и т.п.

На моем уровне знаний я бы сгенерировал DOM на стороне сервера, обмазал бы элементы коллбэками и для красоты взял бы CSS от Bootstrap. Но (а) это долго и скучно, (б) в результате получится хрупко и плохо читаемо, (в) я никуда не спешу и поэтому хочу сделать хорошо.

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

 , ,

si0 ()

Несоразмерно большой фантомный трафик на неиспользуемом сетевом интерфейсе

Обнаружил странное пока искал причину, по которой ansible обрабатывал плейбук чересчур медленно (28 минут вместо обычных трех). Дело оказалось не в хосте, к которому применялся плейбук, а в ноутбуке, где я запускал ansible.

На сетевом интерфейсе, который вообще не используется (Ethernet кабель не воткнут) с невозможно большой скоростью генерируется «трафик», который полностью состоит из ошибок. Генерируется более 1 Гбит/с ошибок, интерфейс гигабитный.

Вот красивые картинки: «трафик», ошибки

После перезагрузки не повторилось. Система не слишком примечательная: Debian 10, из интересного установлены Docker и libvirt. Правила файрволла простейшие из разряда «закрыть все порты, кроме ssh».

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

 , ,

si0 ()

Libvirt говорит, что KVM не поддерживается, хотя qemu-kvm работает

Узнал, что CirrusCI предлагает для публичных репозиториев CI с вложенной виртуализацией - пытаюсь применить.

Libvirt упорно настаивает на том, что полная виртуализация не поддерживается, хотя все известные мне проверки, и даже запуск qemu-kvm напрямую сигнализируют об обратном. Почти уверен, что проблема в том, как я готовлю хост-систему, т.к. другие люди успешно пользуются виртуализацией CirrusCI для других целей (эмуляция Android, тестирование redox).

В качестве хоста у меня Debian 10 из slim-образа со следующим набором дополнительных пакетов (все установлены с –no-install-recommends):

bridge-utils  libguestfs-tools       python3-dev
coreutils     libosinfo-bin          python3-venv
cpu-checker   libssl-dev             qemu-kvm
curl          libvirt-clients        qemu-kvm
gcc           libvirt-daemon         qemu-utils
gpg           libvirt-daemon-system  systemd
gpg-agent     linux-image-amd64      vagrant
iproute2      make                   vagrant-libvirt
kmod          procps                 virt-goodies
libc-dev      python3                virtinst
libffi-dev

Базовый образ, конфигурация CI

Подскажите, что я могу упускать, и почему libvirt может не видеть kvm при таких условиях?

Ошибка libvirt

Error while creating domain: Error saving the server: Call to virDomainDefineXML failed: invalid argument: could not find capabilities for domaintype=kvm

virsh capabilities показывает только <domain type='qemu'/>

Демонстрация непоследовательности поведения

Любые инструменты, базирующиеся на libvirt, не могут работать с KVM:

$ virt-install --import --virt-type kvm --name debian10-vm --memory 512 --disk path=/debian.qcow2,format=qcow2 --os-variant debian10 --noautoconsole || echo "Exit code: $?"
ERROR    Host does not support domain type kvm for virtualization type 'hvm' arch 'x86_64'
Exit code: 1

А напрямую qemu-kvm работает. Kernel panic далее к делу не относится, образ строился наскоро для демонстрационных целей - главное, что виртуальная машина стартовала.

$ kvm -nographic /debian.qcow2
cSeaBIOS (version 1.12.0-1)
iPXE (http://ipxe.org) 00:03.0 C980 PCI2.10 PnP PMM+07F900F0+07ED00F0 C980
Press Ctrl-B to configure iPXE (PCI 00:03.0)...

Booting from Hard Disk...
GNU GRUB  version 2.02+dfsg1-20

Полный лог CI

Диагностика

  • lsmod показывает kvm и kvm_intel
  • cat /proc/cpuinfo - содержит флаг vmx
  • lscpu - содержит Virtualization type: full
  • kvm-ok - показывает ОК
  • ls -l /dev/kvm - в наличии, права root:rdma
  • ls -l /var/run/libvirt - сокеты в наличии, права root:root
  • whoami - root
  • groups $(whoami) - root
  • systemctl status - systemd не запущен, libvirtd запущен средствами CI платформы
  • virt-host-validate - все тесты в норме, кроме IOMMU - не должно быть критично

Полные выхлопы можно увидеть в логе CI, секция «kvm_before».

 , , ,

si0 ()

Формат записи схемы структурированных данных

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

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

По функциональности мне бы хватило и определить схему прямо в коде, но я же с нуля делаю, могу прикрутить JSON Schema, могу любой другой формат. Что сейчас наиболее распространено и считается best practice?

 ,

si0 ()

.NET core и чужие DLL

Услышал на этом форуме про .NET Core для Linux и заинтересовался. Оно может запустить/импортировать существующие DLL, написанные для .NET на Windows?

Есть очень интересная библиотека, которую мне бы хотелось использовать в своей утилите. Библиотека написана Microsoft, распространяется только в бинарном виде в комплекте с их продуктами, в том числе и с SDK, лицензия которого позволяет предполагаемое использование.

MSYS-овский file говорит про библиотеку следующее:

PE32 executable (DLL) (console) Intel 80386 Mono/.Net assembly, for MS Windows

C .NET я не знаком от слова совсем, но библиотека незаменимая, так что научусь. По сути, вся внешняя утилита, о которой шла речь выше, будет просто cli-оберткой для пары функций этой библиотеки. Если в итоге утилита будет работать только на Windows, она все равно будет полезна мне. Но в качестве вишенки на торте хотелось бы ее запускать и на Linux, да и полезность утилиты в таком случае возрастет многократно.

Что скажете, есть шансы?

 ,

si0 ()

Автодополнение недописанного пути в bash как в zsh

Давно хотел перетащить в bash возможность разворачивать недописанные пути, как в zsh, т.е. cd /u/l/b<Tab> разворачивать в cd /usr/local/bin. Но мое гугл-фу здесь меня не выручало, а может, никто действительно раньше такого не делал.

Поэтому я написал нужную функцию для автодополнения сам. Здесь можно увидеть фичу в действии, а здесь получить код для ~/.bashrc

Надеюсь, кому-нибудь покажется полезным.

 , , ,

si0 ()

Git GUI клиент для не-разработчика

Существует ли GUI клиент к git для не-разработчиков, и вообще для людей, не знакомых ни с какими VCS ранее? Можно 95% функций прятать под капотом, главное, чтобы версионирование изменений (новый коммит, откат коммита) делались интуитивно. И нужен русский интерфейс.

Пока смотрел:

  • GitHub Desktop - все хорошо, но нет локализации
  • Sourcetree - ужасно перегруженный UI, до вопроса локализации даже не добрался
  • TortoiseGit - нестандартный подход расширения Проводника показался излишне путанным даже мне, знакомому с cli клиентом

 ,

si0 ()

Тестирование Certbot - посоветуйте бесплатный VPS или другой метод

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

На этот раз я собрался решить проблему раз и навсегда. Написал Ansible playbook, насколько это возможно обкатал ее на виртуальной машине, разворачивая проект поверх свежеустановленной ОС.

Сейчас столкнулся с тем, что не знаю, как оттестировать получение сертификата Let's Encrypt (Certbot), ведь даже для их --staging версии требуется отклик сервера по правильному URL (challenge). Можно, конечно, отложить этот этап непосредственно до момента переезда, и решать проблемы по мере их возникновения, но хочется «заранее соломки подстелить».

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

Посоветуйте, где можно бесплатно или за символическую плату получить простенький VPS с Debian-ом на срок 2-5 дней? Можно с какими-нибудь ограничениями а-ля 25% аптайма в сутки.

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

 , , ,

si0 ()

Как принимать пулл-реквесты?

Растолкуйте мне, пожалуйста, как правильно вести себя человеку, опубликовавшему хобби проект под Open Source лицензией, и получившему пулл-реквест от случайного прохожего?

Я почитал много обсуждений о DCO и CLA, но так и не понял, есть ли в них необходимость для соблюдения inbound=outbound принципа? Как правильно подтвердить (и нужно ли подтверждать) понимание контрибьютором того, что он отдает свои правки под Open Source лицензией?

В Apache License (v2.0) есть целый параграф про это:

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

Из чего как бы следует, что идея DCO в ней охвачена. В то же время, в GPLv3 подобных оговорок нет, да и проект Linux полностью завязан на использование DCO. Хотя, опять же, там GPLv2, которая многих современных вещей не предусматривала...

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

---

Добавлено:

В виду «вирусности» GPL можно предположить, что копия репозитория, в которой контрибьютор делал правки, может быть опубликована только под GPL, следовательно, нет и проблемы с DCO (если считать создание пулл-реквеста публикацией). Как-то так.

 ,

si0 ()

Заготовка/фреймворк/платформа для создания CRUD приложений

Стало мне интересно, а существует ли в сфере веб-приложений что-то подобное платформе 1С? Не в смысле бухгалтерского учета и адаптации под чудесатость российского законодательства, а в контексте платформы. Этакая базовая среда для того, чтобы с минимальными трудозатратами набросать CRUD приложение.

На примере 1С: платформа из коробки умеет оперировать сущностями «Документ», «Справочник» и т.п. (знает, как их хранить в БД), при этом для всех сущностей по умолчанию генерируются наборы форм для просмотра, создания-изменения, вывода в списке и т.п. Разработчику прикладного решения остается набросать типы документов, наладить необходимую логику, сопутствующую стандартным событиям создания-просмотра-изменения-удаления, и, при желании, отредактировать автосгенерированные формы.

Интересуюсь для домашнего пользования: периодически приходят в голову идеи а-ля набросать каталог книг на полках, но писать под это дело приложение с нуля излишне трудоемко. Что скажете?

 , ,

si0 ()

Декларативное управление конфирурацией (локалхоста)

Ищется инструмент для декларативного управления конфигурациями. Что-то для личного пользования, с минимальными порогом вхождения - применяться будет к двум локалхостам и одному vps, дирижировать сотнями серверов не предполагается.

Хочется описательно задавать желаемое состояние системы (пакеты, конфиги, сервисы и т.п), и потом иметь возможность быстро его воспроизвести, на этой или другой машине. Судя по страничке в Википедии, я ищу что-то похожее на NixOS, но в рамках более мейнстримных дистрибутивов.

Из нагугленного понравились ansible playbooks, но смущает, что декларативность там оставлена на совести автора плейбука - если по неумению начать писать императивно аналог обычного скрипта, ansible ругаться не станет.

Опыта в использовании подобных инструментов ноль, соответственно, не могу оценить, какой лучше подойдёт к задаче. Что посоветуете? Что нравится/используете?

 , , ,

si0 ()

Буквы набегают друг на друга в Chrome

Расстановка символов при рендеринге шрифтов в Chrome вызывает недоумение - расстояния между буквами получаются довольно неравномерными, и некоторые буквосочетания откровенно «слипаются».

На скриншоте пример рендеринга одного и того же текста в Firefox и Chrome, обратите внимание на сочетания «fu», «ti». Это обычный Arial в README на гитхабе.

Раньше я подобного не замечал, так что предполагаю, это появилось после обновлений в последние несколько месяцев. Chrome 64, Debian Stable.

Гугл подсказал только старый плач про DirectWrite vs GDI, но это было совсем давно, в 2016 году.

Есть идеи?

 ,

si0 ()

Заставить Qt5 мимикрировать под GTK тему

Довольно давно я не пользовался линуксом на десктопе, за это время Qt5 успела стать мейнстримом. Как заставить ее использовать тему, максимально похожую на текущую тему GTK3 или GTK2?

Быстро нагугленные варианты с переменной окружения QT_STYLE_OVERRIDE и правкой ~/.config/Trolltech.conf не принесли видимого результата. Также упоминаемая в гугле qt5ct отсутствует в текущем стабильном Debian-e, что отталкивает от ее использования.

А после применения QT_STYLE_OVERRIDE=GTK3 smplayer с темой Numix вообще превращается в тыкву: https://i.imgur.com/f1oWTnD.png

 , ,

si0 ()

Ищу генератор статического сайта для wiki (с историей изменения страниц)

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

Ищу генератор статического сайта для wiki, который бы позволял писать тексты в Markdown или reStructured Text и генерировал бы историю изменения страниц, основываясь на истории md-файла в git репозитории.

Нашел пока Gollum и ikiwiki из похожего. Но Gollum - это веб-приложение, а не генератор статики, а ikiwiki не умеет историю страниц, и полагается в этом деле на сторонние веб-приложения.

Есть идеи?

 , ,

si0 ()

Openshift 2 End of Life 30.09.2017 - куда мигрировать?

Сегодня Red Hat порадовала своих пользователей обещаниями скорой кончины Openshift v2: https://blog.openshift.com/migrate-to-v3-v2-eol/

Предлагаю обсудить направления миграции для хобби-проектов (и не только).

Сам я пока не вижу достойных альтернатив их бесплатному предложению. У Openshift v3 бесплатный план очень похож на тот, что после обновления предлагает Heroku - то есть абсолютно непригодный ни для чего, кроме ознакомления с платформой. Есть pythonanywhere для проектов на Python-e, но у него к бесплатному аккаунту не привязать CNAME. Остальные известные мне PaaS тоже прикрыли лавочку с бесплатными аккаунтами, когда их названия стали более-менее узнаваемыми.

Что вы думаете?

 , ,

si0 ()

Неожиданная реклама на моем сайте

Есть у меня веб-приложение, хобби-проект, так сказать. Хостится на Openshift v2, доменное имя от freenom.com в зоне .ml - и то, и другое бесплатное.

Вчера, зайдя на этот сайт с мобильного телефона, я был крайне удивлён полноэкранной рекламой Бургер-кинга, которая всплыла поверх сайта (или вместо него). При переходе по страницам этот поп-ап мне встречался примерно в 15% случаев. А когда я добрался до компьютера, уже не смог воспроизвести. И с мобильного сегодня не могу.

Что это было?

Мои версии, но убыванию вероятности:

  • «ненавязчивая» монетизация услуг freenom (наиболее вероятный вариант, конторка серенькая)
  • то же, но от Openshift (маловероятно, у Red Hat понятная бизнес-модель, не включающая в себя рекламу)
  • жадность Мегафона (хотя, в таком случае это заметили бы другие пользователи и уже бы подняли шум в интернетах)
  • взлом веб-сервера (маловероятно, я там ничего не велосипедил, а стандартный конфиг Apache + mod_wsgi от Openshift настолько проверен временем, что не должен быть очевидно дырявым. Да и не исчезло бы оно на следующий день)
  • взлом моего веб-приложения (маловероятно, по принципу неуловимого Джо. Приложение самописное: целенаправленно его ломать нерентабельно, а заготовки не должны работать по причине самописности)

Что думаете? Если среди местных жителей есть пользователи freenom, какие у вас от него впечатления?

 , ,

si0 ()

Использование qmark для имени поля таблицы

Знакомлюсь с sqlite3 в python и не совсем понимаю, предусмотрено ли DB API использование знака вопроса для подстановки имени поля при составлении запроса? В документации подобного использования я не видел, равно как и запрета его.

Пример:

execute("UPDATE books SET name=? WHERE id=?", ("New Name", 1))
- работает
execute("UPDATE books SET ?=? WHERE id=?", ("name", "New Name", 1))
- не работает

Тестовый скрипт полностью: https://gist.github.com/anonymous/763eb2d58e1765235ae5aed5f616f661

 , ,

si0 ()

Помогите найти книгу про открытие/закрытие врат в ад

Действие происходит в классическом кинговском маленьком городе в США. Время действия - XX век, автомобили присутствуют, мобильных телефонов нет.

Каждый год (или десять лет) в этот город съезжается около дюжины людей (и не совсем людей), чтобы открыть или помешать открыть врата в потусторонний мир. Адом этот мир, насколько я помню, ни разу не называют, но ничего «хорошего» от открытия врат ждать не приходится.

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

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

Мне почему-то помнится, что автором был Брэдбери или кто-то другой из мэтров фантастики.

Кто узнал?

 ,

si0 ()

Выбор недорогого Wi-Fi роутера на роль бытовой техники

Прошу рекомендации по выбору роутера для далёких от информационных технологий пользователей.

Пользователей будет 2-3, одновременно подключенных устройств 5-6. Сетевая активность ожидается довольно низкая, преимущественно со внешним миром (в основном, входящий трафик, объёмы небольшие, но канал быстрый). Трафик внутри локальной сети еле заметный, на уровне статистической погрешности.

Критерии (по мере убывания сложности):

  • Цена до 2 тыс.руб. Превышение планки допустимо, но нежелательно. Если бы не это, было бы существенно проще, знаю.
  • Вменяемая оригинальная прошивка. Себе бы я купил какое-нибудь творение, у которого неплохие ТТХ и на которое точно ставится OpenWRT, но здесь такой вариант не годится. Роутер должны извлечь из коробки, пригласить мальчика-от-провайдера, который по распечатке со скриншотами ведёт логин-пароль куда надо, и всё. После этого устройство кладётся на шкаф и собирает пыль. Никаких ресетов раз в неделю или лазаний в веб-интерфейс, чтобы посмотреть, что же он хочет сказать, быть не должно.
  • 4 LAN-порта. Постоянно занятых будет 2-3, поэтому это важно, но совсем не сложно, т.к. это практически стандарт.
  • Wi-Fi 802.11n. 5 ГГц совсем не принципиально, мощности долно хватать на двухкомнатную квартиру в многоэтажке. Возможность выбора канала и мощности передатчика крайне приветствуется
  • Процессор, способный пережевать редкие пики активности на вход - не более 100Мбит суммарно во всех направлениях.

Судя по формальным признакам и данным я.маркета, требованиям удовлетворяют многие D-Linkи и TP-Linkи, пригодные к использованию только с альтернативными прошивками, а также младшие модели Asus, Netgear и Zyxel Keenetic, с которыми я совсем не знаком. Жду ваших рекомендаций и предложений.

 , ,

si0 ()

RSS подписка на новые темы