Системный Администратор (Сисадмин)
14.2K subscribers
1.85K photos
1.82K videos
92 files
1.96K links
Настройка серверов Windows, Linux, сетевое оборудование Cisco Systems, D-Link, HP, Huawei, Juniper, MikroTik. Книги и мануалы для сисадминов.
По всем вопросам @evgenycarter

РКН clck.ru/3KoGJ3
Download Telegram
Forwarded from DevOps
Certified Kubernetes Application Developer (CKAD) Study Guide: In-Depth Guidance and Practice
Автор: Benjamin Muschko (2021)

Сегодня очень востребованы разработчики, способные работать, устранять неполадки и отслеживать приложения в Kubernetes. Чтобы удовлетворить эту потребность, Фонд Cloud Native Computing Foundation создал сертификационный экзамен, чтобы устанавливать доверие к разработчику и его ценность на рынке труда для работы в среде Kubernetes. Экзамен Certified Kubernetes Application Developer (CKAD) отличается от типичного формата других тестов. Вместо этого CKAD - это экзамен, основанный на успеваемости, который требует глубокого знания решений задач в условиях нехватки времени. Это учебное пособие проведет вас по всем темам, которые вам понадобятся для полноценной подготовки к экзамену. Автор также делится своим личным опытом подготовки ко всем аспектам экзамена.

Скачать книгу

#devops #девопс

Подпишись 👉@i_DevOps
👍2
Forwarded from DevOps
Monitoring & Managing Docker Container is Easy with These 8 CLI Tools

https://geekflare.com/docker-container-monitoring/


Упрощаем мониторинг и управление контейнерами Docker при помощи инструментов CLI

https://habr.com/ru/company/first/blog/658951/

#devops #девопс #Docker
Подпишись 👉@i_DevOps
👍5
Forwarded from DevOps
Nginx. О чем не пишут в книгах

Эта статья родилась случайно. Слоняясь по книжному фестивалю и наблюдая, как дочка пытает консультантов, заставляя их искать Иэна Стюарта, мой глаз зацепился за знакомые буквы на обложке: "Nginx".

#devops #девопс #Nginx

Подпишись 👉@i_DevOps
👍5🔥2
Forwarded from DevOps
Media is too big
VIEW IN TELEGRAM
Курс по Kubernetes

Пакетный менеджер Helm
Мониторинг и логирование в Kubernetes
Постоянные хранилища в Kubernetes
Сеть в Kubernetes
Kubernetes. Управление доступом (RBAC)
КМБ-5 | Вебинар 3. Kubernetes. Архитектура, основные компоненты
КМБ-5 | Вебинар 2. Сети и хранилища в Docker
КМБ-5 | Вебинар 1. Что такое Docker
КМБ-5 | Вводный вебинар. Организационные моменты курса

https://www.youtube.com/playlist?list=PLqVZIPeC5H0mmPBUm0VjKM446-4YITIBJ

#devops #девопс #Kubernetes

Подпишись 👉@i_DevOps
👍3
Forwarded from DevOps
Kilo is a multi-cloud network overlay built on WireGuard and designed for Kubernetes (k8s + wg = kg)

https://github.com/squat/kilo

#devops #девопс #Kubernetes

Подпишись 👉@i_DevOps
👍1👎1
Forwarded from DevOps
Media is too big
VIEW IN TELEGRAM
Курс молодого бойца по Kubernetes. 1 поток.

Что такое Docker. Сети и хранилища в Docker
Kubernetes. Архитектура и основы компонентов
Kubernetes. Сеть и постоянные хранилища
DevOps & CI/CD

https://www.youtube.com/playlist?list=PLqVZIPeC5H0kCWA8hjf97JPOuyCSS_rSU

#devops #девопс #Kubernetes

Подпишись 👉@i_DevOps
👍6
Forwarded from DevOps
Представляем glaball для управления множеством GitLab-инстансов

