TGViewer
Channel Public Channel
DevOps Portal | Linux

DevOps Portal | Linux

@loose_code

Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps

Сотрудничество, реклама: @devmangx

Работаем с @Spiral_Yuri

РКН: https://clck.ru/3P8kFH
Subscribers
13.1K
Photos
1K
Videos
134
Links
1.1K

Showing posts older than #946 · Back to latest

Older Posts 18 shown
Post #944 4.53K
Быстрый совет по Linux 🐧

Правильно структурируйте ваш XML-файл и сделайте его более читаемым с помощью инструмента xmllint

$ xmllint --format XML_FILE


👉 DevOps Portal
  • 🔥 14
  • 👍 4
  • ❤ 1
Post #942 6.28K
15 лучших GitHub-репозиториев для изучения DevOps

Если хочешь прокачать свои навыки в DevOps, вот подборка топовых GitHub-репозиториев с дорожными картами, упражнениями, проектами и шпаргалками

— Дорожные карты и руководства
🔹developer-roadmap – Дорожная карта DevOps-инженера
🔹devops-resources – Полное руководство по Linux, Jenkins, AWS, Kubernetes, Terraform и другим инструментам
🔹learn-devops – Обучение DevOps на основе задач с примерами из реального опыта.
🔹DevOps-Tutorial – Практический туториал по CI/CD, контейнеризации и автоматизации.
🔹 tech-vault – База DevOps-уроков по Docker, Kubernetes, Ansible и другим технологиям

— Практика и упражнения
🔹devops-exercises – 2600+ заданий по Linux, AWS, Docker, Kubernetes, Terraform, Jenkins и SRE.
🔹test-your-sysadmin-skills – Задачи по Linux, сетям и устранению неполадок для DevOps и админов.

— Обучение на практике (проектный подход)
🔹 project-based-learning – Проекты для практики автоматизации, развертывания и мониторинга.
🔹 build-your-own-x – Создаём DevOps-инструменты (Docker, Git, CI/CD) с нуля!
🔹 kubernetes-the-hard-way – Развёртываем Kubernetes с нуля и учим его "под капотом".
🔹 Fast-Kubernetes – Готовые Kubernetes-проекты и скрипты для быстрого освоения.

— Автоматизация, CI/CD и инструменты
🔹 DevOps-Bash-tools – Полезные Bash-скрипты для DevOps-задач и автоматизации.
🔹 ansible-examples – Готовые плейбуки Ansible для настройки и управления инфраструктурой.

— Шпаргалки и быстрые справочники
🔹 cheat-sheets – Шпаргалки по Docker, Kubernetes, AWS, Terraform и другим DevOps-инструментам.
🔹 awesome-cheatsheets – Краткие справочники по скриптингу, Docker, Kubernetes.

👉 DevOps Portal
  • 👍 25
  • ❤ 3
Post #941 4.95K
💡 Совет дня по Linux

Чтобы команда не сохранялась в истории Bash, введите перед ней пробел.

👉 DevOps Portal
  • 👍 19
  • 🔥 12
  • ❤ 6
  • 👀 4
Post #939 5.77K
DevOps как Бургер

Как должен выглядеть roadmap DevOps-инженера:
🔹Изучи язык программирования (Python, Go и др.), чтобы писать скрипты автоматизации.
🔹Освой одну операционную систему (Linux) и её интерфейс командной строки (CLI).
🔹Разберись с управлением серверами и веб-серверами, включая прокси-серверы, такие как Nginx или IIS.
🔹Познакомься с контейнеризацией с помощью Docker.
🔹Освой оркестрацию контейнеров с Kubernetes.
🔹Изучи инфраструктуру как код (IaC) с использованием Terraform, Ansible, Chef или Puppet для управления конфигурациями и развертывания инфраструктуры.
🔹Разберись в сетевых протоколах: DNS, IP-адреса, порты и модель OSI.
🔹Примени на практике CI/CD для автоматизации процессов интеграции и развертывания приложений.
🔹Освой техники мониторинга для отслеживания состояния приложений, сервисов и инфраструктуры в реальном времени.
🔹Получи практический опыт работы с облачными провайдерами, такими как AWS и Azure.


