ИТ-заметки: субъективно
56 subscribers
23 photos
203 links
ИТ заметки по Network, Ops, DevOps

🔗 it.mxav.ru
Download Telegram
Новости про видео

Решил разделить видео на 3 основный направления:
1. SlowHowTo – видео, где объясняется, поясняется, что делается и зачем. Видео для тех, кто хочет послушать комментарии или объяснения того, что происходит. Длинные, «душные» видео.
2. FastHowTo – видео, где нет объяснений, а только показывается, как сделать что-то. Видео для тех, кто хочет быстро узнать, как сделать то или иное. Короткие видео.
3. FunnyHowTo - видео, где могут быть разные нестандартные подходы к решению задач, просто видео на тему «сделаю, потому что могу» или какой-то развлекательный контент.

Зачем это надо?
Очевидно, что все люди разные по уровню знаний. Для кого-то достаточно показать что-то без объяснений и всё станет понятно. Для кого-то нужны комментарии, пояснения, объяснений, а не просто «сделай так, так и вот так». Кто-то хочет отвлечься от загруженности по своим задачам, но есть потребность в развлекательном контенте.

Как понять где какое видео?
Все просто. В названии видео будет нужный тег [SlowHowTo], [FastHowTo] или [FunnyHowTo]. Также в ТГ в постах тоже будет указываться нужный тег #SlowHowTo #FastHowTo #FunnyHowTo
Через навигационное сообщение в ТГ можно легко найти всё и на сайте тоже будут теги, разделы.

🔗 На сайте
Небольшая заметка по Markdown

В Википедии говорится ,что
Markdown (МФА: [ˈmɑːkdaʊn], произносится маркда́ун) — облегчённый язык разметки, созданный с целью обозначения форматирования в простом тексте, с максимальным сохранением его читаемости человеком, и пригодный для машинного преобразования в языки для продвинутых публикаций (HTML, Rich Text и других).


Заголовки
Их можно определить следующим образом
# Заголовок первого уровня #
## Заголовок второго уровня ##
### Заголовок третьего уровня ###


Альтернативный вариант

Заголовок первого уровня
========================

Заголовок второго уровня
------------------------

Цитаты
> Текст цитаты

