Information
- Rating
- 554-th
- Location
- Краснодар, Краснодарский край, Россия
- Date of birth
- Registered
- Activity
Specialization
DevOps-инженер, Инженер по доступности сервисов
Стажёр
From 60,000 ₽
Git
Linux
Python
Bash
Docker
Kubernetes
Ansible
Vagrant
Wireshark
DevOps
Спасибо за комментарий!
Отвечу на главный вопрос - зачем это всё?
Тут не было цели "сделать аналог btop, htop, glances", говорю сразу. Тут была больше учебная цель - "освоить bash, написав какой-нибудь скрипт". Причём освоить язык на реальном примере. Мой скрипт - это просто код, который работает везде, где есть базовый набор утилит (хотя может не быть bc, но н тут опционален). И входе разработчки скрипта (как бы сейчас это громко не было сказано) появлялись мысли, например, "а почему бы не сделать возможность вводить аргументы по типу --help?" И таким образом, немного познал возможности bash.
Да и было бы слишком "круто" изучать bash, при этом иметь цель "создать крутой мониторинг".Хм, это интересно. Можно было бы попробовать через WireShark/tshark/tcpdump и посмотреть, что происходит без vpn и с vpn. Я, честно признаться, не хотел использовать бесплатные варианты, а денег, чтобы платить, нет. Хотя я мог попробовать через torsocks запустить команду и посмотреть, что будет.
И самое интересное, я только что попробовал вставить ссылку в браузер
https://get.k3s.ioи без расширения VPN мне выдало "Не удается получить доступ к сайту". А ври с расширением - я вижу прям код скрипта на окне браузера. Тогда получается, что проблема с блокировками имеет право на существование?Хотя как тогда объяснить, что с какой-то попытки странным образом без манипуляций с сетью всё-таки сработала команда? Получается, что "раз в год и палка стреляет"?
Или каком-то образом я получил скрипт удачным маршрутом...Возможно, есть прерывающиеся соединения к каким-то CDN или geolocation-based блокировки, которые срабатывают не всегда. Но в моём случае, даже если бы скрипт завершился успешно, я всё равно бы столкнулся с конфликтами nameserver'ов в Arch - поэтому ручная установка была неизбежна.
Well... Я не буду спорю, что можно было попробовать (и стоило бы) разобраться, почему
curl -sfLhttps://get.k3s.io| sh -не сработала у меня. Однако у меня были попытки:- пробовал запустить curl с ключом -v и отдельный запуск sh -x, однако всё равно было "зависание" (то есть также - ни вывода, ни ошибки в виде [INFO] или [ERROR]);
- смотрел что там по процессам (ps aux), но каких-то явных процессов, связанных с curl тоже не было (и я считаю довольно странно).
Можно было подумать, что было проблема с сетью или столкнулся с какими-то блокировками, НО... самое интересное, что с какой-то попытки команда выполнилась (то есть был какой-то вывод с [INFO], а не просто какое-то молчание, с которым непонятно, как действовать), но однако после установки почему-то корректно не поднимался k3s и пришлось немного навести шен-шуя.
Да, можно было это сделать расследования и сделать про это статью, но я на тот момент хотел просто сделать себе кластер, который будет состоять из одной ноды (мой ноутбук), с которым можно дальше как-то взаимодействовать.
В любом случае, спасибо за замечание! Я думаю, что мне стоит подумать над этим.
В Ansible декларативность - это именно декларация конечного состояния системы, а не просто «запись команд в YAML», который тупо ставит софт.
Bash: «Выполни эти 10 команд».
Ansible: «На узле должен быть установлен и запущен nginx актуальной версии».
Пример:
Это задача означает что-то типа «На машине должен быть установлен Nginx последней версии». Если Nginx УЖЕ стоит (и версия последняя) - Ansible ничего не делать. Если старая версия - Ansible обновит. Если нет Nginx - установит.
Это и есть «декларация состояния». То есть ты описываешь не «КАК» устанавливать, а описываешь" что должно быть в итоге. В примере модули apt сам поймёт, что ему нужно делать.
А вот в bash такого нет - каждый шаг выполняется всегда без проверки текущего состояния (разве что если сам не предусмотрел и не написал вручную логику проверки/обновления).