👉 DevOps Portal
  • 👍 23
  • ❤ 3
  • 🤔 2
Post #938 4.68K
Kyanos — инструмент для анализа трафика на основе eBPF

Он позволяет отслеживать сетевое взаимодействие отдельных процессов, включая HTTP-трафик, запросы к Redis и трафик серверов MySQL.

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

👉 Github

👉 DevOps Portal
  • 👍 8
  • ❤ 2
  • 🔥 1
Post #936 4.3K
💡 Совет по Linux на сегодня

Создавайте несколько дочерних каталогов, даже если родительский каталог не существует:

$ mkdir -vp songs/{artists,albums,genres/{classical,pop}}


Это создаст следующую структуру каталогов 👆

👉 DevOps Portal
  • 👍 34
  • ❤ 3
Post #933 5.71K
⚙️ Смотрите какую штуку нашёл - https://sadservers.com/ разные варианты проблем, которые нужно решить на сервере Linux. При этом, серверы для тренировки можно получить прямо тут же, на сайте.

Cистема отслеживает выполняемые команды и по ходу дает подсказки — очень удобно и дружелюбно

Архитектуру ресурса ребята показали на Github: https://github.com/fduran/sadservers

👉 DevOps Portal
  • 👍 25
  • ❤ 6
Post #931 3.81K
💡 Быстрый совет по Linux

Заменяйте часть команды с помощью fc.

Например, если вы опечатались и вместо apt ввели atp, можно заменить его в команде так:

fc -s atp=apt



👉 DevOps Portal
  • 👍 29
  • ❤ 3
Post #930 3.92K

Forwarded from Архив каналов

Этот репозиторий — сборник вопросов и ответов для подготовки к DevOps-собеседованиям.

Там есть темы про Docker, Kubernetes, CI/CD, облака, мониторинг, безопасность, Linux и Git.

Отлично подойдёт для подготовки к интервью и освежения знаний 👍

Бросайте в закладки: https://github.com/rohitg00/devops-interview-questions

👉 DevOps Portal
  • 👍 16
  • 🔥 6
  • ❤ 3
Post #924 4.04K
💡 Быстрый совет по Ansible

Долгий запуск команды приводит к тайм-ауту?

Используйте настройку ansible_command_timeout

Она задает максимальное время (в секундах), в течение которого Ansible будет ждать завершения команды

👉 DevOps Portal
  • 👍 18
  • ❤ 2
Post #923 5.24K
Понимание системных логов Linux

Системные логи, которые часто можно найти в директории /var/log на системах Linux, являются важным инструментом для мониторинга и устранения проблем в системе. Вот краткие заметки о некоторых распространённых системных логах:

— syslog: Лог общего назначения, который содержит сообщения от различных системных служб и приложений. Это основной файл журнала, в который поступают сообщения из многих других логов.

— auth.log: Записывает сообщения, связанные с аутентификацией, включая успешные и неудачные попытки входа, изменения паролей и события аутентификации пользователей.

— kern.log: Записывает сообщения, относящиеся к ядру системы, такие как ошибки оборудования, загрузка модулей ядра и другие активности ядра.

— messages: Универсальный лог-файл, который записывает различные системные сообщения, включая старты и завершения работы системы, а также другие события, связанные с системой.

— dmesg: Отображает сообщения из кольцевого буфера ядра, предоставляя реальный временной обзор событий, связанных с ядром, и обнаружением оборудования во время загрузки системы.

— cron: Записывает сообщения, связанные с заданиями cron и запланированными задачами, включая время их выполнения и ошибки, возникшие при их выполнении.

— secure: Записывает сообщения, связанные с безопасностью, включая попытки аутентификации, повышение привилегий и другие события безопасности.

— apache/access.log и apache/error.log: Логи, специфичные для веб-сервера Apache. access.log записывает логи HTTP-доступа, а error.log фиксирует ошибки и предупреждения сервера Apache.

— nginx/access.log и nginx/error.log: Подобные логам Apache, эти логи специфичны для веб-сервера Nginx и записывают события доступа и ошибки.

