PIP: Установка из Приватного PyPi Репозитория

По умолчанию pip устанавливает пакеты из публичного PyPi-репозитория, но также может работать и с приватными репозиториями, такими как Nexus или Artifactory. В этой заметке я покажу, как с помощью pip устанавливать пакетов из приватных репозиториев. Я также покажу, как задать имя пользователя и пароль в pip для приватных репозиториев, требующих аутентификацию, и как устранить ошибки, […]

SSH Fingerprint: Получение Отпечатка SSH RSA-Ключа

Отпечаток (fingerprint) представляет собой уникальную последовательность букв и цифр, используемую для идентификации SSH RSA-ключа. Fingerprint ключа — это то, что проверяется, когда вы пытаетесь подключиться к удаленному хосту, используя SSH. В этой заметке я покажу, как сгенерировать md5 и sha256 отпечатки SSH RSA-ключа из командной строки с помощью ssh-keygen.

Nginx: `proxy_pass` Без Слеша В Конце

URL-адреса со слешем в конце и без него рассматриваются веб-серверами, а также поисковыми системами как различные веб-страницы. По этой причине URL-адреса оканчивающиеся слешем могут возвращать ошибку 404 Not Found, в то время как без него они могут быть вполне доступны. В этой заметке я покажу, как убирать слеш в конце URL в Nginx и делать […]

Установка Ansible в Ubuntu — APT-Репозиторий

Ansible — популярное «без-агентное» средство автоматизации, используемое для настройки локальных или удаленных систем и развертывания приложений. Самый простой способ установить последнюю версию Ansible в Ubuntu — взять ее из официального APT-репозитория. В этой небольшой заметке показано, как установить Ansible в Ubuntu, проверить его версию, найти конфигурационный файл и протестировать подключение к удаленному хосту из командной […]

Ansible: Удобочитаемый Формат Вывода

По умолчанию Ansible отправляет вывод в STDOUT в формате, не подходящем для чтения человеком. Начиная с версии Ansible 2.5, формат вывода по умолчанию может быть изменен на более удобочитаемый с помощью плагина callback. Эта небольшая заметка демонстрирует, как в Ansible изменить формат вывода по умолчанию с JSON на YAML, который является более удобным для чтения.

Pip: Install Requirements — Исключение Пакетов

Файл requirements.txt, содержащий зависимости приложения на Python, обычно генерируется разработчиками с помощью команды pip freeze > requirements.txt. Если вы устанавливаете зависимости с помощью команды pip install -r requirements.txt, как часть какого-то автоматизированного пайплайна или Dockerfile и у вас возникли проблемы с некоторыми из зависимостей, вы можете задаться вопросом, как исключить и не устанавливать конкретные пакеты, […]

Pip: Показать Зависимости в Python

Зависимости установленных модулей в Python можно просмотреть с помощью команды pip show. В качестве альтернативы зависимости могут быть показаны в виде древовидной структуры с помощью команды pipdeptree. В этой заметке я покажу несколько примеров того, как узнать какие зависимости у установленных Python-модулей.

Docker Compose: Путь к Dockerfile — Пример

Команды docker-compose build и docker-compose up —build, читая содержимое файла docker-compose.yml, ищут все сервисы с опцией build и для каждого из найденных сервисов выполняют команду docker build. Если Dockerfile был переименован или размещен в каталоге отличном от указанного в context, вы можете указать альтернативный путь к Dockerfile в файле Docker Compose. Ниже я покажу пример […]

Jenkins: Маскировка Паролей — MaskPasswordsBuildWrapper

По некоторым причинам вы возможно не захотите хранить учетные данные в Jenkins с помощью Credentials Plugin. Тем не менее, вам все равно может понадобиться прятать конфиденциальные данные, такие как пароли или секретные ключи, из вывода консоли в Jenkins. Одно из возможных решений — обернуть части кода, которые вы хотите скрыть, с помощью set +x (перестать […]

Jenkins Pipeline: Интерактивный Ввод — Пример

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