В наиболее популярном случае иметь множество инсталляций GitLab — это антипаттерн. Однако обстоятельства бывают разными: специализация нашего бизнеса привела к тому, что мы администрируем десятки self-hosted GitLab-инстансов обслуживаемых клиентов. Периодически у нас возникает потребность проделать какие-то действия на всех GitLab’ах сразу, чтобы не тратить время на многократное повторение рутинных операций. Все началось с необходимости мониторинга за критическими обновлениями для GitLab. Но аппетиты росли: со временем нам уже хотелось искать по содержимому файлов во всех инсталляциях или даже создавать пользователей.

Расскажем о том, как мы решили эти задачи в рамках внутренней разработки, которую теперь публикуем как Open Source-проект под названием glaball.

#devops #девопс #GitLab

Подпишись 👉@i_DevOps
👍1
Forwarded from DevOps
Update. Ansible На Русском Языке 2

Часть 1 https://xn--r1a.website/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
🔥3👍2🤡1
Forwarded from DevOps
Шпаргалка 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
👍11
Forwarded from DevOps
Media is too big
VIEW IN TELEGRAM
DevSecOps. Общее погружение

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

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

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

#devops #девопс #DevSecOps

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

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

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


Original

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

Подпишись 👉@i_DevOps
👍2
Forwarded from DevOps
Как определить DNS в контейнерах Docker

Когда вы развертываете контейнер в сети, если он не может найти DNS-сервер, определенный в файле /etc/resolv.conf, по умолчанию он будет использовать DNS, настроенный для хоста.

Это может быть хорошо и удобно для определенных ситуаций.

Но что если (возможно, по соображениям безопасности) вы не хотите, чтобы ваши контейнеры использовали тот же DNS, что и хосты. Далее

#devops #девопс #Docker

Подпишись 👉@i_DevOps
👍4
Forwarded from DevOps
Naml - это инструмент управления конфигурацией для описания конфигурации Kubernetes в Go. Имеет хороший инструмент для преобразования YAML в Go.

https://github.com/kris-nova/naml

#devops #девопс #Kubernetes

Подпишись 👉@i_DevOps
👍4🤯2
Forwarded from DevOps
Kubernetes

How to Install Kubernetes via minikube on Windows Server 2019 Hyper V
How to deploy a Nginx application in Kubernetes using minikube on Windows Server 2019
How to run multiple minikube clusters and multiple node kubernetes cluster
How to install a single node Kubernetes cluster on Ubuntu using Minikube


#devops #девопс #Kubernetes

Подпишись 👉@i_DevOps
👍3
Forwarded from DevOps
Стратегии деплоймента

Сделайте реализацию blue/green стратегии деплоймента для Kubernetes на основе деплойментов, сервиса и ingress’а и опишите как переключать версии.

### Конфигурация ingress'а
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: / spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app-service
port:
number: 80

### Сервис
apiVersion: v1
kind: Service
metadata:
name: app-service
spec:
selector:
app: app
color: blue
ports:
- protocol: TCP
port: 80
targetPort: 8080

### Деплоймент синей версии
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-blue
labels:
app: app
color: blue
spec:
replicas: 1
selector:
matchLabels:
app: app
color: blue
template:
metadata:
labels:
app: app
color: blue
spec:
containers:
- name: app
image: docker.registry.io/app:1.0.0
ports:
- containerPort: 8080

### Деплоймент зелёной версии
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-green
labels:
app: app
color: green
spec:
replicas: 1
selector:
matchLabels:
app: app
color: green
template:
metadata:
labels:
app: app
color: green
spec:
containers:
- name: app
image: docker.registry.io/app:1.0.0
ports:
- containerPort: 8080
### Переключение версий осуществляется путём изменения селекторов в сервисе


#devops #девопс #Kubernetes

Подпишись 👉@i_DevOps
👍4
Forwarded from DevOps
Что, если… забыть про безопасность кластера k8s?

Я думаю, многие слышали про громкий инцидент, произошедший с Tesla в 2018 году, когда группа хакеров через консоль Kubernetes смогла получить доступ к аккаунту. После получения доступа ребята изрядно повеселились, настроив майнер в облачном сервисе Amazon Web Services.

