DevOps – Telegram
DevOps
8.45K subscribers
1.47K photos
809 videos
28 files
1.75K links
Docker, Kubernetes, облачные сервисы (AWS, GCP, Azure), Infrastructure as a Code (Terraform, CloudFormation), администрирование Windows и Linux, сети TCP, IP, скрипты (Bash, PowerShell), Ansible, Jenkins, DevSecOps, логирование. По вопросам @evgenycarter
Download Telegram
Update. Ansible На Русском Языке 2

Часть 1 https://news.1rj.ru/str/i_DevOps/143

11- Переменные - Debug, Set_fact, Register
12- Блоки и Условия – Block-When
13- Циклы – Loop, With_Items, Until, With_fileglob
14- Шаблоны - Jinja Template
15- Создание Ролей - Roles
16- Внешние переменные - extra-vars
17- Использование Import, Include
18- Перенаправление выполнения Task из Playbook на определённый сервер - delegate_to
19- Перехват и Контроль ошибок
20- Хранение Секретов - ansible-vault

#devops #Ansible #девопс

Подпишись 👉@i_DevOps
👍2
Шпаргалка 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 #docker #девопс

Подпишись 👉@i_DevOps
👍4🔥2
Шпаргалка docker

Volumes
docker cp file <containerID>:/ - Скопировать в корень контейнера file
docker cp <containerID>:/file . - Скопировать file из корня контейнера в текущую директорию командной строки
docker volume create todo-db - Создать volume для постоянного хранения файлов
docker run -dp 3000:3000 --name=dev -v todo-db:/etc/todos container-name - Добавить named volumу todo-db к контейнеру (они ok когда мы не заморачиваемся где конкретно хранить данные)
docker run -dp 3000:3000 --name=dev --mount source=todo-db,target=/etc/todos container-name - тоже самое что команда сверху
docker volume ls - Отобразить список всех volume’ов
docker volume inspect - Инспекция volume’ов
docker volume rm - Удалить volume

Network
docker network create todo-app - Создать сеть
docker network rm - Удалить сеть
docker network ls - Отразить все сеть
docker network inspect - Вся информация о сети
docker network connect - Соединиться с сетью
docker network disconnect - Отсоединиться от сети

Пробросить текущую папку в контейнер и работать на хосте, -w working dir, sh shell
docker run -dp 3000:3000 \
-w /app -v "$(pwd):/app" \
node:12-alpine \
sh -c "yarn install && yarn run dev"


Запуск контейнера с присоединением к сети и заведение переменных окружения
docker run -d \
--network todo-app --network-alias mysql \ (алиас потом сможет резолвить докер для других контейнеров)
-v todo-mysql-data:/var/lib/mysql \ (автоматом создает named volume)
-e MYSQL_ROOT_PASSWORD=secret \ (в проде нельзя использовать, небезопасно)
-e MYSQL_DATABASE=todos \ (в проде юзают файлы внутри конейнера с логинами паролями)
mysql:5.7

Запуск контейнера с приложением
docker run -dp 3000:3000 \
-w /app -v "$(pwd):/app" \
--network todo-app \
-e MYSQL_HOST=mysql \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=secret \
-e MYSQL_DB=todos \
node:12-alpine \
sh -c "yarn install && yarn run dev"

CMD VS ENTRYPOINT
Разница в том, что CMD выполняется из под /bin/sh по дефолту, а ENTRYPOINT без него.
В случае с CMD, команда и параметры к ней захардкожены в образ, пример запуска с переопределением команды CMD ["sleep","10"]

docker run ubuntu sleep 5

Контейнер проспит 5 секунд вместо 10.

В случае с ENTRYPOINT, только команда захардкожена в образ, пример запуска с переопределением команды ENTRYPOINT ["sleep"] CMD ["10"] (Есл используются обе директивы, то в энтрипоинте команда, а в cmd параметры к ней)

docker run ubuntu 5

Контейнер проспит 5 секунд вместо 10.
Чтобы переопределить ENTRYPOINT:

docker run --entrypoint another-command ubuntu 20

