Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam

Топ прошлой недели

  • CharlotteLink CharlotteLink 1 пост
  • Syslikagronom Syslikagronom 7 постов
  • BydniKydrashki BydniKydrashki 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

DevOps

С этим тегом используют

IT IT юмор Программирование Linux Программист Юмор Сисадмин Все
241 пост сначала свежее
Stravnik
Stravnik
1 год назад
Лига Сисадминов

Сохранение и загрузка нескольких Docker образов⁠⁠

Исходный код представленный в этой заметке доступен в моем репозитории GitHub.

Код скрипта для сохранения (save-images.sh):

#!/bin/bash

list="images.txt"

images="images.tar.gz"

usage() {

echo "USAGE: $0 [--image-list images.txt] [--images images.tar.gz]"

echo " [-l|--image-list path] text file with list of images; one image per line."

echo " [-i|--images path] tar.gz generated by docker save."

echo " [-h|--help] Usage message"

}

POSITIONAL=()

while [[ $# -gt 0 ]]; do

key="$1"

case $key in

-i | --images)

images="$2"

shift # past argument

shift # past value

;;

-l | --image-list)

list="$2"

shift # past argument

shift # past value

;;

-h | --help)

help="true"

shift

;;

*)

usage

exit 1

;;

esac

done

if [[ $help ]]; then

usage

exit 0

fi

pulled=""

while IFS= read -r i; do

[ -z "${i}" ] && continue

if docker pull "${i}" >/dev/null 2>&1; then

echo "Image pull success: ${i}"

pulled="${pulled} ${i}"

else

if docker inspect "${i}" >/dev/null 2>&1; then

pulled="${pulled} ${i}"

else

echo "Image pull failed: ${i}"

fi

fi

done <"${list}"

echo "Creating ${images} with $(echo ${pulled} | wc -w | tr -d '[:space:]') images"

docker save $(echo ${pulled}) | gzip --stdout >${images}

Код для загрузки (load-images.sh):

#!/bin/bash

images="images.tar.gz"

list="images.txt"

windows_image_list=""

windows_versions="1809"

usage() {

echo "USAGE: $0 [--images images.tar.gz] --registry my.registry.com:5000"

echo " [-l|--image-list path] text file with list of images; one image per line."

echo " [-i|--images path] tar.gz generated by docker save."

echo " [-r|--registry registry:port] target private registry:port."

echo " [--windows-image-list path] text file with list of images used in Windows. Windows image mirroring is skipped when this is empty"

echo " [--windows-versions version] Comma separated Windows versions. e.g., \"1809,2004,20H2\". (Default \"1809\")"

echo " [-h|--help] Usage message"

}

push_manifest() {

export DOCKER_CLI_EXPERIMENTAL=enabled

manifest_list=()

for i in "${arch_list[@]}"; do

manifest_list+=("$1-${i}")

done

echo "Preparing manifest $1, list[${arch_list[@]}]"

docker manifest create "$1" "${manifest_list[@]}" --amend

docker manifest push "$1" --purge

}

while [[ $# -gt 0 ]]; do

key="$1"

case $key in

-r | --registry)

reg="$2"

shift # past argument

shift # past value

;;

-l | --image-list)

list="$2"

shift # past argument

shift # past value

;;

-i | --images)

images="$2"

shift # past argument

shift # past value

;;

--windows-image-list)

windows_image_list="$2"

shift # past argument

shift # past value

;;

--windows-versions)

windows_versions="$2"

shift # past argument

shift # past value

;;

-h | --help)

help="true"

shift

;;

*)

usage

exit 1

;;

esac

done

if [[ -z $reg ]]; then

usage

exit 1

fi

if [[ $help ]]; then

usage

exit 0

fi

docker load --input ${images}

linux_images=()

while IFS= read -r i; do

[ -z "${i}" ] && continue

linux_images+=("${i}")

done <"${list}"

arch_list=()

if [[ -n "${windows_image_list}" ]]; then

IFS=',' read -r -a versions <<<"$windows_versions"

for version in "${versions[@]}"; do

arch_list+=("windows-${version}")

done

windows_images=()

while IFS= read -r i; do

[ -z "${i}" ] && continue

windows_images+=("${i}")

done <"${windows_image_list}"

# use manifest to publish images only used in Windows

for i in "${windows_images[@]}"; do

if [[ ! " ${linux_images[@]}" =~ " ${i}" ]]; then