— mysql/error.log: Записывает ошибки и предупреждения, возникшие у сервера базы данных MySQL, включая ошибки при старте, сбои запросов и сбои баз данных.

Эти логи предоставляют ценную информацию о производительности системы, событиях безопасности и помогают при устранении проблем.

Регулярный мониторинг и анализ этих логов помогают поддерживать здоровье системы и выявлять потенциальные проблемы до того, как они перерастут в серьёзные.

👉 DevOps Portal
  • 👍 29
  • 🔥 4
  • ❤ 3
Post #921 4.35K
Быстрый совет для Linux

Используйте этот онлайн-проект, чтобы проверить, для каких дистрибутивов и версий доступен тот или иной пакет:

👉 https://repology.org

Настоящее спасение ☺️

👉 DevOps Portal
  • ❤ 5
  • 👍 4
  • 🔥 4
Post #920 4.49K
Краткий гайд по Linux Logical Volume Manager

LVM меняет способ управления дисковым пространством в Linux, позволяя объединять несколько физических дисков в единый гибкий пул хранения.

Представьте это как большой контейнер, в который можно добавлять или убирать элементы (в данном случае, хранилище) по мере необходимости.

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

Основные преимущества использования LVM:

🔹Гибкое хранилище – легко изменяйте размер и управляйте дисковым пространством в соответствии с вашими потребностями.

🔹Снимки для безопасных резервных копий – создавайте моментальные снимки для быстрого резервного копирования без прерывания работы системы.

🔹Упрощенное управление дисками – используйте несколько дисков как единое целое, оптимизируя пространство и организацию хранения.

👉 DevOps Portal
  • 👍 15
Post #918 3.75K
Когда вы смотрите на использование ОЗУ на сервере с Linux,

❌ люди часто обращают внимание на свободную память

✅ Но вместо этого им стоит сосредоточиться на доступной памяти

Позвольте объяснить, почему.

Свободная память — это объем ОЗУ, который в данный момент не используется вообще. Для серверов это пустая трата ресурсов.

Доступная память — это количество ОЗУ, которое можно выделить новым или существующим процессам без использования свопа. Считайте это вашей «реальной свободной памятью».

Разница в том, что свободная память не используется и просто лежит без дела. Потери ресурсов.

С другой стороны, доступная память — это «используемая память», которую можно освободить без потери производительности, связанной с использованием свопа. Она также включает в себя кэш и буферы.

На сервере с Linux, который работает уже некоторое время, если в нем много свободной памяти, это значит, что он не использует ресурсы эффективно.

Если вы задумываетесь о том, нужно ли вашему серверу обновление ОЗУ, вы должны смотреть на «доступную память», а не только на «свободную память» при принятии решения.

👉 DevOps Portal
  • 👍 15
  • 🔥 8
  • ❤ 2
Post #912 4.4K
Репозиторий с пошаговым руководство о том, как стать инженером DevOps в 2025, со ссылками на соответствующие учебные ресурсы

👉 https://github.com/milanm/DevOps-Roadmap

👉 DevOps Portal
  • 👍 18
  • 🔥 4
  • ❤ 3
Post #911 3.9K
Введение в написание скриптов на Bash

Скрипты на Bash — это мощный инструмент, который позволяет автоматизировать различные задачи на системах на базе Unix, таких как Linux и macOS. Они представляют собой последовательность команд, записанных в файл, который может быть выполнен оболочкой Bash. Вместо того чтобы вручную вводить и запускать команды одну за другой в терминале, создание Bash-скрипта позволяет сохранить эти команды в файл и выполнить их сразу, что делает процесс более эффективным и удобным.

В этом посте мы рассмотрим основы создания и запуска первого скрипта на Bash.

— Преимущества скриптов на Bash

Существует несколько преимуществ при создании скриптов на Bash:

🔹Автоматизация: Скрипты могут автоматизировать повторяющиеся задачи, экономя ваше время и силы.
🔹Согласованность: Выполняя одну и ту же последовательность команд, вы обеспечиваете выполнение задач одинаково каждый раз, уменьшая вероятность ошибок.
🔹Портабельность: Скрипты Bash можно легко передавать и запускать на разных системах на базе Unix, что делает их высоко переносимыми.

