• Запускает ли service в gitlab ci сам сервис или только делает ссылку на него?

    chemtech
    @chemtech Автор вопроса
    Линуксойд, DevOps
    Что интересно что при таком конфиге.
    Неработало если использовался Shell runner.
    Заработало когда запустил в docker

    it_unit_test:
      stage: test
      image: "$build_img"
      dependencies:
        - build
      services:
        - name: "$pgsql_img"
          alias: db
      script:
        - docker ps     || echo $?
        - ping -c 1 db  || echo $?
        - mvn test -P intTests
      tags:
        - docker-only


    Решилось
    Вывод вот такой.

    $ ping -c 1 db  || echo $?
    /bin/bash: line 93: docker: command not found
    PING db (XXXXXX) 56(84) bytes of data.
    64 bytes from XXXXX (XXXXX): icmp_seq=1 ttl=64 time=0.192 ms
    Ответ написан
    Комментировать
  • Что на сегодня лучше для нового проекта, GitLab vs GitHub vs bitbucket?

    @svazist
    Fullstack developer
    Однозначно Gitlab CI - код, пайплайны, docker registry в одном месте. Раннеры разных типов.
    Можно использовать shared, с собственными docker образами, или добавить в проект хоть свою dev машину, которая станет выделенным раннером для проекта/группы проектов.

    С раннерами так же плюс, в том что они под разные платформы (Linux/Win) сборку, к примеру, C# проекта можно организовать, или Selenium тесты под IE запустить.

    Если работаете и деплоите в kubernates, то при использовании Rancher 2, там есть пайплайны, через вебхуки подключается к репозиторию, и ранчер поднимает Jenkins, registry довольно удобная история сборки и деплоя "по быстрому"
    Ответ написан
    Комментировать
  • Что на сегодня лучше для нового проекта, GitLab vs GitHub vs bitbucket?

    @dimuska139
    Backend developer
    Юзаю GitLab, потому что автоматический деплой и запуск тестов при пуше в ту или иную ветку делать удобней всего. Также удобно, что есть Registry, в котором можно хранить собранные Docker-образы. То есть Dockerhub не нужен. При том, что на Dockerhub можно, если не ошибаюсь, хранить только один приватный образ, а в GitLab-registry - сколько хочешь. Делать сборку образов можно тоже прямо в GitLab.

    Upd: "делать удобней всего" - ЛИЧНО МНЕ (я не devops, а просто backend-разраб).
    Ответ написан
    Комментировать
  • Python свой модуль?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Стоит научиться отличать классы от объектов, это базовые знания. Либо создайте объект своего класса прежде, чем обращаться к его методам

    api = MainApi()
    api.verifyUser(email, password)

    либо сделайте метод verifyUser методом класса

    class MainApi(object):
        server = 'http://127.0.0.1:8000'
    
        @classmethod
        def verifyUser(cls, email, password):
            #тут параметры и тд
            r = requests.get(cls.server + '/api/login/verifyuser/', params=req_params)
            return r.json()
    Ответ написан
    Комментировать
  • Как запустить sh скрипты в Linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Нужно просто осознать, что в Linux не существует ассоциаций файлов по расширениям.
    Расширение для Линукса - просто часть файла после последней точки, система никаких действий к этому не привязывает.

    Поэтому единственный способ делать .sh файлы исполняемыми - ставить на них флаг executable через
    chmod +x file.sh

    Другой вариант - запускать сам баш с передачей ему файла как аргумент (потому что бинарник bash-а уже с executable).
    bash file.sh
    Ответ написан
    Комментировать
  • Для чего нужен второй цикл в алгоритме?

    @bkosun
    Алгоритм состоит из повторяющихся проходов по сортируемому массиву. За каждый проход элементы последовательно сравниваются попарно и, если порядок в паре неверный, выполняется обмен элементов. Проходы по массиву повторяются N-1 раз или до тех пор, пока на очередном проходе не окажется, что обмены больше не нужны, что означает — массив отсортирован. При каждом проходе алгоритма по внутреннему циклу, очередной наибольший элемент массива ставится на своё место в конце массива рядом с предыдущим «наибольшим элементом», а наименьший элемент перемещается на одну позицию к началу массива («всплывает» до нужной позиции, как пузырёк в воде — отсюда и название алгоритма).


    https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D...
    Ответ написан
    Комментировать
  • Почему Python + imap выдаёт ошибку "'ascii' codec can't encode characters" при поиске по теме письма на русском языке?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что по стандарту заголовки письма (From, To, Subject, ...) могут содержать только печатные символы из ASCII-128, то есть с кодами от 0x20 до 0x7F.
    Ответ написан
    2 комментария
  • Как промонтировать диск в папку /var/www/domain?

    @Reversaidx
    Привет, тебе нужно изменить файл /etc/fstab, добавить строку вида
    /dev/sda1 /var/www/domain.ru ext4 errors=remount-ro 0 0
    Где /dev/sda1 -н звание нового диска
    ext4 - тип файловой системы, после того как изменил, напиши команду mount -a чтобы применить
    Ответ написан
    4 комментария
  • Какие существуют объективные недостатки у systemd?

    @metajiji
    Интересно наблюдать как прямо сейчас Хейтеры в яндекс-кликхаус делают велосипед на init+sed, чтобы симулировать 1 строчку Restart:)
    Только вдумайтесь в происходящее. Запустил сервис, в кроне добавилась задача, если сервис упал - запусти. Если сервис остановили скриптом, крон таска убирается. Слов нет, только эмоции. А вы про какие-то glibc беспокоитесь, там у них пакет в зависимостях не тянет за собой which, а в скриптах использует ы? Знакомо ага? Да молитесь на systemd, наконец навели порядок в этом безобразии всяких upstart, SysV, udev и кучи другого добра! А ещё кто не знал, но полюбас прогревал себе пукан, когда в fstab прописана фигня или недоступный nfs, сервер вообще не включается! И нужно душевно так провести время, хорошо, если есть ipmi, то вопрос 5 минут, а если нет? Так вот к чему я, есть .mount юниты это же каеф + зависимость кинул, чтобы сервис без шары не взлетал и падал вслед за шарой. Сервер запустится, шара нет, сервис тоже не поднимется, а зайти по ssh можно и главное починить легко и оперативно. И это только малая часть боли которую systemd реально прямо сейчас решает без плясок и крови из глаз.
    Ответ написан
  • Какие существуют объективные недостатки у systemd?

    @MechanID
    Админ хостинг провайдера
    На самом деле sytemd был шагом вперед и избавил от зоопарка каких угодно скриптов в /etc/init.d/ но:
    1 все помнят как насаждался и как "хорошо" работает pulseaudio
    2 внезапная имплементация systemd принесла множество неразберихи и связанных проблем.
    Маинтейнеры пакетов досихпор иногда не справляются с задачей написать правильно unit file который приезжает на продакшен сервера и вызывает неудобства (особенно такие параметры как ProtectSystem=full) но тут конечно дело в мейтейнерах пакетов а не в systemd
    По сравнению с старой системой инит скриптов недостатков нет.
    Ответ написан
    1 комментарий
  • Какие существуют объективные недостатки у systemd?

    @pcdesign
    Обычно systemd-хейтеры находятся в возрасте 14-18 лет и настоящих Unix™ в глаза не видели.
    1. systemd — лучшее что случалось с init-системой дистрибутивов GNU/Linux за последние 18 лет(именно столько я работаю с *nix-like и именно за этот отрезок времени я могу отвечать)
    2. systemd — прямой аналог launchd и smf которые как раз в сертифицированных Unix™ живут.

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

    Цитата взята отсюда:
    https://habr.com/ru/company/southbridge/blog/31570...

    Я согласен с автором на 100%.
    Ответ написан
    1 комментарий
  • На linux есть вирусы?

    kotomyava
    @kotomyava
    Системный администратор
    Сейчас, в большинстве случаев, заражение происходит с помощью действий пользователя, а не само по себе. Вирусов под Linux существенно меньше, конечно, и вероятность на такой нарваться, соответственно, тоже меньше, но если у вас существует такая проблема под Windows, то она будет потенциально и на Linux. Лучше научиться безопаснее пользоваться компом, в первую очередь. =)
    Ответ написан
    Комментировать
  • IDE для Python и C/ C++?

    netpastor
    @netpastor
    Python developer
    Одна среда на 3 языка - не понятно зачем - что экономим - почему просто не взять https://www.jetbrains.com/pycharm для одного и https://www.jetbrains.com/clion/ для другого?
    Ответ написан
    2 комментария
  • В чем суть serverless подхода?

    @avkvl
    Serverless - это очень урезанный docker контейнер со своим API и временем жизни до 5 минут. При этом 1 контейнер обслуживает 1 запрос. В течении 5 минут после исполнения контейнер остается "горячим", т.е. содержит все данные после прошлого исполнения. Соответственно, если у вас память течет, то под нагрузкой память освобождаться не будет, т.к. контейнеры переиспользуются.

    Кроме того, если вы хотите обслуживать внешние запросы, то нужно еще использовать прокладку в виде api gateway (за это тоже нужно платить).

    Мороки с настройками тоже свои есть. Мониторить лямбды тоже задача со своими нюансами. Если у вас просто сайт/api и более-менее регулярная загрузка есть, то я бы serverless не советовал. Elastic beanstalk на самом деле удобнее и практичнее. А вот для задач вроде selenium тестирования, когда нужно 1000 тестов параллельно запустить и потом до следующего билда вам мощности не нужны - serverless это очень хорошо.
    Ответ написан
    Комментировать
  • В чем суть serverless подхода?

    neuotq
    @neuotq
    Прокрастинация
    Начну с того, что если вы таки активный разработчик и не очень можете понять этот принцип, возможно он вам просто не нужен. И это не значит что вы плохой разработчик, просто не пересекались с таким видом проблем.
    Что касается serverless, название больше отражает не факт отсутствия сервера и работы с ним как таковым, а скорее еще меньше возни с настройкой и поддержкой серверного окружения (даже меньше чем с докером после того как все настроено и поднято). Те это следующие шаг после условных микросервисов.
    Его часто удобнее называть функция как услуга, так как де факто часто реализуется запуск именно функции по запросу.
    Если кратко описать для чего это нужно, то представим себе что у нас есть микросервис у которого затраты на содержания его постоянного аптайма как то слишком велики относительно времени работы/потребления ресурсов в живую. Да и в целом сервис выходит как то слишком микро даже для микросервиса.
    Вот тут мы и придумываем такую штуку, которая будет ОЧЕНЬ быстро(относительно старта минимальной виртуалки/образа и чего другого) запускаться, быстро делает свою маленькую работу и выключается.
    Из ключевых особенностей отмечу что функции должно быть в целом пофиг на своего состояние, она не знает изначально о предыдущем запуске и тп(те быть stateless). Все что нужно приходит в запросе.
    Ври значит если у вас есть задача, которая удовлетворяет этим условиям, можно использовать этот удобный сервис и для масштабируемости, и для экономии и для кучи других фич.
    Примеры:
    ресайз изображений.
    Генератор статистических сайтов(через админку производим обновление статистических файлов, это бывает не часто).
    Чат боты
    Разные спец информеры с определенной логикой.
    И тд и тп, что хорошо ложится в определенную относительно простую функцию с простым входом данных(или без) и простым результатом работы.
    В целом это решение не панацея, более того нужно четко понимать насколько выгодно/невыгодно переделывать на серверлесс платформы свою функцию, ведь мы точно жертвуем той же производительностью(помним что сервис не висит и не ждет нас постоянно, а пусть и очень быстро, но запускается), понижается прозрачность исполнения и усложняется отладка и прочее.
    Но в любом случае, достаточно часто плюсы перебивают минусы, популярность у этого принципа есть. люди активно пользуются, так что много шишок уже набито, в целом зрелая штука.
    А и да, насчет конкретного вашего вопроса.
    PHP AWS Lambda нативно не поддерживает, все через костыли, впрочем с почти вменяемой производительностью.
    И так как все таки AWS Lambda все же ближе к самому популярному нынче принципу serverless - функция как сервис, я не уверен что это правильная идея будет запускать атм Ларавел.
    Те мы имеем минусы: отсутствие нативной поддержки PHP и такие заточенность под что-то простое, в итоге .. ну не знаю.
    Я думаю плюшки serverless в виде нет мороки с настройкой сервера/облака можно решить многими другими сервисами. Впрочем может быть это будет не так выгодно в вашем случае, нужно исходить и рассчитывать по вашему сценарию работы вашего приложения. А потом решать, что лучше подходит.
    Ответ написан
    1 комментарий
  • Не могу понять что имел ввиду автор. "Разработка архитектуры ПО" и "высокоуровневое проектирование" синонимы или нет?

    MetaAbstract
    @MetaAbstract
    Архитектор информационных систем и баз данных. Ful
    Проектирование это процесс в результате которого получается проект системы. Уровень проектирования не важен, т к верхние уровни декомпозируются в нижние. Архитектура системы это принципиальные решения о ее устройстве. Например SPA или SSR, микросервисы, монолит или модульная система. Причем в процессе проектирования может принято решение о смене архитектуры. Что кстати и следует из определения проектирования. Короче архитектура системы это часть проекта, но выбор архитектуры определят проект. И как итог архитектура это часть высокоуровнего проектирования.
    Ответ написан
    Комментировать
  • Java проекты в IDEA - публикация на github - как реализовать?

    EreminD
    @EreminD
    Кое-что умею
    1. идете сюда - https://www.gitignore.io/
    2. пишете Java, Maven, Intellij что еще вы используете в работе
    3. Генерите файл
    4. Кладете полученный результат в корень проекта в файл ".gitignore" и коммитите его
    5. Все, теперь у вас ходят в гит только нужные файлы, а все, что генерируется локаьно и не нужно на других машинах - игнорируется гитом
    Ответ написан
    Комментировать
  • Как настроить IPSec VPN (Site-to-Site) между Mikrotik и Zyxel Zywall?

    CityCat4
    @CityCat4 Куратор тега VPN
    Внимание! Изменился адрес почты!
    Политики где? Отдельная маршрутизация - ну по крайней мере на микротике - не нужна. Микротик сам разберется куда что направить. Но естественно нужны правила файрволла, пропускающие трафик после его расшифровки.
    Именно политики увязывают вирутальные подсети и туннель.
    То есть если на пальцах, что происходит после того, как соединение есть.
    1. Входящий пакет.
    Микротик получил ESP-пакет. Если правила файрволла его пропустили (цепочки input/output, а не forward!), то микротик смотрит ассоциации безопасности (SA) - есть ли ассоциация с данным ID? Если есть, то пакет расшифровывается и повторно проходит файрволл - на этот раз цепочку forward - и уходит в нужный интерфейс.
    2. Исходящий пакет
    Микротик получил пакет из внутренней сети. Если правила цепочки forward его пропустили, то он смотрит политики безопасности (SP) - нужно ли этот пакет шифровать. Если нужно, то из политики берутся адреса начала и конца туннеля, по ним ищется SA, из SA берется ключ, пакет шифруется и снова проходит файрволл - в шифрованном виде. Если его пропустили - он пошел.
    Нету тут нигде маршрутизации, тут ESP вместо нее. Зухель точно расшифровывает пакеты от микротика? Если используете SHA256 - откажитесь, у микротика какая-то своя собственная реализация, совместимая только с микротиком, поставьте SHA1.
    Ответ написан
    6 комментариев
  • Почему сетевые интерфейсы имеют разные имена?

    @Blackrime
    1. В GRUB добавь - net.ifnames=0
    2. Перезапиши ядро - sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    3. Создаём правило раздачи имён. Правим /etc/udev/rules.d/70-persistent-net.rules
    Добавляем SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:a9:7a:e1", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
    Где ATTR{address}== MAC адрес интерфейса, NAME= Имя интерфейса
    4. Перезапускаем машину.
    Ответ написан
    1 комментарий
  • Почему сетевые интерфейсы имеют разные имена?

    alsopub
    @alsopub
    Ответ написан
    Комментировать