У многих людей сразу же возникнут закономерные вопросы “А как они это сделали?” и “Почему многоуважаемые ИБ данной компании не подумали о потенциальной дыре в безопасности?”. Как правило, при разработке любого продукта могут быть лишь две причины возникновения уязвимостей. Первая причина - человеческий фактор. Ведь кто из нас не забывал что-либо в ходе кропотливой работы над проектом или же не откладывал в бэклог решение “не самых срочных вопросов..?”. Вторая причина - отсутствие необходимых компетенций в той или иной области. Далее

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Forwarded from DevOps
Gitlab ci/cd

В прод с помощью GITLAB CI/CD. На простом примере. Основы.
GITLAB CI/CD vs JENKINS. Что выбрать для своих CI CD pipeline?
GITLAB CI CD сокращаем код. Gitlab ci include, extends, reference, remote, local
Docker BUILD в GITLAB CI CD и kubernetes. Как правильно? Бонус настройка gitlab runner

источник

#devops #девопс

Подпишись 👉@i_DevOps
👍5
Forwarded from DevOps
15 лучших практик DevSecOps

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

Чтобы помочь вам быть на шаг впереди, мы составили список из 15 лучших практик и проблем безопасности DevOps.

https://itmozg.ru/15-luchshih-praktik-devsecops/

#devops #девопс

Подпишись 👉@i_DevOps
👍1
🏗 KVM + Terraform: Поднимаем виртуалки как код

Мы научились управлять KVM через virsh, но если вам нужно поднять 10 одинаковых серверов для тестов, а потом удалить их одной командой - ручной ввод утомляет.

На сцену выходит Terraform. Обычно его ассоциируют с облаками (AWS, Azure), но он прекрасно работает и с «железным» гипервизором через провайдер libvirt.

🛠 Что нам понадобится?

1. Установленный Terraform.
2. Плагин-провайдер dmacvicar/libvirt (стандарт де-факто для KVM).
3. Образ системы (Cloud Image), например, Ubuntu Cloud.

📄 Пишем рецепт (main.tf)

Создайте папку, положите туда файл main.tf и опишите желаемое состояние:


terraform {
required_providers {
libvirt = {
source = "dmacvicar/libvirt"
}
}
}

# 1. Подключаемся к локальному KVM
provider "libvirt" {
uri = "qemu:///system"
}

# 2. Скачиваем образ диска (или берем локальный)
resource "libvirt_volume" "ubuntu_base" {
name = "ubuntu-base.qcow2"
pool = "default"
# Ссылка на официальный Cloud-образ
source = "https://cloud-images.ubuntu.com/minimal/releases/jammy/release/ubuntu-22.04-minimal-cloudimg-amd64.img"
format = "qcow2"
}

# 3. Описываем Виртуальную Машину
resource "libvirt_domain" "my_web_server" {
name = "terraform-vm-01"
memory = "1024"
vcpu = 1

network_interface {
network_name = "default" # NAT сеть libvirt
}

disk {
volume_id = libvirt_volume.ubuntu_base.id
}

console {
type = "pty"
target_port = "0"
target_type = "serial"
}

graphics {
type = "spice"
listen_type = "address"
autoport = true
}
}



🚀 Запускаем магию

В терминале переходим в папку с файлом и выполняем три команды:

1. terraform init - Скачает провайдер libvirt.
2. terraform plan - Покажет, что именно он собирается создать (DRY RUN).
3. terraform apply - Boom! Скачивается образ, создается диск, запускается VM.

🤔 А как удалить?

Не нужно вспоминать имена машин и удалять диски вручную. Просто введите:
terraform destroy
И Terraform аккуратно зачистит за собой всё, что создал.

💡 Почему это круто?

🩵Воспроизводимость: Вы можете отправить этот файл коллеге, и он поднимет точно такую же среду.

🩵Git: Вы храните конфигурацию инфраструктуры в репозитории. Видна история изменений.

🩵Cloud-Init: В Terraform можно добавить конфигурацию cloud-init (создать пользователя, добавить SSH-ключ, установить пакеты при первом старте), чтобы получить полностью готовый сервер, в который даже не нужно заходить.

👇 Коллеги, какой инструмент IaC вы предпочитаете? Terraform, Ansible или, может быть, Pulumi?

#sysadmin #devops #terraform #kvm #iac #automation

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10