Ссылки
[Текст ссылки](http://example.com/ "Необязательный заголовок ссылки")

Списки
Неупорядоченный
- Первый элемент
- Второй элемент
- Вложенный первый элемент
- Вложенный первый элемент
- Вложенный второй элемент
- Третий элемент


Упорядоченный
+ Первый элемент
+ Второй элемент
+ Вложенный первый элемент
+ Вложенный первый элемент
+ Вложенный второй элемент
+ Третий элемент

Списки можно комбинировать.

Ссылки
\\Текст ссылки\http://ссылка_на_ресурс/\\
Текст перед ссылкой: \\http://ссылка_на_ресурс/\\


Таблицы
Пример таблицы с 3 столбцами и 3 строками, включая названия
! **1 столбец**
! **2 столбец**
! **3 столбец**
! Название в первом стобце 2 строке
! Текст во втором столбце второй строки.
! Текст в третьем столбце второй строки.
! Название во втором стобце 3 строке
! Текст во втором столбце третьей строки.
! Текст в третьем столбце третьей строки.


Способы есть разные выделения того или иного текста, ссылок, таблиц и т.п. Здесь для себя оставил некоторые моменты. Возможно, позже дополню. Если есть что добавить, то пишите.

Доп.материалы:
- Онлайн редактор
- Статья на Habr
- Статья на doka.guide

#разное@itmxav

🔗 На сайте
Как скопировать файл на Linux через Remmina?

В данном примере взаимодействие идет между Linux Ubuntu и Windows 11 (удаленная машина).

1. Выбираем соединение в списке в Remmina. Правой кнопкой мыши кликаем по нему и выбираем «Правка».
2. Отмечаем галочкой «Общая папка» и выбираем папку, которая будет общей между Linux и удаленной машиной.
3. Подключаемся к удаленной машине.
4. Копируем нужный нам файл.
5. Переходим в «Компьютер» и там должна быть подсоединена наша общая папка как сетевая папка.
6. Копируем туда файл и проверяем на Linux.

#linux@itmxav
#windows@itmxav

🎬 На Youtube
🎬 На Rutube

🔗 На сайте
На Windows произошли масштабные сбои при обновлении

По всему миру произошли масштабные сбои персональных компьютерах и серверах. Пока что винят ИБ-приложение CrowdStrike.

На Habr'e показывают решение от производителя ПО:
Workaround Steps:
1. Boot Windows into Safe Mode or the Windows Recovery Environment
2. Navigate to the C:\Windows\System32\drivers\CrowdStrike directory
3. Locate the file matching “C-00000291*.sys”, and delete it.
4. Boot the host normally.

Если у кого-то ещё есть варианты решения проблемы, то пишите.

Вообще удивительно как какое-то такое ПО было установлено во многих местах и крайне мало кто знал про его существование. Может поэтому они отказались от Касперского? 🙃

#windows@itmxav
#разное@itmxav

🔗 На сайте
Как установить Docker Desktop на Windows 11?

Чтобы установить Docker Desktop на Windows 11 надо:
1. Перейти на сайт с Docker Desktop.
2. Нажать "Скачать для Windows" и подождать, пока скачается файл.
3. Запустить скаченный файл
4. Пройти установку. Если впервые устанавливаете, то лучше оставить галочки в рекомендуемых опциях.
5. Запустить Docker Desktop и подождать пока Docker Engine включиться. Должно быть зеленым в левом нижнем углу окна Docker Desktop.
6. Для проверки можно открыть командную строку и посмотреть версию через команду:
docker -v

7. Также можно проверить работу Docker, скачав и запустив какой-нибудь контейнер (hello-world или nginx с указанием 80 порта)

#docker@itmxav
#windows@itmxav
#fasthowto@itmxav

🎬 На Youtube
🎬 На Rutube

🔗 На сайте
Как изменить сеть для контейнеров в Docker Desktop на Windows 11?

Чтобы изменить сеть для контейнеров в Docker Desktop надо:
1. Запустить Docker Desktop и остановить все контейнеры, если они запущены.
2. Далее перейти в раздел настройки и выбрать пункт Docker Engine.
3. Добавить в конфигурации после "experimental": false
,
"default-address-pools":[
{"base":"10.77.0.0/24","size":24}
]

4. Если добавлено всё корректно, то никаких ошибок не выскочит под формой.
5. Далее применяем "Apply & restart" и ждем пока всё перезагрузится.
6. После загрузки запускаем контейнер для проверки и смотрим в параметрах контейнера, в Inspect, раздел Network. Там уже должна быть новая сеть.

#docker@itmxav
#windows@itmxav
#fasthowto@itmxav

🎬 На Youtube
🎬 На Rutube

🔗 На сайте
Как изменить сеть для контейнеров в Docker на Linux (Debian)?

1. Проверяем работает ли docker
systemctl status docker

2. Смотрим список сетей
docker network list

В данном случае интересует bridge
3. Смотрим сеть для bridge
docker network inspect bridge | grep Subnet

Вывод примерно такой, если по умолчанию, бывает:
"Subnet": "172.17.0.0/16",

4. В качестве теста у меня запущен контейнер с nginx. Через браузер проверил, что всё работает.
5. Редактируем или создаем файл daemon.json
nano /etc/docker/daemon.json

И прописываем, в качестве примера, сетевое адресное пространство 10.1.0.0/24 с IP-адресом bridge-интерфейса 10.1.0.1.
{
    "bip": "10.1.0.1/24",
    "default-address-pools": [{
        "base": "10.1.0.0/24",
        "size": 24
    }]
}

6. Смотрим запущенные контейнеры
docker ps -a

7. Удаляем все и проверяем
docker rm -f `docker ps -q -a`
docker ps -a

8. Перезапускаем docker
systemctl restart docker

9. Проверяем сеть bridge
docker network inspect bridge | grep Subnet

Вывод
"Subnet": "10.1.0.0/24",

10. В качестве теста запускаю контейнер с nginx, проверяю его адрес и работоспособность через браузер
docker run -d -p 80:80 nginx

ID этого контейнера 3b2a1894c706
docker inspect 3b2a1894c706 | grep "IPAddress"


#docker@itmxav
#linux@itmxav
#fasthowto@itmxav

🎬 На Youtube
🎬 На Rutube

🔗 На сайте
Правила в iptables для Zabbix

Часто в процессе настройки сервера и/или агентов Zabbix требуется прописывать правила для файервола. Обычно используются порты 10050 на агенте и 10051 на сервер.
Например, для сервера в iptables вот такое правило может быть:
iptables -A INPUT -s IP_ADDRESS_AGENT/32 -p tcp -m tcp --dport 10051 -j ACCEPT

Eсли для всех надо сделать порт доступным
iptables -A INPUT -p tcp -m tcp --dport 10051 -j ACCEPT

Если правило надо поместить на самый верх цепочки, то
iptables -I

На агенте:
iptables -A INPUT -s IP_ADDRESS_SERVER/32 -p tcp -m tcp --dport 10050 -j ACCEPT

Удаление правил:
iptables -D INPUT -s IP_ADDRESS_AGENT/32 -p tcp -m tcp --dport 10051 -j ACCEPT
iptables -D INPUT -s IP_ADDRESS_SERVER/32 -p tcp -m tcp --dport 10050 -j ACCEPT
iptables -D INPUT -p tcp -m tcp --dport 10051 -j ACCEPT


#zabbix@itmxav
#linux@itmxav
#iptables@itmxav
#firewall@itmxav

🔗 На сайте
Как включить IP Forwarding в Linux?

Чтобы включить пересылку пакетов между интерфейсами на Linux надо для начала проверить состояние форвардинга:
sysctl net.ipv4.ip_forward

Если net.ipv4.ip_forward = 0, то выключен. Если 1, то включен.

Времененно включить IP Forwarding можно командой
# sysctl -w net.ipv4.ip_forward=1

Отключить
# sysctl -w net.ipv4.ip_forward=0

Чтобы постоянно был включен IP Forwarding надо прописать в файле /etc/sysctl.conf
net.ipv4.ip_forward = 1

Постоянно отключен
net.ipv4.ip_forward = 0

Далее применяем конфигурацию
# sysctl -p

#linux@itmxav
#сети@itmxav

🔗 На сайте
Как записать образ ОС на флешку через dd на Linux?

Небольшая заметка про простой способ записать образ ОС на флешку.
Подключаем флешку с файловой системой FAT32, запускаем команду в терминале с указанием нужного образа, параметров и ждем завершения.
$ sudo dd if=/home/chocobo/Загрузки/linuxmint-18-cinnamon-32bit.iso of=/dev/sdb bs=4M

if — путь к образу
of — куда записать (физический устройство)
bs — размер блока

Есть ещё интересный вариант. Качаем с Инета и сразу записываем (нужно установить curl)
$ curl -L http://mirror.yandex.ru/linuxmint/stable/18/linuxmint-18-mate-64bit.iso | sudo dd of=/dev/sdb bs=4M


#linux@itmxav

🔗 На сайте
Установка Альт Сервер

Сделал видео на тему простой установки Альт Сервера в формате FastHowTo. Что-то описывать в текстовом варианте смысла нет, т.к. установка обычная. По созданию установочной флешки на Windows тоже есть видео. Если на Linux, то можно через dd записать образ.

Установка Альт Сервера
🎬 На Youtube
🎬 На Rutube

Как создать установочную флешку через Rufus?
🎬 На Youtube
🎬 На Rutube

#linux@itmxav
#fasthowto@itmxav

🔗 На сайте
Ошибка в VirtualBox E_ACCESSDENIED (0x80070005)

После перезагрузки ОС на Linux Ubuntu перестали запускаться виртуальные машины на VirtualBox.

В логах появляется ошибка
ERROR [COM]: aRC=E_ACCESSDENIED (0x80070005) aIID={...} aComponent={DisplayWrap} aText={The console is not powered up (setVideoModeHint)}, preserve=false aResultDetail=0

Пытался решить разными способами эту проблему. Кто-то писал в интернете, что надо переустановить ​Extension Pack, кто-то отмечал, что надо в настройках ВМ USB 1 поставить. После разных попыток и анализа того, что происходит помогла только переустановка VB на последнюю версию:

1. Лучше папку с ВМ переименовать. Например добавить .bak в хвост, чтобы случайно не удалить её вместе с удалением VB.
2. Далее удаляется VB и VB-dkms через remove на Ubuntu, не через purge
sudo apt remove virtualbox
sudo apt remove virtualbox-dkms

3. Скачивается последняя версия VB и Extension Pack на оф.сайте.
4. Устанавливается VB
sudo dpkg -i virtualbox-7.0_7.0.20-163906~Ubuntu~focal_amd64.deb

5. Устанавливаем Extension Pack. Просто 2 раза кликнуть по файлу ЛКМ.
6. Возвращаем имя папки с виртуальными машинами и пробуем запустить всё.

#virtualbox@itmxav
#linux@itmxav

🔗 На сайте
Простая установка Ред ОС

Сделал видео на тему простой установки Ред ОС в формате FastHowTo. Что-то описывать в текстовом варианте смысла нет, т.к. установка обычная. По созданию установочной флешки на Windows тоже есть видео. Если на Linux, то можно через dd записать образ.

Установка Ред ОС
🎬 На Youtube
🎬 На Rutube

Как создать установочную флешку через Rufus?
🎬 На Youtube
🎬 На Rutube

#linux@itmxav
#fasthowto@itmxav

🔗 На сайте
Связка Obsidian c GitLab или замена Notion

Относительно недавно многие начали искать замену Notion. Решил потестировать вариант Obsidian + GitLab (self hosted). Поставилось всё достаточно просто. Единственная момент возник когда хотел чтобы при push можно было вводить пароль с логином, но потом переделал на ssh ключи, потому что так удобнее по горячим клавишам всё отправлять и не делать лишних телодвижений.
Для Obsidian есть встроенные или сторонние плагины. Если новый репозиторий создается, то всё как обычно инициализируется в папке с заметками. Если подключить имеющийся надо, то можно просто клонировать и Obsidian найдет в папке с заметками git раздел. Для работы с GitLab (или GitHub) надо поставить плагин Git автора Vinzent (он самый распространенный, хотя может и другие есть) и на машину сам Git, конечно. В настройках плагина указать путь до исполняемого Git, от кого коммиты и email.
Графы связности заметок рисуются хорошо, если вдруг всё сильно разрастется и надо будет искать что с чем связано. Тем для оформления много. Markdown поддерживается.
На мой взгляд хорошая альтернатива Notion в плане основных функций. Конечно, это всё на вкус и цвет. Можно много других готовых вариантов найти или костылей нагородить, но здесь базовые вещи есть (структуры каталогов, визуальная связность заметок, возможность организовать версионность заметок + бэкапы через gitlab, поддержка markdown) и этого, мне кажется, для решения многих задач достаточно. А если недостаточно, то возможности кастомизации есть.
Приложения для разных платформ тоже есть, но над вопросом связности всех устройств надо будет подумать. Мне было интересно посмотреть как это всё запустить на обычных рабочих компах. Посмотрим, что будет дальше 😊

#разное@itmxav

🔗 На сайте
Ошибка при удалении репозитория в GitLab

Недавно в GitLab столкнулся с ошибкой при удалении репозитория:
This project was scheduled for deletion, but failed with the following message: Failed to open TCP connection to 127.0.0.1:5000 (execution expired)
The project visibility may have been made more restrictive if the parent group's visibility changed while the deletion was scheduled.

Поиски по инету привели к следующему решению. Включить недостающий модуль в файле /etc/gitlab/gitlab.rb изменив конфиг
gitlab_rails['registry_api_url'] = "http://127.0.0.1:5000"
gitlab_rails['registry_key_path'] = "/var/opt/gitlab/gitlab-rails/certificate.key"
gitlab_rails['registry_issuer'] = "omnibus-gitlab-issuer"
### Settings used by Registry application
registry['enable'] = true
registry['username'] = "registry"
registry['group'] = "registry"
registry['uid'] = nil
registry['gid'] = nil
registry['dir'] = "/var/opt/gitlab/registry"
registry['registry_http_addr'] = "localhost:5000"
registry['debug_addr'] = "localhost:5001"
registry['log_directory'] = "/var/log/gitlab/registry"
registry['env_directory'] = "/opt/gitlab/etc/registry/env"
registry['env'] = {
'SSL_CERT_DIR' => "/opt/gitlab/embedded/ssl/certs/"
}
registry['log_level'] = "info"
registry['log_formatter'] = "text"
#registry['rootcertbundle'] = "/var/opt/gitlab/registry/certificate.crt"
registry['rootcertbundle'] = "/var/opt/gitlab/registry/gitlab-registry.crt"
registry['health_storagedriver_enabled'] = true
registry['storage_delete_enabled'] = true
registry_external_url 'https://registry.gitlab.example.com'
registry_nginx['enable'] = true
registry_nginx['listen_port'] = 4567

После внесения изменений переконфигурируем gitlab и перезапускаем
gitlab-ctl reconfigure
gitlab-ctl restart

Также надо добавить правило в IPTables (если его нет и весь лишний трафик блокируется) или туда, где задаются правила
iptables -I INPUT -s 127.0.0.1/32 -j ACCEPT

Или разрешить конкретный порт можно по такому принципу, если нужно более строгое правило. Главное чтобы localhost мог работать c запросами внутри сервера.

#iptables@itmxav
#linux@itmxav

🔗 На сайте
Второй монитор для ноутбука c картой Nvidea и Debian 12

Если есть ноутбук с видеокартой Nvidia и при подключении второго монитора экран этого монитора белый, то скорее всего не хватает драйверов как написано в wiki. Вот здесь можно посмотреть поддержку карт Nvidea.
1. Подключаем репозиторий в /etc/apt/sources.list
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware

2. И устанавливаем необходимое ПО
apt update
apt install nvidia-driver firmware-misc-nonfree

3. Перезагружаем ноутбук.

#linux@itmxav

🔗 На сайте
Как в Cisco по ip адресу узнать mac устройства

Иногда в Cisco бывает нужно быстро найти mac по IP. Сделать это достаточно просто. Смотрим arp таблицу и фильтруем по известному ip через include
sh ip arp | i 10.111.222.111

#cisco@itmxav
#сети@itmxav

🔗 На сайте
👍2
GitLab не обновляет сертификат Let's Encrypt после своего upgrade

Спустя несколько месяцев после upgrade, GitLab начал выдавать ошибку, что не смог обновить сертификат от Let's Encrypt. При обновлении вручную через
gitlab-ctl renew-le-certs

сертификат тоже не хотел обновляться.
Помогла реконфигурация, в процессе которой GitLab запросил новый сертификат и нормально всё обновил.
gitlab-ctl reconfigure


#linux@itmxav

🔗 На сайте
Как заблокировать трафик от определенного MAC на Cisco

Иногда надо заблокировать трафик от определенного MAC на Сisco, особенно если там DHCP крутится.
Можно сделать это следующим образом:
1. Переходим в нужный режим на Cisco и создаем ACL с указанием MAC
conf t
mac access-list extended MACL
deny any host FFFF.FFFF.FFFF
permit any
exit

2. Вешаем ACL на нужный порт
interface fastEthernet 0/1
mac access-group MACL in


#сети@itmxav
#cisco@itmxav

🔗 На сайте
Ошибка 500 при применении параметра Repository by URL в GitLab

Столкнулся недавно с ситуацией, что при применении Repository by URL в GitLab в разделе
Admin area -> setting ->  Import and export settings -> Repository by URL

Запрос подвисает и в логах пишет
/var/log/gitlab/puma/puma_stderr.log:source=rack-timeout id=.... timeout=60000ms service=60000ms state=timed_out at=error
/var/log/gitlab/gitlab-rails/production_json.log:{"method":"PATCH","path":"/admin/application_settings/general","format":"html","controller":"Admin::ApplicationSettingsController","action":"general","status":500.....{"key":"authenticity_token","value":"[FILTERED]....


Оказалось, что при применении этого параметра идет запрос в DNS. Решилась проблема просто добавлением нужных правил:
iptables -I INPUT -s IP_DNS/32 -p udp -m udp --sport 53 -j ACCEPT
iptables -I INPUT -s IP_DNS_2/32 -p udp -m udp --sport 53 -j ACCEPT


#linux@itmxav

🔗 На сайте