case $i in

*/*)

image_name="${reg}/${i}"

;;

*)

image_name="${reg}/${i}"

;;

esac

push_manifest "${image_name}"

fi

done

fi

arch_list+=("linux-amd64")

for i in "${linux_images[@]}"; do

[ -z "${i}" ] && continue

arch_suffix=""

use_manifest=false

if [[ (-n "${windows_image_list}") && " ${windows_images[@]}" =~ " ${i}" ]]; then

# use manifest to publish images when it is used both in Linux and Windows

use_manifest=true

arch_suffix="-linux-amd64"

fi

case $i in

*/*)

image_name="${reg}/${i}"

;;

*)

image_name="${reg}/${i}"

;;

esac

docker tag "${i}" "${image_name}${arch_suffix}"

docker push "${image_name}${arch_suffix}"

if $use_manifest; then

push_manifest "${image_name}"

fi

done

Пример списка образов (images.txt):

quay.io/prometheus/prometheus:v2.36.1

quay.io/prometheus/node-exporter:v1.3.1

grafana/grafana:9.0.3

Показать полностью
[моё] DevOps Docker Github Длиннопост Текст
9
Stravnik
Stravnik
1 год назад

Токсичные репозитории/Toxic repos. Что сейчас происходит с open source?⁠⁠

Запись моего доклада с конференции DevOops 2023. В нем я затронул тему токсичных репозиториев и такого понятия как protestware.
Мой Телеграм канал: https://t.me/devops_spb_ru
Мой сайт: https://devops.spb.ru/

[моё] DevOps Open Source Доклад Видео YouTube
7
Stravnik
Stravnik
1 год назад

Что должен знать Junior DevOps⁠⁠

Что должен знать Junior DevOps DevOps, Гайд, Linux, Windows

Сегодня же я хочу поднять тему «Что должен знать начинающий Junior DevOps». Каков же самый минимум знаний для этого?

Всем привет друзья, давайте разберемся!

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

Быть Middle System Administrator

Тут идея в том, что вы должны хорошо разбираться в среде, в которой будут работать ваши приложения. Как происходит запуск, что делать, если вы в логах увидели ошибку, как грамотно настроить ту же операционную систему. И да, сейчас речь шла про ОС *nix. Вам это очень сильно пригодится.

  • Вам необходимо пройти хотя бы базовый курс по Linux

  • Обычно это Ubuntu, Debian или же CentOS

  • Изучить bash, он вам точно пригодится

  • И главное во время обучения – полностью погрузиться в происходящее. Не просто читать, а еще и выполнять все прочитанное в терминале

Сети

Сети очень важная часть работы DevOps`а. Хотя многие про это и забывают. Необходимо знать хотя бы следующие основы:

  • Как работает IP, TCP/UDP

  • Как работает HTTP, HTTP/2

Как изучить сети? Пройдите курс CCNA, а также установите себе GNS 3 и пробуйте настраивать сетевое оборудование.

Нужно ли быть разработчиком?

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

Вы можете сказать, что код должны писать программисты. Но, как вы будете автоматизировать сборку вашего продукта, тестирование, деплой?

С чего начать:

  • Изучить хотя бы базовые понятия Python или Golang

Знание баз данных

Тут все просто, вам нужно уметь писать SQL запросы. Всё, точка.

С чего начать:

  • Самое простое – пройти какой-нибудь курс по БД, например по PostgreSQL

Заключение и совет

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

  1. Напишите небольшое приложение. Язык программирование можно выбрать любой. Пусть приложение отдает инфу о пользователях через HTTP. Получится некое API.

  2. Добавьте в него работу с БД. Хранение информации о пользователях, например.

  3. Зарегистрируйте аккаунт на GitHub, если у вас его еще нет. Создайте репозиторий с вашим приложением.

  4. Установите себе на компьютер Jenkins, ну или TeamCity и настройте автоматическую сборку вашего приложения из репозитория по кнопке.

  5. Следующий этап. Настраиваем webhooks на GitHub, которые будут запускать сборку проекта на вашей машине (Jenkins/TeamCity).

  6. Добавьте тесты в Jenkins. Как минимум линтер по вашему коду.

  7. Создаем виртуальную машину и настраиваем ее с помощью Ansible, Chef или Puppet. Пользователи, библиотеки, зависимости и т. д.

  8. Подводим все это дело под Vagrant. Мы же хотим все автоматизировать.

  9. Подключаем Vagrant к Jenkins с помощью плагина. При пуше в Git приложение будет собираться, и подниматься на виртуалке с помощью Vagrant + Configuration System Management.

На этом пока всё. Можно еще прикрутить тесты, мониторинг, завернуть все это в Docker, использовать оркестрацию, поднять кластер и так далее. Но мы же говорим сейчас про Junior`а. Так что списка выше хватит на первое время с головой.

