Задать вопрос
  • Как организовать автодеплой на сервер в закрытом контуре?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    к серваку не будет доступа по ssh в рабочем режиме

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

    Опять же вызывает вопросы "закрытость" контура: закрыт он от доступа извне или доступ наружу изнутри контура тоже отсутствует? Как тогда предполагается доставлять изменения?
    Ответ написан
    5 комментариев
  • Как организовать автодеплой на сервер в закрытом контуре?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Ставите на целевой сервер gitlab-runner и далее настраиваете деплой стандартным способом через gitlab ci/cd. Триггеры деплоя - стандартные PR в master ветку только мэйнтэйнером или администратором проекта/группы. Все остальные разработчики работают по стандартному github-flow режиму ну или какой у вас там рабочий процесс принят. В идеале, конечно, следует делать деплой через SSH, как вариант - прокинуть сервер гитлаба в закрытый контур через любой шифрованный тунель, а внутри контура настроить прямой доступ к нему по DNS.
    Раз стоит цель настроить деплой без SSH в закрытый контур, то значит разрешение на такой деплой уже есть. А если нет - ну, что ж, это уже ответственность ТС и что делать в этом случае это уже совсем другой вопрос.
    Ответ написан
    Комментировать
  • Как сделать звездный рейтинг?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Как много кода для простого рейтинга.

    Ответ написан
  • Возможно ли отслеживание сисадмином пользователя во время его работы в гостевой ОС на VirtualBox?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, конечно может - снимки экрана с запущенным виртуалбоксом делаются точно так же как и с другими приложениями. Кроме того, со стороны сетевой инфраструктуры тоже будут видны куда и какие идут запросы, если вся ваша система целиком не завернута в какой-либо тунель. Подключиться к гостевой система по RDP в рабочей сети другие не смогут без знания логина и пароля. Правильнее в данной ситуации будет договориться с вашим работодателем или руководителем о необходимости иногда в рабочее время заниматься своими делами не в ущерб основной рабочей деятельности.
    Ответ написан
    4 комментария
  • Ошибка 500 при попытке установки PunBB, как исправить?

    karabanov
    @karabanov
    Системный администратор
    500 (пятьсот ровно) это в 99% необработанное исключение. Найди в логе PHP строчку содержащую слово Fatal это и будет твоя причина.
    Ответ написан
    6 комментариев
  • Есть ли какая то определенная причина почему стоит использовать Windows Server?

    @expressrus
    На мой взгляд для .NET на Windows Server удобнее все: разработка, поддержка, администрирование. Но я использую это только для корпоративных продуктов с высокой степенью надежности.

    Для своих проектов Linux выгоднее. Здесь я имею ввиду не только отсутствие лицензии (за нее я и так никогда не платил), а требования к серверу.
    Допустим я пишу сайтик на .NET и SQL server – тогда для комфортной работы я должен оплачивать сервер минимум 8Гб оперативки и 4 ядра ЦП. Но если я напишу это же самое в связке .NET и Mysql 8.0 – это будет работать также хорошо на линуксе с 2 ядрами и 2ГБ оперативки.
    Более того на заре выхода .NET 5 сами мелкософт признавались что у IIS есть ряд ограничений и рекомендовали сайтики с высокой нагрузкой по запросам размещать на линухе.

    В вашем конкретном случае я бы остался на винде, а новые проекты на .NET уже бы писал для линукса. Причем предупреждаю последняя удобная винда это Windows Server 2022. Если вы поставите версию старее то лишитесь как минимум TLS 1.3, а если поставите новее (2025) тогда получите неудобный UI для девочек как в эпплах.
    Ответ написан
    Комментировать
  • Есть ли какая то определенная причина почему стоит использовать Windows Server?

    1. В dotnet на Linux нет ничего костыльного, так ещё он дешевле, производительней, и админить легче.
    И работает всё гораздо предсказуемее и без сюрпризов (опыт разработчика)
    2. Да, Windows Server всё ещё используется.
    Представь, что ты огромная международная корпорация с десятками тысяч сотрудников и у тебя на Windows Server крутится куча приложений, которые запускаются только на нём, AD, Exchange, и ещё процессы тесто завязаны на Винду.
    Будешь ли ты резко отказываться от микрософта и переезжать на Линукс?
    Вопрос риторический


    Почему я задал этот вопрос, я как системный администратор, столкнулся с клиентом, с которым я сцепился из за того, что его разработчики и бывший сотрудник сисадмин решил установить .NET + C# + Mono + Nginx и все это на линукс.

    Естественно меня это взбесило, и я просто отказался все это поддерживать, потому что извините, но .NET проще поддерживать на Windows Server

    Очень странно, что они решили использовать mono вместо dotnet (core), но если ты по каким-то своим внутренним предрассудкам отказываешься изучать что-то новое - вопросы в первую очередь к тебе, как к специалисту.

    Возможно, твои заказчики хотели перенести какое-то Легаси на Linux+mono без переписывания на актуальную версию dotnet.
    https://learn.microsoft.com/ru-ru/dotnet/fundament...
    Уверен, что там действительно mono?
    Какие конкретно у тебя сложности с настройкой произошли?
    Или ты в основном на Windows специализируешься?
    Ответ написан
  • Есть ли какая то определенная причина почему стоит использовать Windows Server?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Только для тех случаев, когда зависимости ПО работают только под виндой. Во всех остальных случаях удобнее и практичнее линукс. Сегодня dotNet спокойно ставится под линуксом из пакетов и отлично там работает как и любое другое ПО.

    Если Windows Server настолько проиграл Linux в серверных войнах, то почему Microsoft не закрывает этот отдел? Значит сервера на Windows, используются.

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

    Почему я задал этот вопрос, я как системный администратор, столкнулся с клиентом, с которым я сцепился из за того, что его разработчики и бывший сотрудник сисадмин решил установить .NET + C# + Mono + Nginx и все это на линукс.
    Естественно меня это взбесило, и я просто отказался все это поддерживать, потому что извините, но .NET проще поддерживать на Windows Server

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

    Ge1i0N
    @Ge1i0N
    Можете создать php файл, если header нужный прокинете, а можете через php-консоль выполнить, лежит тут /bitrix/admin/php_command_line.php?lang=ru
    Ответ написан
    1 комментарий
  • Как из строки с путём получить элемент массива?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Прежде чем изобретать велосипед, стоит посмотреть уже существующие решения.
    У этого метода даже название своё есть - Array Dot Notation. Есть php-библиотека с таким же названием. И она не одна

    https://yandex.ru/search/?text=dot+notation+array
    Ответ написан
    1 комментарий
  • Полная разница sudo su, sudo -i, sudo -s?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    - Разница 1: Почти, sudo -i также меняет HOME на /root, и читает логин скрипты root юзера.
    - Разница 2: Верно, действия с sudo -i и sudo -s логгируются в журналах юзера, а sudo su - нет.
    - Разница 3: Верно, sudo позволяет настраивать ограничения для команд через sudo -i и sudo -s, но не для sudo su (так как sudo su переключает юзера в root).
    Еще не понял разницу между
    sudo su
    sudo su -

    - sudo su - переключает юзера на root, но окружение при этом не является полным root окружением.
    - sudo su - - эмулирует полный вход юзера root (login shell). Будут прочитаны все файлы конфигурации, которые обычно читаются при входе root (profile, .bash_profile, .bashrc и что-то там еще). Насколько я понимаю, это то, что нужно Вам при работе от имени юзера root.
    И где можно смотреть логи пользаков при использовании sudo -i, sudo -s?

    Viewing and monitoring log files, можно еще заюзать journalctl.
    Ответ написан
    7 комментариев
  • С какого раздела можно начинать читать Algorithms in Java от Седжвика если уже знаешь джаву?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Кроилово ведёт к попадалову. Читайте полностью.
    Ответ написан
    Комментировать
  • Можно ли добавить условие при регистрации аккаунта на сайте?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Это вообще реально сделать?
    Реально
    Ответ написан
    8 комментариев
  • Как сделать условие внутри echo?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Так?
    $categories = get_categories([
        'taxonomy' => 'video',
        'orderby' => 'ID',
        'order' => 'DESC',
        'number' => '8',
    ]);
    
    foreach ($categories as $c) {
        $vQuality = get_field('video_quality', 'category_' . $c->term_id);
    
        if ($vQuality === '4K') {
            echo '<img src="/image2.jpg">';
        }
        
        elseif ($vQuality === '1080') {
            echo '<img src="/image3.jpg">';
        }
        
        else {
            echo '<img src="/image1.jpg">';
        }
    
        echo '<p>' . esc_html($c->name) . '</p>';
    }
    Ответ написан
    5 комментариев
  • Часть кода из паттерна - компоновщик. Имеем - абстрактный класс, и класс - наследник. Собственно, как такое происходит?

    https://www.php.net/manual/ru/language.oop5.visibi...

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

    @ksnk
    У элемента есть крайне удобный метод getBoundingClientRect, который почти все проблемы позиционирования решает в меру элегантно.
    var disp=[0,0]; // смещение
            var listener = function (e) {
    
                full_info_div.style.left = (disp[0]+e.clientX) + "px";
                full_info_div.style.top = (disp[1]+e.clientY) + "px";
            };
    
            full_info_div.addEventListener('mousedown', e => {
              let b = full_info_div.getBoundingClientRect();
              disp= [b.left-e.clientX,b.top-e.clientY];
              document.addEventListener('mousemove', listener);
               document.querySelector("html").setAttribute("style", "user-select: none");
    
            });
    ...
    Ответ написан
    Комментировать
  • Взлом пароля черз БД, хэш-пароля?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Создаете юзера с известным паролем. Потом полученный хэш тупо вписываете нужному юзеру. Были времена, пароль рута некоего сервера mysql так ломал...
    Ответ написан
    Комментировать
  • Взлом пароля черз БД, хэш-пароля?

    SamDark
    @SamDark
    Yii2 core team
    1. password_hash — это bcrypt формат. Если есть доступ к базе, то делаете нового юзера с паролем, забираете его хеш и просто перетираете им password_hash в базе у нужного юзера.
    2. auth_key — это не релевантно.
    3. confirmation_token — это не релевантно.
    Ответ написан
    4 комментария
  • Как заставить cron работать внутри docker контейнера?

    smilingcheater
    @smilingcheater
    Вы некорректно задаёте команду для крона. Надо задавать полные пути для всех файлов
    * * * * * /usr/bin/php /var/www/laravel/artisan schedule:run


    В dev/null также пусто.

    Спасибо, посмеялся. Вы понимаете что такое /dev/null?
    Если вам нужны системные логи запуска команды - так и перенаправьте их в конкретный файл...
    Ответ написан
    8 комментариев