diff --git a/Gemfile b/Gemfile index 2017630..de182fc 100644 --- a/Gemfile +++ b/Gemfile @@ -3,4 +3,12 @@ source "https://rubygems.org" # gem "github-pages", group: :jekyll_plugins gem "jekyll-remote-theme" gem "minimal-mistakes-jekyll" -gem "jekyll-obsidian" + +group :jekyll_plugins do + gem "jekyll-include-cache" + gem "jekyll-feed" + gem "jekyll-seo-tag" + gem "jekyll-sitemap" + gem "jekyll-paginate" + gem "jekyll-obsidian" +end \ No newline at end of file diff --git a/_config.yml b/_config.yml index 7c9d7ec..b82f556 100644 --- a/_config.yml +++ b/_config.yml @@ -61,6 +61,15 @@ defaults: toc: false author_profile: true +obsidian: + vault: "_notes" # где лежат md-файлы Obsidian + wikilinks: true # включить [[wiki-ссылки]] + # ниже — удобные опции + downcase: true # приводить ссылки к нижнему регистру + slugify: true # заменять пробелы/кириллицу на слаг + ext: ".md" + attachments_dir: "assets/cache/" + # --- Навигация (подключим _data/navigation.yml) --- navigation: main: true diff --git a/_notes/HomeServer/01-hs.md b/_notes.bak/HomeServer/01-hs.md similarity index 100% rename from _notes/HomeServer/01-hs.md rename to _notes.bak/HomeServer/01-hs.md diff --git a/_notes/HomeServer/02-vm.md b/_notes.bak/HomeServer/02-vm.md similarity index 100% rename from _notes/HomeServer/02-vm.md rename to _notes.bak/HomeServer/02-vm.md diff --git a/_notes/HomeServer/03-new_start.md b/_notes.bak/HomeServer/03-new_start.md similarity index 100% rename from _notes/HomeServer/03-new_start.md rename to _notes.bak/HomeServer/03-new_start.md diff --git a/_notes/IT-School/01-croc_hub.md b/_notes.bak/IT-School/01-croc_hub.md similarity index 100% rename from _notes/IT-School/01-croc_hub.md rename to _notes.bak/IT-School/01-croc_hub.md diff --git a/_notes/IT-School/Additional/01-havs.md b/_notes.bak/IT-School/Additional/01-havs.md similarity index 100% rename from _notes/IT-School/Additional/01-havs.md rename to _notes.bak/IT-School/Additional/01-havs.md diff --git a/_notes/IT-School/Additional/02-slaoi.md b/_notes.bak/IT-School/Additional/02-slaoi.md similarity index 100% rename from _notes/IT-School/Additional/02-slaoi.md rename to _notes.bak/IT-School/Additional/02-slaoi.md diff --git a/_notes/IT-School/Lecture/02-it_infra.md b/_notes.bak/IT-School/Lecture/02-it_infra.md similarity index 100% rename from _notes/IT-School/Lecture/02-it_infra.md rename to _notes.bak/IT-School/Lecture/02-it_infra.md diff --git a/_notes/IT-School/Lecture/03-bare-metal.md b/_notes.bak/IT-School/Lecture/03-bare-metal.md similarity index 100% rename from _notes/IT-School/Lecture/03-bare-metal.md rename to _notes.bak/IT-School/Lecture/03-bare-metal.md diff --git a/_notes/IT-School/Lecture/04-auto.md b/_notes.bak/IT-School/Lecture/04-auto.md similarity index 100% rename from _notes/IT-School/Lecture/04-auto.md rename to _notes.bak/IT-School/Lecture/04-auto.md diff --git a/_notes/IT-School/Lecture/05-vm.md b/_notes.bak/IT-School/Lecture/05-vm.md similarity index 100% rename from _notes/IT-School/Lecture/05-vm.md rename to _notes.bak/IT-School/Lecture/05-vm.md diff --git a/_notes/IT-School/Lecture/06-bss.md b/_notes.bak/IT-School/Lecture/06-bss.md similarity index 100% rename from _notes/IT-School/Lecture/06-bss.md rename to _notes.bak/IT-School/Lecture/06-bss.md diff --git a/_notes/IT-School/Lecture/07-srk.md b/_notes.bak/IT-School/Lecture/07-srk.md similarity index 100% rename from _notes/IT-School/Lecture/07-srk.md rename to _notes.bak/IT-School/Lecture/07-srk.md diff --git a/_notes/IT-School/Lecture/08-mon.md b/_notes.bak/IT-School/Lecture/08-mon.md similarity index 100% rename from _notes/IT-School/Lecture/08-mon.md rename to _notes.bak/IT-School/Lecture/08-mon.md diff --git a/_notes/Как Дима сервер домашний поднимал....md b/_notes/Как Дима сервер домашний поднимал....md new file mode 100644 index 0000000..5c62e1e --- /dev/null +++ b/_notes/Как Дима сервер домашний поднимал....md @@ -0,0 +1,55 @@ +--- +done?: true +dg-publish: true +tags: +created: 04.08.2025 +dg-home: false +--- +Как я и обещал, запускаю небольшой цикл постов о моём маленьком проекте: "Домашняя виртуализация на базе мини-ПК" + + + +Пока я вижу сам цикл так: + +1) Базовые знания (Что такое виртуализация, Proxmox и зачем оно вообще надо?) + +2) Настройка и первый контейнер + +3) А как работать не с домашнего ПК? (Всё, про удаленный доступ и с чем его едят) + +4) Настройка git-сервера + +5) Настройка NAS + +6) Машинка для ботов + + + +Начнём с базы, которая нам в будущем поможет чуть лучше понимать друг друга) + + + +### Виртуализация + +Представьте себе сервер, что первое приходит в голову? Наверное, огромные серверные стойки, большое количество данных, шумное помещение и ещё, может быть, невыносимый холод (надо ж охлаждать эту лабудень...) + +В целом, всё верно, но тут стоит пояснить - сервером, по факту, можно назвать и компьютер, который стоит у вас дома, на работе или на учебе. + +**Сервер -** это тот же комьютер, но нацеленный на круглосуточную работу, на нем не работает обычный пользователь (ну, точнее, может, но об этом в другой раз), на нем "_крутятся_" десятки, а то и сотни сервисов. Ну и главным отличием сервера от обычного ПК можно назвать "_избыточность_" - два блока питания, много плашек оперативной памяти, несколько процессоров (хотя тут спорно), т.е. всё работает на то, чтоб сервер не отвалился, если какая-то из комплектующих решит почить. + + + +С сервером разобрались, просто очень мощный круглосуточно работающий и неломающийся (условно) компьютер, круто, классно, вопрос: "Почему мы не можем просто запускать на нём нужные нам программы, как мы это делаем обычно, они будут работать параллельно, как при классическом использовании?" +Вопрос, сам по себе, очень логичный, но ответ из него вытащить сложно, тут нужно понимание того, а что вообще из себя представляют программы. + +Сильно углубляться не будем, сойдемся на том, что программа (== сервис) - это рабочий, которому нужен определенный набор инструментов. Притом, разным рабочим нужны разные инструменты, но вот дилемма, одному рабочему удобно записывать планы в блокнот, а другом в заметки на телефоне. Суть одна, а вот версии "инструментария" разные. Ну, ещё программы могут очень ловко забирать друг у друга ресурсы, а это тоже плохо. + +Мы можем, конечно, физически разносить программы, т.е. у нас один сервер крутит почту, например, второй - какой-нибудь сайт (типа телеграмма, почему нет), а третий пусть следит за этим всем (мониторинг). Проблема в том, что, например, мониторинг не так много ресурсов требует, а мы для него выделили целый отдельный сервер (от которого он кушает дай б-г 2% мощностей). + +И вот тут на арену влетает магическое слово - **виртуализация.** Фактически, мы просто говорим серверу, что он теперь не просто комьютер, а множество комьютеров, объединенных физически. Мы четко делим сервер на отдельные - **изолированные** _ПК_, с разделением мощностей и инструментария. На каждую из таких ВМ (виртуальная машина - виртуальный ПК на сервере) мы ставим свою ОС (операционная система), свои инструменты, и разворачиваем приложение - победа! + + + +На этом я закончу первый пост, он получился весьма объемным. + +Следующим шагом для нас будет рассказ про конкретные виды виртуализаций, а пока, вам вопрос - **"Как называется программа, которая управляет виртуализацией и виртуальными машинами?"** \ No newline at end of file diff --git a/_notes/Коробочки-коробочки....md b/_notes/Коробочки-коробочки....md new file mode 100644 index 0000000..024e26b --- /dev/null +++ b/_notes/Коробочки-коробочки....md @@ -0,0 +1,52 @@ +--- +done?: true +dg-publish: true +tags: +created: 07.08.2025 +--- +Мы возвращаемся к нашей эпопее с домашним сервером, напомню, мы в прошлый раз обсуждали, что такое *виртуализация* - это технология, с помощью которой мы можем на одном устройстве (сервере, ПК и т.д.) разместить множество "виртуальных устройств". + +Сегодня мы поговорим о таких вещах, как *контейнеризация* и заденем при этом понятие *гипервизора*. + +--- + +Начнем, пожалуй, как раз с *гипервизора*, кратко, емко, четко: +## Гипервизоры + +***Гипервизор*** - программа, позволяющая управлять виртуальными машинами и контейнерами (есть небольшое различие, но об этом дальше). На этом, в общем-то, всё, стоит ещё сказать, что гипервизоры бывают двух типов: + +1) *Bare-metal* - т.е. гипервизоры представляющие собой "операционную систему", которая устанавливается напрямую на "железо". Это обеспечивает **наибольшую** производительность и совместимость, но, очевидно, что это сложнее, чем просто поставить VirtualBox) +> Примеры: Proxmox, ESXi, oVirt(и производные) + +2) *Hosted* - гипервизор, являющийся натурально программой для уже существующей системы. Такие гипервизоры проще в освоении и используются для пользовательского использования (на винду линукс накатить попробовать). +Меньшая производительность т.к. комплектующие эмулируются для машин, но проще в использовании. +> Примеры: VMWare Workstation, VirtualBox, QEMU/KVM VM Manager. + +![[Pasted image 20250722230535.png]] + +## Контейнеризация + +Как мы уже говорили, очень круто изолировать каждую программу в отдельной машине, отдельный инструментарий и всё такое, но в чем же проблема? + +А проблема в том, что мы для каждой программки поднимаем *полноценную (иногда урезанную) ОС*, со своим ядром, своими особенностями и т.д. + +И, разумеется, это всё надо питать ресурсами, что дорого, очень дорого, особенно, если у нас отказоустойчивый кластер с *десятками*, а то и *сотнями* машин. + +**Какой же выход?** А очень простой, давайте не поднимать для каждой "машины" отдельную ОС с ядром, а использовать одно - которое предоставляет ОС сервера, а приложения запускать в изолированных "окружениях". + + +> [!info] Пример +> Я не уверен, что смогу объяснить, как это работает, простым языком, но просто представьте, что мы работаем в ресторане и наша задача держать сырье (продукты) в холоде, чтоб те не испортились. +> +> Вот виртуализация, это если мы для каждого ящика с продуктами будем покупать отдельный холодильник, да, это круто, что выход из строя одного холодильника не повлияет на другие, но пипец, как затратно и по деньгам и по электричеству. +> +> С другой же стороны, мы можем выделить целую комнату под холодильник, там наладить централизованное охлаждение и туда уже сгружать ящики с продуктами, вот это контейнеризация, когда мы отдельные ящики охлаждаем общей системой. + + +> К слову, почему я сказал, что гипервизоры для контейнеров и виртуалок отличаются? В сущности, для контейнеров нет как таковой системы, но есть CRI - Container Runtime Interface, то, с помощью чего, контейнеры и запускаются. +> ВМ такого не надо, у них у каждой своё ядро. (Но я не хочу разделять понятия, потому что сейчас гипервизоры универсальны и имеют как среду для ВМ, так и CRI) +> ![[Pasted image 20250722230511.png|200]] + +В общем-то, на этом всё, но напоследок скажу, что в продакшене часто используют смешанный тип, т.е. мы на виртуализации разворачиваем среду для контейнеризации и в машинах разворчиваем контейнеры смежных приложений, так мы изолируем группы программ друг от друга. + +Спасибо за внимание, в следующей статье мы уже перейдем к конкретным решениям, которые использую я. \ No newline at end of file diff --git a/_notes/Эпопея о домашнем сервере.md b/_notes/Эпопея о домашнем сервере.md new file mode 100644 index 0000000..e8dd776 --- /dev/null +++ b/_notes/Эпопея о домашнем сервере.md @@ -0,0 +1,12 @@ +--- +dg-publish: true +done?: +tags: +created: 07.08.2025 +--- +:LiCalendarDays: Заметка от 07.08.25 + +## Основные понятия и термины +- [[Как Дима сервер домашний поднимал...]] +- [[Коробочки-коробочки...]] + diff --git a/_notes/🏠 Цифровой сад.md b/_notes/🏠 Цифровой сад.md new file mode 100644 index 0000000..f35d529 --- /dev/null +++ b/_notes/🏠 Цифровой сад.md @@ -0,0 +1,11 @@ +--- +dg-publish: false +dg-home: false +--- +## Хаб-страницы +- [[Летняя школа КРОК - Hub]] +- [[Эпопея о домашнем сервере]] + +## Последние заметки +- [[Коробочки-коробочки...]] +- [[Как Дима сервер домашний поднимал...]]