— Создание и запуск первого Bash-скрипта

Для создания нового Bash-скрипта откройте текстовый редактор и создайте новый файл с расширением .sh, например, my_script.sh. Затем добавьте следующую строку кода:

#!/bin/bash
echo "Hello, World!"

Сохраните файл и закройте редактор.

Далее откройте терминал и перейдите в каталог, где вы сохранили скрипт, с помощью команды cd. Например, если скрипт сохранён в домашней директории, используйте команду cd ~.

Когда вы окажетесь в нужной директории, сделайте скрипт исполняемым, выполнив команду:
chmod +x my_script.sh

Эта команда даёт права на выполнение скрипта.

Теперь вы можете запустить скрипт, набрав:
./my_script.sh

В терминале должно появиться сообщение Hello, World!.

Вы также можете запустить скрипт, набрав:
bash my_script.sh

Для этого не нужно давать права на выполнение скрипта.

— Что такое Shebang

Первая строка в вашем Bash-скрипте, #!/bin/bash, называется "shebang" или "hashbang". Она указывает операционной системе, какой интерпретатор следует использовать для выполнения скрипта. В данном случае, #!/bin/bash означает, что для выполнения скрипта следует использовать оболочку Bash.

Например, если вы хотите запустить скрипт с использованием интерпретатора zsh, ваша shebang строка будет выглядеть так:
#!/bin/zsh


— Добавление скрипта в PATH

Хотя вы можете запускать скрипт, указывая полный путь к файлу (/path/to/my_script.sh), гораздо удобнее добавить скрипт в переменную окружения PATH, чтобы запускать его из любой директории. Вот как это можно сделать:

🔹Откройте файл конфигурации вашей оболочки (например, .bashrc или .bash_profile) в текстовом редакторе.
🔹Добавьте следующую строку в файл, заменив /path/to/scripts на путь к директории, где вы хотите хранить свои скрипты:
export PATH="$PATH:/path/to/scripts"

🔹Сохраните и закройте файл.
🔹Перезапустите терминал или выполните команду source ~/.bashrc (или source ~/.bash_profile), чтобы применить изменения.

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

✅ Заключение

В этом руководстве вы научились создавать и запускать первый Bash-скрипт, понимаете, что такое строка shebang, и добавили скрипт в PATH системы для удобного запуска. С этими основами под рукой вы можете начать изучать более сложные концепции написания скриптов на Bash и создавать мощные автоматизационные скрипты для оптимизации рабочего процесса.

Картинка в хорошем качестве (PDF) в комментариях

👉 DevOps Portal
  • 👍 17
  • 🔥 8
  • ❤ 2
Post #909 3.63K
— Команды Docker для сетевого взаимодействия

🔹Подключение контейнера к сети
Для подключения контейнера к сети используйте команду docker network connect:
docker network connect mynet container1


Это добавит контейнер container1 в сеть mynet.

🔹Создание сети
Для создания новой сети используйте команду docker network create:
docker network create --driver bridge mynet


Это создаст новую сеть bridge с именем mynet.

🔹Отключение контейнера от сети
Для того чтобы отключить контейнер от сети, используйте команду docker network disconnect:
docker network disconnect mynet container1


Это удалит контейнер container1 из сети mynet, и контейнер больше не сможет общаться с другими контейнерами в этой сети.

🔹Просмотр сети
Для просмотра настроек сети и подключённых контейнеров используйте команду docker network inspect:
docker network inspect mynet


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

🔹Список доступных сетей
Для отображения всех сетей на хосте Docker используйте команду docker network ls:
docker network ls


Эта команда выведет список сетей, их идентификаторы, типы драйверов, IP-адреса и другие данные.

🔹Удаление сети
Для удаления сети, которая больше не используется, используйте команду docker network rm:
docker network rm mynet


Эта команда удалит сеть mynet с хоста. Контейнеры больше не смогут обмениваться данными по этой сети.

