• Как установить Python 3.9.6 на Ubuntu 20.04 LTS?

    karabanov
    @karabanov Куратор тега Linux
    Системный администратор
    Используй Pyenv (не забудь накатить библиотеки)
    Ответ написан
    Комментировать
  • Как перенести и запустить Docker образы на автономной машине?

    karabanov
    @karabanov Куратор тега Docker
    Системный администратор
    docker save --output elasticsearch.tar <image_id>

    docker load --input elasticsearch.tar
    Ответ написан
  • Как получить доступ ко второму роутеру при подключении по vpn к первому?

    karabanov
    @karabanov
    Системный администратор
    Есть ещё RoMON и вот тут ещёнемного
    Ответ написан
    Комментировать
  • Json не проходит валидацию?

    karabanov
    @karabanov
    Системный администратор
    Перевод строки убери на шестой строке.

    Валидный JSON
    {
      "id": 104,
      "name": "Астрал",
      "description": "Джош и Рене переезжают с детьми в новый дом, но не успевают толком распаковать вещи, как начинаются странные события. Необъяснимо перемещаются предметы, в детской звучат странные звуки… Но настоящий кошмар начинается для родителей, когда их десятилетний сын Далтон впадает в кому. Все усилия врачей в больнице помочь мальчику безуспешны. Несколько месяцев спустя его возвращают домой, где за несчастным ребенком ухаживают мать и сиделка. Но загадочные явления в доме продолжаются. Отчаявшиеся родители готовы обратиться за помощью к кому угодно, и вскоре выясняется, что Далтон в бессознательном состоянии связан с паранормальным миром.",
      "type": "video",
      "genres": [
        5008624
      ],
      "groups": [
        5001276
      ],
      "countries": [
        5014825
      ],
      "rubrics": [
        5001290
      ],
      "providers": [
        {
          "providerId": 5000282,
          "contentId": "8740126",
          "assets": [
            {
              "id": 21532251,
              "assetFileName": "http://185.5.42.49/hls/VOD/smartlabs/variant.m3u8",
              "playUrl": "http://185.5.42.49/hls/VOD/smartlabs/variant.m3u8",
              "protocolId": 5000210,
              "isCrypted": 0,
              "drmId": 0
            }
          ]
        }
      ],
      "awards": [],
      "originalName": "Астрал",
      "year": "2010",
      "duration": 103,
      "version": 1462958775,
      "parent": 0,
      "seriesId": 0,
      "accessLevel": 2,
      "isRecommended": 0,
      "internalTrailerUrl": {
        "url": "",
        "hoster": "internal"
      },
      "images": {
        "logo": "495892",
        "screenshots": [
          "495892"
        ]
      },
      "startDate": 0,
      "endDate": 0
    }
    Ответ написан
    Комментировать
  • Вопрос про директории nginx?

    karabanov
    @karabanov
    Системный администратор
    Мейнтейнер пакета в конкретном дисрибутиве может конфгирурировать его как захочет. В Debian совместимых дистрибутивах принято /etc/nginx/sites-enabled в RedHat подобных /etc/nginx/conf.d и т. д. Ни что не мешает тебе самому переименовать директории с конфигами и расположить их где угодно.

    Рекомендую читать не гайды, а вот это nginx: документация - здесь собрана вообще вся информация касающаяся Nginx.

    PS
    Nginx с некоторыми фишками от Nginx+ можно найти здесь Angie
    Ответ написан
  • Требуется решение(fs) для линейной записи файлов на диски?

    karabanov
    @karabanov
    Системный администратор
    LVM при определённых настройках что-то похожее может изобразить.
    Ответ написан
    1 комментарий
  • Можно ли как-то отредактировать файл /etc/resolv.conf на shared хостинге?

    karabanov
    @karabanov Куратор тега Ubuntu
    Системный администратор
    На shared хостинге нет, на полноценном VPS да.

    У curl есть флаг --resolve
    curl --resolve go1.unisender.ru:443:217.77.111.4 https://go1.unisender.ru

    Для PHP, например CURLOPT_RESOLVE
    Ответ написан
    Комментировать
  • 302 редирект на yii2, откуда?

    karabanov
    @karabanov
    Системный администратор
    XDebug ответит на твой вопрос.

    PS
    В прочем если там где-то в промежутке есть Apache, то проверь нет ли .htaccess с плохим rewrite
    Ответ написан
  • Причина ошибки http://127.0.0.1:8000/api/register net::ERR_CONNECTION_REFUSED?

    karabanov
    @karabanov
    Системный администратор
    CONNECTION_REFUSED - в 99% случаев означает, что порт никто не слушает.

    в консоли выдает ошибку

    Если речь о консоли браузера, то вполне логично что на твоей машине никто не слушает порт 3000 на loopback интерфейсе.
    Ответ написан
  • Как правильно подключить rules в prometheus?

    karabanov
    @karabanov Куратор тега Docker
    Системный администратор
    rule_files:
    - $PWD/alert.rules.yml

    Странная конструкция надо указать полный или относительный путь - такие переменные в своём конфиге Prometheus не понимает.

    volumes:
    - $PWD/prometheus.yml:/etc/prometheus/prometheus.yml

    Плохое решение прокидывать файл, внутрь контейнера - это можно сделать один раз в момент старта контейнера и в случае если файл изменился придётся перезапускать контейнер, чтобы это снова произошло. Лучше как Volume монтировать директорию в которую поместить файл, тогда файл в контейнере тоже измениться и достаточно будет послать SIGHUP процессу, чтобы он перечитал конфиг. Переменная $PWD здесь может быть, но её надо предварительно определить, например в .env файле или в одном из семи мест, где их можно определять.

    Пример нормального подключени файла с правилами выглядит как-то так:

    prometheus.yml
    # Load and evaluate rules in this file every 'evaluation_interval' seconds.
    rule_files:
      - '/etc/prometheus/alert-rules/*'
      # - 'first.rules'
      # - 'second.rules'


    docker-compose.yml
    volumes:
      - ./prometheus:/etc/prometheus
    Ответ написан
    Комментировать
  • Почему не могу клонировать репозиторий GitLab?

    karabanov
    @karabanov
    Системный администратор
    Пользователь от имени которого производится клонирование реально не имеет прав на этот репозиторий. Если залогиниться в GitLab и попытаться перети в этот репозиторий результатом будет 404. Надо дать пользователю права, хотя бы Reporter.
    Ответ написан
    Комментировать
  • В чём может быть причина потери пакетов?

    karabanov
    @karabanov
    Системный администратор
    ICMP обрабатываются на CPU (в conrol-plane), в отличии от пользовательского трафика который обрабатывает специализированная микросхема ASIC или FPGA (data-plane). CPU в сетевых устройствах не особо производительный, а ведь ему нужно ещё и делать Routing decision, за мультикастом присматривать, на SNMP отвечать, SSH или Telnet запускать, BGP сессию держать и чтобы защитить себя от обработки лишней информации часть мусорных задач, вроде обработки ICMP type 8, он просто периодически игнорирует, отсюда и "потери". Поэтому детектировать потери глядя на вывод mtr или traceroute занятие гиблое, надо смотреть на retrnsmint для tcp, например (но у него тоже может быть своя природа, например фаирвол с лимитами)...

    Хороший способ смотреть за потерями это запускать iperf3 в UDP режиме и выгружать JSON отчёт в котором написано чего и сколько потерялось.
    Ответ написан
  • Как пробросить порт Cent OS 7?

    karabanov
    @karabanov
    Системный администратор
    Выведи все правила iptbles -S -t nat и iptbles -S посмотри куда добавилось твоё правило и подними его повыше если оно оказалось после правила которое обрабатывает такие пакеты раньше.

    Убедись, что forwarding включен, а так же, что в цепочке FORWARD таблицы Filter нет запрещающих правил для таких пакетов.

    И не стоит вот так руками добавлять правила если не знаешь, что делаешь - лучше найди в /etc конфиг, впиши своё правило туда.
    Ответ написан
    Комментировать
  • Что можно делать с помощью Docker?

    karabanov
    @karabanov Куратор тега Docker
    Системный администратор
    Docker это набор сервисов и утилит созданных для удобного управления встроенными в ядро Linux технологиями Namespace (для изоляции процессов) и CGroups (для управления ресурсами).

    По мимо Docker существует ряд инструментов призванных делать тоже самое Systemd-Nspawn, LXC, Podman, etc - все они работают похожим образом и точно так же изолируют Linux-овые процессы. Docker самый распространённый и популярный из-за стандартизации процесса сборки образа и удобных утилит для управления жизненным циклом контейнера, Docker это как libc - только в разрезе контейнеров.

    Контейнер можно запустить не имея ни одного из этих инструментов с помощью утилиты unshare - она позволяет точно также управлять Namespac-ами (управлять ресурсами придётся вручную добавив процесс в CGroups).

    Контейнер это изолированный Linux процесс - соответственно запустить получиться только Linux-овый софт и больше ничего. Контейнер это не маленькая виртуальная машина, контейнер это не Java для всего. Конетейнер это только средство запустить Linux-овый процесс в изолированной среде (и, возможно, ограничить его по ресурсам), например запустить приложение требующее наличия в системе конкретных зависимостей, но отсутствующих по факту. Или запустить в целях разработки конкретную версию PHP, Python, Ruby, etc при этом избежав конфликта зависимостей и Dependency hell из-за несовместимых библиотек на хостовой машине.

    Представь себе ситуацию, когда ядро Linux загрузилось и запустило только один (какой угодно) процесс, присвоив ему PID 1 - вот так контейнер выглядит изнутри.

    PS
    Есть конетйнеры на Windows Core они запустятся только на Windows и служат для изоляции только Windows софта и для них есть набор утилит, которые распространяются в виде набора бинарных файлов тоже, почему-то, под именемем Docker (не путать с Docker-Desktop, так как Docker-Desktop - это набор сервисов позволяющих виртуализировать ядро Linux и тем самым получить возможность запустить Linux процессы на Windows или MacOS).
    Ответ написан
    Комментировать
  • Почему не грузятся метрики из Prometheus в Grafana?

    karabanov
    @karabanov
    Системный администратор
    В настройках Grafana указан адрес Prometheus 172.27.0.2, а на самом деле у Prometheus 172.27.0.6
    В любом случае указывать IP адреса так себе затея - выигрышная стратегия всегда указывать имена, вон для node-exporter имя указано и это хорошо.
    Ответ написан
  • Как запустить composer в docker?

    karabanov
    @karabanov Куратор тега Docker
    Системный администратор
    Директория app находится на два уровня выше директории php в которой размещён Dockerfile - поменяй путь в директиве COPY
    И WORKDIR /app создаёт директорию и делает её текущей, так что должно быть COPY ../../app .

    PS
    Никогда не используй Alpine образы ни для чего - этот дистрибутив оптимизирован для встраевыемых устройств с единицами мегабайт оперативной памяти и процессором с одним ядром, там вместо libc использован суррогат musl с неэффективным на б̀ольших объёмах памяти аллокатором, к тому же она не так сильно распростронена, как libc, что увеличивает вероятность столкнуться с чем нибудь вроде segmentation fault. К тому же часть пакетов в собранном виде отсутствует из-за чего во время установки происходит их сборка, что занимает значительное время, да и образ в итоге получается очень большим (компилятор то никто не умеет настраивать)

    Используй debian-slim и PHP устанавливай из Sury репозитория - установка произойдёт очень быстро, а итоговый образ будет компактным (если, конечно, не забывать стирать списки пакетов и кеши на том же слое, где они были созданы)

    PPS
    # Remove Cache
    RUN rm -rf /var/cache/apk/*

    Удалять что либо на следующем слое бесполезно - там Copy on Write файловай система и всё что было на предыдущем слое создано там и останется
    Ответ написан
    1 комментарий
  • Как сделать алиас пути NGINX?

    karabanov
    @karabanov
    Системный администратор
    alias

    location /admin/ {
            alias /var/www/example.com/path/to/another/admin/;
    }
    Ответ написан
  • Существует ли инструмент для управления серверами ssh?

    karabanov
    @karabanov
    Системный администратор
    Ответ написан
    Комментировать
  • Увеличение герцовки в мобильном браузере (Яндекс и тп.)?

    karabanov
    @karabanov
    Системный администратор
    Видимо Override software rendering list

    Возможно так же понадобиться GPU rasterization, Zero-copy rasterizer, Out-of-process 2D canvas rasterization, Enable raw draw

    Посмотреть в каком состоянии аппаратное ускорение можно на странице chrome://gpu
    Ответ написан
    Комментировать