Обсудить эту заметку можно в нашем Телеграм канале: https://t.me/devops_spb_ru (@devops_spb_ru)

Или в комментариях тут.

Показать полностью
[моё] DevOps Гайд Linux Windows
9
Stravnik
Stravnik
1 год назад
Лига Сисадминов

DevOps Workshop: Мониторинг. Linux, ansible, prometheus, grafana и node exporter⁠⁠

В данном воркшопе мы настроим и установим мониторинг Prometheus и Grafana с помощью Ansible. Информации много и подана она в очень сжатом виде. #linux #ansible #prometheus #grafana #node_exporter

Больше видео и постов в тг канале: https://t.me/devops_spb_ru

Примеры кода из видео: https://github.com/DevOps-spb-org/monitoring-webinar

Показать полностью
[моё] Технологии Linux IT DevOps Prometeus Grafana Видео YouTube
37
AntoshVik
AntoshVik
1 год назад

Моя история в DevOps⁠⁠

Всем привет, я учусь на курсе DevOps Расширенная версия в Яндекс Практикуме и к Новому году решил Вам поведать свою историю. Мой рассказ -  не коммерческий заказ, поэтому без рейтинга. Пруфов не будет, верьте на слово!

Глава 1.
Предыстория. Школьные годы.

Не то чтоб я был прям очень умным с рождения, но в классе 6 я открыл для себя Macromedia Dreamweaver. И оказалось, что вот это вот всё в интернетах не так то уж и трудно сделать. Создал свой портал с флеш играми, чтоб на информатике в школе было чем заняться и даже успел продать одну свою работу (одностраничник по продаже цветов в корзинках) за 500 рублей! В 8 классе учитель информатики заподозрил во мне неладное и отправил меня на летнюю стажировку для школьников в компанию 'Прогноз" (в те времена это была величавая компания). В целом, так и прошла моя школьная пора, в которой я занимался вебом и забивал на всё остальное. Так и выпустили со средним баллом 4.0 в школьном аттестате.

Глава 2.
Предыстория. Университет.

Как бы то ни было, на бюджет попасть я умудрился. Да никуда-нибудь, а на целый электротехнический факультет по направлению ЭВТ. Там уже на первом курсе я познакомился с C#. Годы шли, учёба пестрила научными работами, а C# сменился на Python. Выпустился я со средним баллом 3.6 в дипломе.

Глава 3.
Предыстория. Первый оффер.

Научных изысканий в университете было достаточно, и на выпуске я словил свой первый оффер. В другом городе. Джуном. Flask. Проект небольшой, коллектив дружный, ну или как там в объявлениях пишут. По факту - змеиный коллектив разработчиков на пайтоне. За время работы программистом я понял, что разработка это вообще не про меня. Я могу это, но оно не доставляет мне радости. И пришло время меняться.

Глава 4.
Предыстория. Второй оффер.

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

Глава 5.
Осознание.

За это время я уж точно не помолодел.  Третий десяток оказался "не за горами", как и счастье: обзавёлся семьёй, недвижкой, и понял, что простым эникейщиком всю жизнь просидеть не получится, если планируешь "закрывать" свои хотелки. Ещё и коллеги обсуждают какие-то курсы девопса. Посмотрел, кто такие эти девопсы, зашёл в hh... ну а дальше в целом понятно. Оставалось только выбрать платформу обучения. Выбрал Практикум, в основном, из-за платформы Cloud. Как по мне - лучше сразу учиться на боевом железе, с которым в будущем будешь работать. Было немного стрёмно от мыслей, что придётся совмещать учёбу с работой (мне ещё в офисе "навалили всяких курсов на лопату"), но в итоге я решил все спринты за неделю, на которые даётся 2 недели. Выбрал именно расширенный курс, который длится на 3 месяца дольше, ради дополнительной практики. Работа эникейщиком дала кучу знаний в системном администрировании, без которых, как оказалось, в DevOps не обойтись.