Обычно практика такая, всегда используй CMD, если только не требуется каждый раз запускать контейнер с разным параметром (экономия времени, чтоб каждый раз не вводить строчку с командой)
👍3🔥1
Шпаргалка 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 #docker #девопс

Подпишись 👉@i_DevOps
👍10🔥2
Оформите карту Visa или Mastercard в банке Казахстана онлайн

Не можете продлить нужный сервис, снять валюту за рубежом или получить международный перевод?

Команда Финакс запустила сервис, в котором граждане РФ могут оформить онлайн карту Visa или Mastercard в банке Казахстана. С помощью этого бота уже более 1000 россиян открыли зарубежные счета.

Для чего она подходит:

- Оплата зарубежных сервисов и покупок

- Хранение валютных сбережений

- Получение оплат из-за рубежа

- Использование в путешествиях

Весь процесс проходит онлайн, от вас потребуется только загранпаспорт.

Оформить заявку и почитать ответы на частые вопросы можно в нашем боте:
👉 https://news.1rj.ru/str/Vostokpay_bot
👎1
Чек-лист: как защитить безопасность на Linux

Когда хакер взламывает систему Linux, скорее всего, злоумышленники внесут изменения в основные пакеты, такие как OpenSSH, ядро и так далее.

1 способ: проверяем общие изменения

Для начала, проверьте, нет ли изменений в этих пакетах. Возможно, мошенники поменяли файлы или бинарии? Проверить можно таким образом... Далее

#devops #девопс #Linux #Safety #Ubuntu


Подпишись 👉@i_DevOps
👍4
Media is too big
VIEW IN TELEGRAM
DevOps Engineering курс для начинающих.

16:22 -TDD
20:33 - CI
24:44 - CI Setup
34:44 - Code Coverage
46:55 - Linting
57:33 - Ephemeral Environments
1:10:55 - VM vs Container
1:23:22 - Rolling Deployments
1:28:33 - Blue Green Deployments
1:45:33 - Auto Scaling
1:58:44 - Service Discovery
2:02:22 - Log Aggregation
2:11:11 - Vital Production Metrics

#devops #девопс

Подпишись 👉@i_DevOps
👍102
Каковы принципиальные различия между DevOps и Agile?


#devops #девопс #Agile

Подпишись 👉@i_DevOps
👏1
Faros Community Edition (CE) - это платформа с открытым исходным кодом, которая соединяет точки между всеми вашими операционными источниками данных для получения единого представления на протяжении всего жизненного цикла разработки программного обеспечения.

https://github.com/faros-ai/faros-community-edition

https://community.faros.ai/docs

#devops #девопс

Подпишись 👉@i_DevOps
👍2
Media is too big
VIEW IN TELEGRAM
Основы Docker. Большой практический выпуск

0:00:00 Вступление
0:02:22 Что такое Docker?
0:16:29 Простой пример Hello World
0:31:34 Пример WEB приложения
0:35:55 Работаем с портами
0:41:10 Что такое docker volume
0:46:54 Поднимаем временную базу данных
0:55:26 Разворачиваем реальный проект
1:00:35 Что такое docker-compose
1:05:23 Создаем виртуальную машину (подробно)
1:08:25 Ставим Docker и Docker compose на Linux
1:10:17 Delpoy проекта с ипользованием GitHub
1:16:50 Delpoy проекта с ипользованием DockerHub

#devops #девопс #Docker

Подпишись 👉@i_DevOps
👍11
Media is too big
VIEW IN TELEGRAM
DevSecOps. Общее погружение

Зачем включать ИБ в дружную команду DevOps? Как сделать интеграцию максимально простой и понятной для всех участников DevSecOps. На вебинаре рассказали о том какие технологии используются в DevSecOps, зачем они нужны и как правильно их встроить в автоматизированный конвейер разработки.

Подробно обсудили:
• Наше видение современного ИТ в крупной компании – фреймворк ключевых элементов
• Обзор ключевых элементов DevSecOps Toolchain: что делает каждое решение
• Автоматизация ИБ: на что обращать внимание при выборе технологий
• DevOps и DevSecOps контур: автоматизация и защита разработки
• Onboarding: базовые советы при интеграции ИБ-решений в pipeline