🔹Публичное сетевое взаимодействие
По умолчанию контейнеры не имеют доступа к публичной сети и изолированы от внешней сети. Чтобы открыть порты, используйте аргумент -p при запуске контейнера:
docker run -p 80:5000 myapp


Эта команда направит внутренний TCP-порт 5000 на внешний порт 80. Контейнер теперь будет доступен на порту 80 с внешней сети.

— Заключение

Сетевое взаимодействие Docker предоставляет различные драйверы сетей для изоляции или соединения контейнеров. Сетевые драйверы bridge просты в использовании, но драйверы overlay и macvlan предоставляют больше гибкости. Команды для работы с сетями позволяют создавать сети, подключать контейнеры и настраивать параметры. В целом, сетевые возможности Docker предоставляют мощные инструменты для проектирования распределённых приложений.

👉 DevOps Portal
  • 👍 21
  • ❤ 1
Post #908 3.29K
Сетевое взаимодействие в Docker

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

— Драйверы сетей Docker

Docker упрощает коммуникацию между контейнерами, создавая сеть по умолчанию — bridge (мост), что позволяет разработчикам сосредоточиться на создании и запуске контейнеров, не беспокоясь о сетевом взаимодействии. Хотя эта сеть по умолчанию подходит для большинства случаев, Docker также предлагает другие варианты.

Docker позволяет создавать три различных типа сетевых драйверов «из коробки»: bridge, host и none. Однако эти драйверы могут не подходить для всех случаев, поэтому мы также обсудим пользовательские сети, такие как overlay и macvlan. Давайте рассмотрим каждый из них более подробно.

🔹Драйвер Bridge
Драйвер по умолчанию для сетей Docker — это драйвер bridge. Он создаёт частную сеть внутри хоста. Каждый контейнер, подключённый к сети bridge, получает внутренний IP-адрес, что позволяет контейнерам на одной и той же bridge-сети обмениваться данными. Для внешнего доступа необходимо открывать порты.

Драйвер bridge создаёт интерфейс docker0 на хосте, который служит шлюзом между контейнерами и внешней сетью. Он управляет маршрутизацией между внутренними и внешними интерфейсами.

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

🔹Драйвер Host
Как следует из названия, драйвер host использует сетевую инфраструктуру хостовой машины, исключая сетевую изоляцию между контейнером и хостовой машиной, на которой работает Docker. Например, если контейнер использует порт 80 и применяется хостовая сеть, то приложение контейнера будет доступно на порту 80 IP-адреса хоста. Этот драйвер используется, если необходимо полагаться на сетевую инфраструктуру хоста, а не на Docker.

Однако драйвер host несовместим с Docker Desktop и требует использования хостовой машины на базе Linux.

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

🔹Драйвер None
Драйвер none предоставляет контейнеру доступ к сети только через интерфейс loopback. Это полностью изолирует контейнер от внешних сетей. Такой драйвер полезен для приложений, которые обмениваются данными только внутри себя, а также для высокозащищённых приложений, где критична максимальная изоляция или когда сетевой доступ вообще не требуется.

🔹Драйвер Overlay
Overlay-сети позволяют контейнерам на разных хостах Docker обмениваться данными в Docker Swarm. Это использует встроенное шифрование и распределённую компоненту для маршрутизации трафика между участвующими хостами.

Overlay-сети позволяют контейнерам на разных хостах внутри кластера Swarm общаться так, как если бы они находились в одной локальной сети. Несколько приложений могут использовать одну и ту же overlay-сеть, но оставаться изолированными друг от друга. Это полезно для крупных распределённых приложений.

🔹Драйвер Macvlan
Драйвер macvlan назначает каждому контейнеру уникальный MAC-адрес для виртуального сетевого интерфейса, что делает контейнеры видимыми как физические устройства в сети. Контейнеры получают уникальные IP-адреса во внешней сети.

Этот драйвер даёт контейнерам такую же сетевую видимость, как у физических хостов, но при этом сохраняется абстракция Docker. С этим драйвером могут возникать конфликты IP-адресов между контейнерами и хостами.
  • 👍 17
  • ❤ 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →