This media is not supported in your browser
VIEW IN TELEGRAM
Murex - bash-подобная среда оболочки и сценариев с расширенными возможностями, разработанными для обеспечения безопасности и производительности (например, более интеллектуальный инструментарий DevOps).
https://github.com/lmorg/murex
👉 @devops_star
https://github.com/lmorg/murex
👉 @devops_star
👍4
Media is too big
VIEW IN TELEGRAM
Как стать DevOps Инженером с Нуля, что учить и в каком порядке
00:00 – 1. Вступление
01:06 – 2. Всевозможные компетенции DevOps инженера
10:35 – 3. Кому проще стать DevOps
15:01 – 4. Что учить по минимуму и в каком порядке
30:04 – 4.1. Основы Network TCP/IP
31:36 – 4.2. Администрирование Windows
34:09 – 4.3. Основы Linux
35:54 – 4.4. Ansible
36:48 – 4.5. Git
37:37 – 4.6. GitHub
38:04 – 4.7. Jenkins
38:23 – 4.8. Docker+DockerHub
38:44 – 4.9. Cloud Platform AWS
42:10 – 4.10. CloudFormation + Terraform
43:25 – 5. Курс DevOps Engineering в JohnBryce, Израиль
49:12 – 6. Как стать профессиональным DevOps инженером
54:24 – 7. Эпилог
👉 @devops_star
00:00 – 1. Вступление
01:06 – 2. Всевозможные компетенции DevOps инженера
10:35 – 3. Кому проще стать DevOps
15:01 – 4. Что учить по минимуму и в каком порядке
30:04 – 4.1. Основы Network TCP/IP
31:36 – 4.2. Администрирование Windows
34:09 – 4.3. Основы Linux
35:54 – 4.4. Ansible
36:48 – 4.5. Git
37:37 – 4.6. GitHub
38:04 – 4.7. Jenkins
38:23 – 4.8. Docker+DockerHub
38:44 – 4.9. Cloud Platform AWS
42:10 – 4.10. CloudFormation + Terraform
43:25 – 5. Курс DevOps Engineering в JohnBryce, Израиль
49:12 – 6. Как стать профессиональным DevOps инженером
54:24 – 7. Эпилог
👉 @devops_star
👍4
Выводим список установленных пакетов в Linux по дате
Порой необходимо узнать когда тот или иной пакет был установлен в операционной системе (например, в целях аудита). В данной статье рассмотрим как вывести список установленных пакетов в Linux, отсортированный по дате установки - давайте разберемся!
https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10
👉 @devops_star
Порой необходимо узнать когда тот или иной пакет был установлен в операционной системе (например, в целях аудита). В данной статье рассмотрим как вывести список установленных пакетов в Linux, отсортированный по дате установки - давайте разберемся!
https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10
👉 @devops_star
👍4🫡1
Media is too big
VIEW IN TELEGRAM
Что такое CI/CD? // Зачем и как работает
Что такое CI/CD: простое объяснение для новичков про Continuous Integration, Continuous Delivery/Deployment. Они же - непрерывная интеграция и непрерывная доставка или развертывание. Что там за магия происходит под капотом, зачем это вообще придумали и какие цели преследуются?
Расскажу про то, какие есть процессы внутри, как и где это запускается без привязки к конкретным инструментам вроде Gitlab и Jenkins. Про артефакты, Nexus, тест-гейты, агенты и раннеры.
источник
👉 @devops_star
Что такое CI/CD: простое объяснение для новичков про Continuous Integration, Continuous Delivery/Deployment. Они же - непрерывная интеграция и непрерывная доставка или развертывание. Что там за магия происходит под капотом, зачем это вообще придумали и какие цели преследуются?
Расскажу про то, какие есть процессы внутри, как и где это запускается без привязки к конкретным инструментам вроде Gitlab и Jenkins. Про артефакты, Nexus, тест-гейты, агенты и раннеры.
источник
👉 @devops_star
👍4
Топ-10 опций команды docker run
Консольная команда
Пример команды с опциями, которые будут рассмотрены в данной статье:
Начнем с азов. Консольная команда docker run создает из docker-образа контейнер (точнее создает доступный для записи слой поверх слоев, содержащихся в docker-образе) и запускает его (выполняет указанную команду). В общем виде это выглядит так:
Команда docker run очень похожа на комбинацию команд docker create ... и docker start ..., подробнее о которых можно узнать в официальной документации.
Топ-10 опций команды docker run в алфавитном порядке.
👉 @devops_star
Консольная команда
docker run
имеет около сотни опций, в том числе -d
, -i
, -t
, -v
и -w
. В данной статье рассмотрим десять наиболее популярных опций, с которыми наверняка придется работать. Давайте разберемся!Пример команды с опциями, которые будут рассмотрены в данной статье:
docker run \
--rm \
--detach \
--env KEY=VALUE \
--ip 10.10.9.75 \
--publish 3000:3000 \
--volume my_volume \
--name my_container \
--tty --interactive \
--volume /my_volume \
--workdir /app \
IMAGE bash
Начнем с азов. Консольная команда docker run создает из docker-образа контейнер (точнее создает доступный для записи слой поверх слоев, содержащихся в docker-образе) и запускает его (выполняет указанную команду). В общем виде это выглядит так:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Команда docker run очень похожа на комбинацию команд docker create ... и docker start ..., подробнее о которых можно узнать в официальной документации.
Топ-10 опций команды docker run в алфавитном порядке.
--detach
, -d
- по умолчанию, docker-контейнер запускается присоединенным (attached) к стандартным потокам ввода-вывода. Параметр -d, --detach позволяет запускать контейнер в фоне и не выводить на экран содержимое потоков ввода-вывода.--entrypoint
- устанавливает или переопределяет используемую по умолчанию команду (и параметры) из docker-образа. Подробнее о Docker ENTRYPOINT можно узнать здесь.--env
, -e
- устанавливает переменные окружения в формате пар КЛЮЧ=ЗНАЧЕНИЕ. Если у вас есть список переменных окружения в файле, тогда необходимо использовать опцию --env-file.--ip
- назначает docker-контейнеру IP-адрес, например, --ip=10.10.9.75.
--name
- назначает docker-контейнеру имя (--name my-super-container).--publish
, -p
или --publish-all
, -P
- сопоставляет порт(ы) docker-контейнера порту(ам) на хост системе. Стоит отметить, что --publish-all откроет доступ к портам, описанным в Dockerfile с помощью директивы EXPOSE.--rm
- автоматически удалить контейнер после завершения его работы (в том числе, при завершении с ошибкой).--tty, -t
- назначает псевдо-TTY, подключенный к STDIN контейнера. Зачастую используется с опцией --interactive, -i - например, если вам нужно подключиться к оболочке (bash) внутри docker-контейнера для выполнения каких-то действий.--volume, -v
- монтирование тома. Подробнее о томах можно почитать здесь.--workdir, -w
- устанавливает рабочую директорию внутри docker-контейнера. Например, если вы скопировали некие файлы в папку app контейнера, то вполне разумно будет установить этот каталог в качестве рабочей директории.👉 @devops_star
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Ansible На Русском Языке
1 - Автоконфигурирование для DevOps - Полный Курс на Простом Языке
2 - Установка на Ubuntu и CentOS
3 - Установка на Amazon Linux через PIP
4 - Подключение к серверам LINUX
5 - Подключение к серверам WINDOWS
6 - Правила создания файла Inventory
7 - Запуск Ad-Hoc Комманд
8 - Правила Формата YAML
9 - Перенос переменных в group_vars
10 - Первые Playbook
👉 @devops_star
1 - Автоконфигурирование для DevOps - Полный Курс на Простом Языке
2 - Установка на Ubuntu и CentOS
3 - Установка на Amazon Linux через PIP
4 - Подключение к серверам LINUX
5 - Подключение к серверам WINDOWS
6 - Правила создания файла Inventory
7 - Запуск Ad-Hoc Комманд
8 - Правила Формата YAML
9 - Перенос переменных в group_vars
10 - Первые Playbook
👉 @devops_star
👍7❤1
Media is too big
VIEW IN TELEGRAM
Kubernetes Tutorial for Beginners [FULL COURSE in 4 Hours]
0:00 - Course Overview
2:18 - What is K8s
5:20 - Main K8s Components
22:29 - K8s Architecture
34:47 - Minikube and kubectl - Local Setup
44:52 - Main Kubectl Commands - K8s CLI
1:02:03 - K8s YAML Configuration File
1:16:16 - Demo Project: MongoDB and MongoExpress
1:46:16 - Organizing your components with K8s Namespaces
2:01:52 - K8s Ingress explained
2:24:17 - Helm - Package Manager
2:38:07 - Persisting Data in K8s with Volumes
2:58:38 - Deploying Stateful Apps with StatefulSet
3:13:43 - K8s Services explained
👉 @devops_star
0:00 - Course Overview
2:18 - What is K8s
5:20 - Main K8s Components
22:29 - K8s Architecture
34:47 - Minikube and kubectl - Local Setup
44:52 - Main Kubectl Commands - K8s CLI
1:02:03 - K8s YAML Configuration File
1:16:16 - Demo Project: MongoDB and MongoExpress
1:46:16 - Organizing your components with K8s Namespaces
2:01:52 - K8s Ingress explained
2:24:17 - Helm - Package Manager
2:38:07 - Persisting Data in K8s with Volumes
2:58:38 - Deploying Stateful Apps with StatefulSet
3:13:43 - K8s Services explained
👉 @devops_star
👍4
Шпаргалка docker
Install DOCKER
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Info and Registry
docker info - Информация обо всём в установленном Docker
docker history - История образа
docker tag - Дать тег образу локально или в registry
docker login - Залогиниться в registry
docker search - Поиск образа в registry
docker pull - Загрузить образ из Registry себе на хост
docker push - Отправить локальный образ в registry
Container Management
docker ps -а - Посмотреть все контейнеры
docker start container-name - Запустить контейнер
docker kill/stop container-name - Убить (SIGKILL) /Остановить (SIGTERM) контейнер
docker logs --tail 100 container-name - Вывести логи контейнера, последние 100 строк
docker inspect container-name - Вся инфа о контейнере + IP
docker rm container-name - Удалить контейнер (поле каждой сборки Dockerfile)
docker rm -f $(docker ps -aq) - Удалить все запущенные и остановленные контейнеры
docker events container-name
docker port container-name - Показать публичный порт контейнера
docker top container-name - Отобразить процессы в контейнере
docker stats container-name - Статистика использования ресурсов в контейнере
docker diff container-name - Изменения в ФС контейнера
Images
docker build -t my_app . - Билд контейнера в текущей папке, Скачивает все слои для запуска образа
docker images / docker image ls - Показать все образы в системе
docker image rm / docker rmi image - Удалить image
docker commit <containerName/ID> lepkov/debian11slim:version3- Создает образ из контейнера
docker insert URL - вставляет файл из URL в контейнер
docker save -o backup.tar - Сохранить образ в backup.tar в STDOUT с тегами, версиями, слоями
docker load - Загрузить образ в .tar в STDIN с тегами, версиями, слоями
docker import - Создать образ из .tar
docker image history --no-trunc - Посмотреть историю слоёв образа
docker system prune -f - Удалит все, кроме используемого (лучше не использовать на проде, ещё кстати из-за старого кеша может собираться cтарая версия контейнера)
Run
docker run -d -p 80:80 -p 22:22 debian:11.1-slim sleep infinity (--rm удалит после закрытия контейнера, --restart unless-stopped добавит автозапуск контейнера) - Запуск контейнера интерактивно или как демона/detached (-d), Порты: слева хостовая система, справа в контейнере, пробрасывается сразу 2 порта 80 и 22, используется легкий образ Debian 11 и команда бесконечный сон
docker update --restart unless-stopped redis - добавит к контейнеру правило перезапускаться при закрытии, за исключением команды стоп, автозапуск по-сути
docker exec -it container-name /bin/bash (ash для alpine) - Интерактивно подключиться к контейнеру для управления, exit чтобы выйти
docker attach container-name - Подключиться к контейнеру чтоб мониторить ошибки логи в реалтайме
👉 @devops_star
Install DOCKER
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Info and Registry
docker info - Информация обо всём в установленном Docker
docker history - История образа
docker tag - Дать тег образу локально или в registry
docker login - Залогиниться в registry
docker search - Поиск образа в registry
docker pull - Загрузить образ из Registry себе на хост
docker push - Отправить локальный образ в registry
Container Management
docker ps -а - Посмотреть все контейнеры
docker start container-name - Запустить контейнер
docker kill/stop container-name - Убить (SIGKILL) /Остановить (SIGTERM) контейнер
docker logs --tail 100 container-name - Вывести логи контейнера, последние 100 строк
docker inspect container-name - Вся инфа о контейнере + IP
docker rm container-name - Удалить контейнер (поле каждой сборки Dockerfile)
docker rm -f $(docker ps -aq) - Удалить все запущенные и остановленные контейнеры
docker events container-name
docker port container-name - Показать публичный порт контейнера
docker top container-name - Отобразить процессы в контейнере
docker stats container-name - Статистика использования ресурсов в контейнере
docker diff container-name - Изменения в ФС контейнера
Images
docker build -t my_app . - Билд контейнера в текущей папке, Скачивает все слои для запуска образа
docker images / docker image ls - Показать все образы в системе
docker image rm / docker rmi image - Удалить image
docker commit <containerName/ID> lepkov/debian11slim:version3- Создает образ из контейнера
docker insert URL - вставляет файл из URL в контейнер
docker save -o backup.tar - Сохранить образ в backup.tar в STDOUT с тегами, версиями, слоями
docker load - Загрузить образ в .tar в STDIN с тегами, версиями, слоями
docker import - Создать образ из .tar
docker image history --no-trunc - Посмотреть историю слоёв образа
docker system prune -f - Удалит все, кроме используемого (лучше не использовать на проде, ещё кстати из-за старого кеша может собираться cтарая версия контейнера)
Run
docker run -d -p 80:80 -p 22:22 debian:11.1-slim sleep infinity (--rm удалит после закрытия контейнера, --restart unless-stopped добавит автозапуск контейнера) - Запуск контейнера интерактивно или как демона/detached (-d), Порты: слева хостовая система, справа в контейнере, пробрасывается сразу 2 порта 80 и 22, используется легкий образ Debian 11 и команда бесконечный сон
docker update --restart unless-stopped redis - добавит к контейнеру правило перезапускаться при закрытии, за исключением команды стоп, автозапуск по-сути
docker exec -it container-name /bin/bash (ash для alpine) - Интерактивно подключиться к контейнеру для управления, exit чтобы выйти
docker attach container-name - Подключиться к контейнеру чтоб мониторить ошибки логи в реалтайме
👉 @devops_star
👍11
Шпаргалка docker
Best Practice
🟢 Следуй принципу минимальных привилегий, процессы в контейнере никогда не должны выполняться из под рута, кроме редких случаев, нужно добавлять команду user и менять юзера на non-root.
🟢 Не привязываться к UID, он динамичен, можно записать во временную папку UID.
🟢 Сделать все исполняемые файлы владельцем рута, чтобы никто не изменил исполняемые файлы, а пользователю достаточно только права на выполнение.
🟢 Чем меньше компонентов и открытых портов, тем меньше поверхность для атак.
🟢 Использовать multistage для промежуточного контейнера для компиляции всего, зависимостей, временных файлов, образ может весить на треть меньше.
🟢 Distroless с чистого листа, использовать минимальный набор пакетов, например избавиться от образа Ubuntuи выбрать Debian-base, наши контейнеры содержат уязвимости изначального образа, чекать это.
🟢 Нужно обновлять всё до того, как выйдет из под поддержки.
🟢 Оставлять только те порты, которые реально нужны, избегать 22 и 21 3389 (ssh & ftp & rdp).
🟢 Никогда не помещайте логины/пароли в команде, в докерфайлах, переменных, docker secret или любой другой менеджер секретов ok.
🟢 Не использовать ADD, только COPY (когда используем точку - это воркдир где лежит докерфайл).
🟢 При сборке используйте .dockerignore чтобы убрать сенситив дату, это как .gitignore.
🟢 При сборке вначале команд лучше кешировать команду ран, а потом скопировать исходные данные.
🟢 Метадату записать.
🟢 Использовать тесты типа Linter и сканеры образов для CI.
🟢 Время от времени делать prune, докер любит много места жрать
👉 @devops_star
Best Practice
👉 @devops_star
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
Media is too big
VIEW IN TELEGRAM
Кто такой DevOps-инженер // Что должен уметь, какие задачи, сколько платят
Кто такой этот ваш DevOps-инженер? Чем он занимается, какие задачи? Что должен уметь девопс-инженер? Какие бывают Девопс-инженеры? За что им столько платят, а главное — сколько платят? Всё это я разбираю в видео.
⏱️ Таймкоды:
0:00 Вступление
1:00 Цикл разработки по DevOps
2:14 Какие бывают DevOps-инженеры
2:37 И швец, и жнец
4:40 Делаешь что-то одно
6:25 Общие плюсы и минусы профессии
8:15 Программисты и ChatGPT забирают работу
10:00 Задачи DevOps-инженера
11:30 Формы развития навыков, I, T-shaped
12:34 Софт-скиллы DevOps-инженера
13:25 Хард-скиллы DevOps-инженера
15:12 Кто становится DevOps-инженером
15:56 За что нам платят деньги
17:00 Смотрим вакансии и анализ зарплат
источник
👉 @devops_star
Кто такой этот ваш DevOps-инженер? Чем он занимается, какие задачи? Что должен уметь девопс-инженер? Какие бывают Девопс-инженеры? За что им столько платят, а главное — сколько платят? Всё это я разбираю в видео.
⏱️ Таймкоды:
0:00 Вступление
1:00 Цикл разработки по DevOps
2:14 Какие бывают DevOps-инженеры
2:37 И швец, и жнец
4:40 Делаешь что-то одно
6:25 Общие плюсы и минусы профессии
8:15 Программисты и ChatGPT забирают работу
10:00 Задачи DevOps-инженера
11:30 Формы развития навыков, I, T-shaped
12:34 Софт-скиллы DevOps-инженера
13:25 Хард-скиллы DevOps-инженера
15:12 Кто становится DevOps-инженером
15:56 За что нам платят деньги
17:00 Смотрим вакансии и анализ зарплат
источник
👉 @devops_star
👍8