Глава 6.
Эпилог.

Я не утверждаю, что мой путь самый правильный, и уж тем более, что он самый хлам. У всех свой жизненный путь для реализации своих навыков. Хочу лишь посоветовать непрерывно развиваться в своей области. Особенно в текущих реалиях, когда кадры на вес золота.
Всех с наступающим!

Показать полностью
[моё] DevOps Яндекс Практикум Без рейтинга Длиннопост Истории из жизни Текст
2
3
user8214590
user8214590
1 год назад
Серия Devs хокку и AI картинки

История с devs хокку продолжается...⁠⁠

Я смотрю народу понравилась моя инициатива) Теперь еще редактирую AI картинки, подчищаю артефакты и делаю колажи. Канал тут https://t.me/devs_hokku

Спасибо за репост по-братски каналу https://t.me/devopsina

Подписывайтесь, делитесь, рассказывайте друзьям) Выпускаю один пост в день по будням

Выложу еще несколько свежих хокку.

История с devs хокку продолжается... Юмор, IT юмор, Япония, Программист, Программирование, Хокку, DevOps, Scrum, Agile, Длиннопост, Telegram (ссылка)

Дерево запили мне,

Красно-черное чтобы,

В Гугле собес.

История с devs хокку продолжается... Юмор, IT юмор, Япония, Программист, Программирование, Хокку, DevOps, Scrum, Agile, Длиннопост, Telegram (ссылка)

Два часа деплой томит,

В сердцах девопсов ругаю,

Пайплайн не запустил.

История с devs хокку продолжается... Юмор, IT юмор, Япония, Программист, Программирование, Хокку, DevOps, Scrum, Agile, Длиннопост, Telegram (ссылка)

На планинге разраб,

Промах в эстимейтах,

Спринт окрашен в красный.

История с devs хокку продолжается... Юмор, IT юмор, Япония, Программист, Программирование, Хокку, DevOps, Scrum, Agile, Длиннопост, Telegram (ссылка)

Финдир бюджет жмет,

Devops в одиночестве трудится,

Автобус угрозу таит.

Канал тут https://t.me/devs_hokku

Предыдущий пост Создал канал с IT хокку и AI иллюстрациями

Показать полностью 4
Юмор IT юмор Япония Программист Программирование Хокку DevOps Scrum Agile Длиннопост Telegram (ссылка)
0
2
DELETED
1 год назад

Deleted⁠⁠

Deleted
[моё] IT Программирование Разработка Программист Творчество IT юмор DevOps Длиннопост
1
15
user8214590
user8214590
1 год назад
Серия Devs хокку и AI картинки

Создал канал с IT хокку и AI иллюстрациями⁠⁠

https://t.me/devs_hokku

Хокку пишу сам, иллюстрации генерирует сетка

Создал канал с IT хокку и AI иллюстрациями Хокку, DevOps, Юмор, IT юмор, Япония, Длиннопост

HR с милой улыбкой,

Обещает рай разрабу,

Галера ждёт новобранца.

Создал канал с IT хокку и AI иллюстрациями Хокку, DevOps, Юмор, IT юмор, Япония, Длиннопост

DevOps, в поисках бага,

Два дня в контейнер пялится.

А образ не тот, бедняга!

Создал канал с IT хокку и AI иллюстрациями Хокку, DevOps, Юмор, IT юмор, Япония, Длиннопост

В созвон важный зашел,

Наготу прикрыть лень,

Камера включена, ох стыд.

Создал канал с IT хокку и AI иллюстрациями Хокку, DevOps, Юмор, IT юмор, Япония, Длиннопост

Два спринта фичу пилил,

Закоммитил, в отпуск — в путь.

Пуш не нажал.

Создал канал с IT хокку и AI иллюстрациями Хокку, DevOps, Юмор, IT юмор, Япония, Длиннопост

Код без тестов слил,

CTO смеется громко,

SRE, ночь без сна.

Создал канал с IT хокку и AI иллюстрациями Хокку, DevOps, Юмор, IT юмор, Япония, Длиннопост

Спринт течет размерянно,

Владелец продукта – кот,

Сплю на дейли.

Подписывайтесь, если зашло)

https://t.me/devs_hokku

Показать полностью 6
[моё] Хокку DevOps Юмор IT юмор Япония Длиннопост
0
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии