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

🔗 it.mxav.ru
Download Telegram
Как сбросить к заводским настройкам Allied Telesis AT-GS950?

Чтобы сбросить и/или перегрузить Allied Telesis AT-GS950 надо:

1. Нажать чем-то тонким на кнопку eco-Friendly.
2. Больше 10 секунд, если нужен сброс настроек и перезагрузка (держать 8-9 секунд, если нужна только перезагрузка).
3. Дождаться загрузки и подключиться к коммутатору по адресу 192.168.1.1

#сети@itmxav

😉 На сайте
Как перенести диск в Proxmox с Ceph?

Чтобы перенести диск из одной виртуальной машины в другую на одном физическом узле кластера (общее хранилище Ceph с bluestore) надо:

1. Посмотреть нужный пул
root@nodeA:~# ceph osd pool ls

В данном приемер это ceph-files

2. Найти нужный диск
root@nodeA:~# rbd -p ceph-files ls

Переносим диск из 101 машины в 102, поэтому название диска vm-101-disk-0
Если нужен второй диск, то vm-101-disk-1 и т.п.

3. Копируем диск (главное чтобы ресурсов хватало). Если большой объем надо передавать, то необходимо запустить как фоновый процесс. Можно через screen
root@nodeA:~# rbd cp ceph-files/vm-101-disk-0 ceph-files/vm-102-disk-0

Ожидаем завершения
Image copy: 100% complete...done.

4. Смотрим результат
root@nodeA:~# rbd -p ceph-files ls
vm-101-disk-0
vm-102-disk-0

5. Пересканируем конфиг для машины 102
root@nodeA:~# qm rescan --vmid 102
rescan volumes...
VM 102: add unreferenced volume 'ceph-files:vm-102-disk-0' as 'unused0' to config

Диск найден и помечен как неиспользуемый для машины 102.

6. Либо через web, либо через консоль прикрепляем отсоединенный новый диск
root@nodeA:~# qm set 102 --scsi1 ceph-files:vm-102-disk-0
update VM 102: -scsi1 ceph-files:vm-102-disk-0

7. Если это загрузочный диск, то надо в параметрах загрузки ВМ указать scsi1.

#ceph@itmxav #proxmox@itmxav

😉 На сайте
Как отключить автообновление Firefox в Linux?

Чтобы отключить обновление Firefox в Linux:
1. В адресной строке прописать и открыть список параметров:

about:config

2. Найти через поиск нужный параметр и изменить значение:

app.update.auto — автоматическое обновление браузера (значение false)
app.update.enabled — обновление браузера (значение false)

UPD:
Есть ещё один параметр:

DisableAppUpdate - значение true

#разное@itmxav

😉 На сайте
Как настроить мониторинг MySQL в Zabbix?

В примере используется Zabbix 5.0

1. Создаем пользователя с паролем разрешения:

mysql -uroot -p
> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY 'TTRy1bRRgLIB';
> GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
> quit

2. Необходимо добавиит новые параметры в агенте. Создаем конфигурационный файл /etc/zabbix/zabbix_agentd.d/template_db_mysql.conf с содержанием:

UserParameter=mysql.ping[*], HOME=/var/lib/zabbix mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*],HOME=/var/lib/zabbix mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*],HOME=/var/lib/zabbix mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*],HOME=/var/lib/zabbix mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*],HOME=/var/lib/zabbix mysql -h"$1" -P"$2" -sN -e "SELECT COALESCE(SUM(DATA_LENGTH + INDEX_LENGTH),0) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*],HOME=/var/lib/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*],HOME=/var/lib/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"

Чтобы избежать несостыковок по домашней папке, где должен находиться .my.cnf, указываем принудительно /var/lib/zabbix.

3. Создадим папку, если её нет, и файл .my.cnf

mkdir /var/lib/zabbix
nano /var/lib/zabbix/.my.cnf

Содержание .my.cnf:

[client]
user='zbx_monitor'
password='Passsw0rd'

4. Назначим права:
chown -R zabbix. /var/lib/zabbix
chmod 400 /var/lib/zabbix/.my.cnf

5. Перезапустим Zabbix Agent:
sudo systemctl restart zabbix-agent

6. В Zabbix переходим в настройки конкретного узла -> Шаблоны. Для быстрого поиска вбиваем Mysql в строке "Присоединение новых шаблонов" и находим шаблон "Template DB MySQL by Zabbix agent". Выбираем и обновляем настройки.

В разделе Мониторинг -> Последние данные можно посмотреть полученную информацию.

#zabbix@itmxav #mysql@itmxav

😉 На сайте
Как исправить apparmor DENIED в snap.rocketchat-server.rocketchat-mongo?

Иногда при работе с rocketchat-server через snap могут быть блокировки типа:

Jul  7 13:28:57 testserver kernel: [9327038.753123] audit: type=1400 audit(1688725736.995:37309385): apparmor="DENIED" operation="open" profile="snap.rocketchat-server.rocketchat-mongo" name="/proc/1961/net/netstat" pid=1992 comm="ftdc" requested_mask="r" denied_mask="r" fsuid=0 ouid=0

Чтобы исправить надо:

1. Открываем nano /var/lib/snapd/apparmor/profiles/snap.rocketchat-server.rocketchat-mongo

2. Переходим в раздел Miscellaneous accesses и добавляем:
@{PROC}/@{pid}/net/netstat r,

3. Перечитываем профиль

apparmor_parser -r /var/lib/snapd/apparmor/profiles/snap.rocketchat-server.rocketchat-mongo

#devops@itmxav

😉 На сайте
Ciso VPN Client. Ошибка Reason 442: Failed to enable Virtual Adapter

Ошибка происходит потому что клиент не находит адаптер сети. Можно исправить так:
1. Запускаем редактор реестра regedit.exe
2. Идем в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CVirtA
3. Находим значение DisplayName с содержимым типа @oem172.inf,%CVirtA_Desc%;Cisco Systems VPN Adapter for 64-bit Windows
4. Нажимает изменить. Для 64 битных систем заменяем всё на - Cisco Systems VPN Adapter for 64-bit Windows. Для 32-х - Cisco Systems VPN Adapter
5. Сохраняем изменения и пробуем запустить VPN-клиент.

#cisco@itmxav

😉 На сайте
Установка RustDesk через docker-compose

1. Создаем файл docker-compose.yml
2. Прописываем следующие параметры для образа
version: '3'

networks:
rustdesk-net:
external: false

services:
hbbs:
container_name: hbbs
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
image: rustdesk/rustdesk-server:latest
command: hbbs -r <ip-адрес машины>:21117 -k _
volumes:
- ./data:/root
networks:
- rustdesk-net

depends_on:
- hbbr
restart: unless-stopped

hbbr:
container_name: hbbr
ports:
- 21117:21117
- 21119:21119
image: rustdesk/rustdesk-server:latest
command: hbbr -k _
volumes:
- ./data:/root
networks:
- rustdesk-net
restart: unless-stopped

3. Ключ -k _ говорить о том, что будет использоваться только шифрованное соединение. Открытый ключ хранится в папке data
4. Запускаем docker-compose up -d
5. На клиенте указывает ip-адрес машины (id и шлюз ретранслятора), открытый ключ и пробуем подключиться.

#devops@itmxav
#docker@itmxav

😉 На сайте
Как работать с Docker под своим пользователем?

Чтобы не сидеть под root, а работать под своим пользователем надо пользователя закинуть в группу Docker’а:

usermod -aG docker ИМЯ_пользователя

#devops@itmxav
#docker@itmxav

😉 На сайте
Как убрать сообщения crash Ceph?

1. Посмотреть уведомление crash
ceph crash ls

2. Конкретное сообщение
ceph crash info ИД_СООБЩЕНИЯ

3. Архивировать сообщение
ceph crash archive ИД_СООБЩЕНИЯ

или все сообщения
ceph crash archive-all

#ceph@itmxav

😉 На сайте
Установка NFS-server на Debian

1. Обновляемся и ставим нужные пакеты
apt update; apt upgrade; apt install nfs-kernel-server nfs-common portmap

2. Запускаем сервис и добавляем его в автозагрузку
systemctl start nfs-server; systemctl enable nfs-server

3. Создаем папку, где всё будет лежать
mkdir -p /var/nfsiso

4. Редактируем файл exports
nano /etc/exports
/var/nfsiso 192.168.2.0/24(rw, async, no_subtree_check, no_root_squash)

Вместо пробелов — tab.
Если нужен доступ для всех, то вместо подсети указыается «*»
Лучше не использовать no_root_squash, чтобы нехорошие пользователи не могли загрузить нехорошее.

5. Перезагружаемся
reboot

#linux@itmxav
#fasthowto@itmxav

🎬 На Youtube

😉 На сайте
Как собрать образ из контейнера Docker для отправки в реестр?

1. Собираем
docker commit -m "message" -a "Author" ID_container Address_Server/registry/nameContainer:tag

2. Отправляем
docker push Address_Server/registry/nameContainer:tag


😉
На сайте
Как работать с Docker через прокси?

1. Создаем папку
mkdir -p /etc/systemd/system/docker.service.d