Кому интересно:
• ИТ-специалистам, которые хотят узнать об изменениях в процессе разработки со стороны службы ИБ
• Разработчикам, которые хотят взглянуть на DevSecOps глазами ИБшника
• Руководителям, которые регулярно вовлечены в конфликты подразделений Разработки – ИБ – Эксплуатации
• Для тех, кто знает, что такое ИБ, но впервые слышит про DevSecOps

#devops #девопс #DevSecOps

Подпишись 👉@i_DevOps
👍1
Как упаковать (собрать) Docker-контейнер со своим проектом и запустить его

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

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

#devops #девопс #Docker

Подпишись 👉@i_DevOps
👍6
Как удалить все Docker образы и контейнеры

Не всегда нужно удалять всё, но объяснение данного "рецепта" объяснит как в целом удалять образы и контейнеры.

Не все Docker-образы одинаково полезны. Они занимают место на диске, найти их на файловой системе не так то просто. К тому же, Docker имеет свои команды для управления образами – так что лучше не лезть самому на файловую систему, а довериться ему – вдруг у него сохранится кеш, или какая-то иная мета-информация, которая будет только путать и его, и вас.

#devops #девопс #Docker

Подпишись 👉@i_DevOps
👍4
Сеть Docker

Docker заботится о сетевых аспектах, так что контейнеры могут коммуницировать друг с другом, а также с хостом Docker. Если вы пропишите ifconfig на хосте Docker, то увидите Ethernet адаптер Docker, который создаётся во время установки Docker на хост Docker. Далее

#devops #девопс #Docker

Подпишись 👉@i_DevOps
👍3
CI, CD и снова CD: принцип работы и отличия

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

В этой статье я постараюсь объяснить разницу между процессами непрерывной интеграции (Continuous Integration/CI), непрерывной доставки (Continuous Delivery/CD) и непрерывного развертывания (Continuous Deployment/CD). Мало кто разделяет два последних термина, но мы все-таки рассмотрим их по отдельности для общего понимания.

#devops #девопс #CI #CD

Подпишись 👉@i_DevOps
👍6
Связывание контейнеров Docker

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

#devops #девопс #Docker

Подпишись 👉@i_DevOps
👍1
Как диагностировать проблемы соединения в Kubernetes при помощи Mizu

Стоит попробовать Mizu – это ПО для мониторинга Kubernetes-трафика. Программа может сильно упростить ежедневную диагностику сетей, да и жизнь в целом.

Одна из наиболее частых задач, с которыми сталкиваются администраторы Kubernetes по ходу тестирования и дебаггинга – проверка коммуникаций между компонентами внутри сети. Далее


Original

#devops #девопс #Mizu #Kubernetes

Подпишись 👉@i_DevOps
👍2
Основные понятия в Kubernetes

Технология Kubernetes, также известная как k8s, – это open-source-система для автоматизации деплоинга и менеджмента контейнеризованных приложений (то есть запущенных в Docker).

Далее последует краткий ликбез по основным терминам, связанным с Kubernetes.

Original

#devops #девопс #Kubernetes

Подпишись 👉@i_DevOps
👍6🤔1
Forwarded from HighLoad++
🙌 Впереди выходные, а мы подготовили для вас полезную подборку видео: 5 самых популярных докладов 2021г. в секции «Архитектуры, масштабируемость»

🔹Транспорт будущего, или Как мы ускорили ВКонтакте в 1,5 раза. Александр Тоболь (ВКонтакте) https://bx.vc/08hhaw

🔹Service Mesh на стероидах. Часть 1: как построить управляемое взаимодействие между сотнями микросервисов. Алексей Ефимов (Netcracker) https://bx.vc/29vjdn

🔹Микросервисы с нуля. Семен Катаев (Авито) https://bx.vc/rk3oxz

🔹Как правильно выбирать очередь. Владимир Перепелица (Mail.Ru Group) https://bx.vc/8u5zy8

🔹 Платформа видеоконференций ВКонтакте – сделано удалённо. Александр Тоболь (ВКонтакте) https://bx.vc/osfasq

Встречаемся на Saint HighLoad++ 22 и 23 сентября в Санкт-Петербурге – https://bx.vc/quy8tf

🖐Отличных выходных!