2. Создаем файл конфигурации прокси для Docker
nano /etc/systemd/system/docker.service.d/http-proxy.conf

3. Прописываем нужные параметры
[Service]
Environment="HTTP_PROXY=http://Address_Server:PORT"
Environment="HTTPS_PROXY=http://Address_Server:PORT"
Environment="NO_PROXY="localhost,127.0.0.1,::1"

4. Смотрим, что получилось
systemctl show --property=Environment docker

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

#devops@itmxav
#docker@itmxav

😉 На сайте
Docker - x509 certificate signed by unknown authority self signed

Если при push в Docker возникает ошибка "x509 certificate signed by unknown authority self signed", то её можно решить следующим образом:

1. Забираем самоподписанный сертификат при помощи scp
scp docker_user@Address_Server:/etc/docker/certs.d/Address_Server/ca.crt /etc/docker/certs.d/Address_Server/ca.crt

2. Логинимся и пробуем сделать push
docker login Address_Server
docker push Address_Server/registry/nameContainer:tag

#devops@itmxav
#docker@itmxav

😉На сайте
Как установить docker-compose?

1. Переходим в локальный bin
cd /usr/local/bin/ 

2. Качаем docker-compose (в примере v2.23.3)
wget https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64 

3. Переименовываем и добавляем права на исполнение
mv docker-compose-linux-x86_64 docker-compose
chmod +x /usr/local/bin/docker-compose

4. Проверяем работу через просмотр версии
docker-compose --version

#devops@itmxav
#docker@itmxav

🎬 На Youtube

🔗 На сайте
Как сделать резервное копирование данных rocketchat server?

1. Останавливаем
sudo service snap.rocketchat-server.rocketchat-server stop

или
sudo systemctl stop snap.rocketchat-server.rocketchat-server

2. Создание резервной копии данных
sudo snap run rocketchat-server.backupdb

3. Восстановление данных (сервис должен быть выключен)
sudo snap run rocketchat-server.restoredb /var/snap/rocketchat-server/common/rocketchat_backup.tgz

4. Запускаем сервис
sudo service snap.rocketchat-server.rocketchat-server start

или
sudo systemctl restart snap.rocketchat-server.rocketchat-server

P.s. База данных может быть скопирована отдельно.

#devops@itmxav

😉 На сайте
Как обновить Rocket.chat через snap?

1. Останавливаем
sudo service snap.rocketchat-server.rocketchat-server stop

или
sudo systemctl stop snap.rocketchat-server.rocketchat-server

2. Переключаем на нужную ветку
Обновление должно быть последовательное по версиям 1.x->2.x->3.x->4.x->5.x->6.x
Обязательно сделайте резервное копирование

sudo snap switch rocketchat-server --channel=x.x/stable

3. Обновляемся
sudo snap refresh rocketchat-server

или всё сразу
sudo snap refresh rocketchat-server --channel=x.x/stable

4. Запускаем сервис
sudo service snap.rocketchat-server.rocketchat-server start

или
sudo systemctl restart snap.rocketchat-server.rocketchat-server

#devops@itmxav

😉 На сайте
Как сбросить пароль RocketChat (admin) SNAP?

Сброс пароля RocketChat:
1. Подключаемся к СУБД
rocketchat-server.mongo

2. Выбираем область
use parties

3. Создаем временную одноразовую ссылку для смены пароля
db.getCollection('users').update({username:"ПОЛЬЗОВАТЕЛЬ"}, {$set: { "services":{"loginToken":{"token":"ТокенПридуманный"}}, "requirePasswordChange":true} })

или можно изменить пароль через bcrypt
db.getCollection('users').update({username:"ПОЛЬЗОВАТЕЛЬ"}, { $set: {"services" : { "password" : {"bcrypt" : "хэш" } } } })

4. Переходим по ссылке и меняем пароль
https://домен/login-token/ТокенПридуманный

#devops@itmxav

😉 На сайте
Как настроить SNMP v2c на Ruckus ZoneFlex R320?

1. Подключаемся по SSH.
2. Определяем версию SNMP и устанавливаем community
set snmp version v2c
set snmp community ro NAME_COMMUNITY
set snmp community rw NAME_COMMUNITY

3. Делаем доступ по ACL c определенный IP
set snmp-acl enable 
set snmp-acl add IP_ADDRESS1
set snmp-acl add IP_ADDRESS2

#мониторинг@itmxav

😉 На сайте
🎄 С наступающим 2024 годом! 🎄

Пусть новый год принесет меньше проблем, побольше успешных проектов, надежных инструментов для управления и мониторинга сложных IT-инфраструктур, а также беспроблемных апгрейдов.

Всем успехов и отличного настроения! 🎅