четверг, 15 сентября 2022 г.

mysql - некоторые хитрости

 Задача - скопировать таблицы из одной базы в другую, поменяв имя таблиц (добавить префикс). Можно сделать через mysqldump | sed | mysql, а можно так:

Первое заполнение можно сделать примерно так

SELECT concat('CREATE TABLE maindb.', TABLE_NAME, ' LIKE tmpdb.', TABLE_NAME, ';') FROM information_schema.TABLES  WHERE TABLE_SCHEMA = 'tmpdb';

SELECT concat('INSERT INTO maindb.', TABLE_NAME, ' SELECT * FROM tmpdb.', TABLE_NAME, ';') FROM information_schema.TABLES  WHERE TABLE_SCHEMA = 'tmpdb';

Но.. надо сохранить вывод в файл (например через mysql -b -e '...' > tmp.sql) и выполнить, а можно прямо в консоли mysql, будет дальше.

Без временного файла это будет выглядеть так

T1=$(mysql -b -s -r -e "SELECT concat('CREATE TABLE maindb.prefix_', TABLE_NAME, ' LIKE tmpdb.', TABLE_NAME, ';') FROM information_schema.TABLES  WHERE TABLE_SCHEMA = 'tmpdb';")

mysql -e "$T1"

T2=$(mysql -b -s -r -e "SELECT concat('INSERT INTO maindb.prefix_', TABLE_NAME, ' SELECT * FROM tmpdb.', TABLE_NAME, ';') FROM information_schema.TABLES  WHERE TABLE_SCHEMA = 'tmpdb';")

mysql -e "$T2"

Но, заполнили первый раз базу, обновляем - а теперь нужно сначала удалить все старые таблицы.

https://phoenixnap.com/kb/mysql-drop-table

(нюанс: мария 10.5 - не работает select * FROM information_schema.tables WHERE @schema = database();  - нужно убрать @schema = database(); )



вторник, 30 августа 2022 г.

Очередной косяк убунты

 За что я ненавижу убунту...

Ubuntu 21.10 - это далеко не EoL.

apt update

E: The repository 'http://archive.ubuntu.com/ubuntu impish Release' does not have a Release file.

N: Updating from such a repository can't be done securely, and is therefore disabled by default.

N: See apt-secure(8) manpage for repository creation and user configuration details.

E: The repository 'http://archive.ubuntu.com/ubuntu impish-updates Release' does not have a Release file.

N: Updating from such a repository can't be done securely, and is therefore disabled by default.

N: See apt-secure(8) manpage for repository creation and user configuration details.

E: The repository 'http://archive.ubuntu.com/ubuntu impish-security Release' does not have a Release file.

N: Updating from such a repository can't be done securely, and is therefore disabled by default.

N: See apt-secure(8) manpage for repository creation and user configuration details.

E: The repository 'http://archive.ubuntu.com/ubuntu impish-backports Release' does not have a Release file.

N: Updating from such a repository can't be done securely, and is therefore disabled by default.

N: See apt-secure(8) manpage for repository creation and user configuration details.

Нужно править /etc/sources.list и менять там какую-то ботву. В не-еол продукте! В той же центоси такой маразм начиная с 5 версии приходилось делать ровно 0 раз. А тут года не прошло. Уроды криворукие.

понедельник, 29 августа 2022 г.

про серты LE

 Для большинства баян, но.. если стоит очень старая система и не принимает даже валидные LE серты

curl: (60) SSL certificate problem: certificate has expired

sudo apt install -y ca-certificates
sudo sed -i '/^mozilla\/DST_Root_CA_X3.crt$/ s/^/!/' /etc/ca-certificates.conf
sudo update-ca-certificates

https://stackoverflow.com/questions/69408776/how-to-force-older-debian-to-forget-about-dst-root-ca-x3-expiration-and-use-isrg

воскресенье, 28 августа 2022 г.

2 возможные проблемы с rsyslogd в debian

 Это конечно не всё, но что было недавно актуально для меня:

1) привыкли что rsyslog работает от syslog:adm и есть скрипты, которые хотят юзера rsyslog? Забудьте, в дебе в отличие от убунты оно работает от рута. Можно добавить руками юзера (useradd -r -s /usr/sbin/nologin -g adm syslog)

А можно поставить убунту версию, где эта проблема решена изначально

deb http://ppa.launchpad.net/adiscon/v8-stable/ubuntu bionic main

2) apparmor испортит жизнь, если нужны логи не в стандартном месте.

https://documentation.suse.com/sles/15-SP1/html/SLES-all/cha-apparmor-profiles.html

Можно отключить профиль в аппармор

apt install apparmor-utils

aa-disable usr.sbin.rsyslogd

Можно добавить нужные папки в /etc/apparmor.d/local/usr.sbin.rsyslogd

и перечитать профиль



вторник, 23 августа 2022 г.

Сделать csr по существующему сертификату

 

openssl x509 -x509toreq  -copy_extensions copyall -in $SITENAME.crt -signkey $SITENAME.key -out $SITENAME-new.csr 

Для старых версий

openssl x509 -x509toreq -in $SITENAME.crt -signkey $SITENAME.key -out $SITENAME-new.csr 

https://security.stackexchange.com/questions/104139/generate-csr-from-existing-certificate


среда, 17 августа 2022 г.

Монтирование тома с дисками в систему

 Допустим, есть KVM машина, у которой проблемы с запуском/доступом.

Если диски подключены через LVM то:

1) ОБЯЗАТЕЛЬНО - остановить машину (virsh destroy ...)

2) # kpartx -av /dev/VG1/kvm001_system

3) в /dev/mapper появятся диски типа /dev/mapper/kvm001_system1

можно просто примонтировать руками нужный подраздел 

mount /dev/mapper/kvm001_system1 /mnt

4) потом umount

5) # kpartx -dv /dev/VG1/kvm001_system

Машину можно стартовать.

Если пишем в файлы - технология будет похожа.

Нюанс есть у нас "лвм в лвм", тогда после kpartx -av делаем lvscan и vgchange -ay ...

А для отключения - наоборот, сначала vgchange -an ...; kpartx -dv ...; pvscan 


Можно извратиться, вычислить смещения и 

sudo mount -o loop,offset=1048576 centos6.img /mnt/centos6

Также есть guestmount 

воскресенье, 17 июля 2022 г.

gitlab cicd vs github actions

 Изначально gitlab-ci делался максимально простым, поэтому он лёгок в изучении, но почти всё - делается чем-то внешним. В частности, очень многие его интегрируют с ansible и аналогами.

github actions чуть интереснее, пример знакомства

GitHub Actions Tutorial - Basic Concepts and CI/CD Pipeline with Docker

Нужно учитывать что actions это не только ci/cd.

А ещё мне оно очень напоминает jenkins pipelines.

пятница, 22 апреля 2022 г.

Немного про VPN

 Сейчас для многих весьма остро стоит вопрос с доступом к ряду ресурсов, и приходится покупать/поднимать впн.

Мне больше всего импонирует SSTP - штатно умеют все основные операционки, но с мобилами вопрос.

Можно взять openvpn - но настройка через консоль отпугивает многих, а openvpn-ce платный от 3+ коннектов. Правда, нашлась админка от Flant - https://github.com/flant/ovpn-admin/

Ещё вариант - WireGuard

Пошаговая инструкция по настройке Wireguard VPN + DNSCrypt + DNS server (Unbound) + Pihole

Всякие pptp, l2tp, ipsec (ike) не рассматриваем - их очень легко обнаружить и заблокировать, верх "удобства" - gre.

про настройку phpmyadmin

 Тема довольно старая, и по возможности вообще не надо его ставить (лучше хоть workbench взять, он умеет даже ssh тоннель сам поднять, чтобы 3306 в мир не открывать), но если пришлось - лучше уделить ему внимание. И речь не о простой установке, с ней всё только начинается...

hardening phpmyadmin

В 2 строки (самое типовое и "глупое" решение)
auth_basic "Admin Login";
auth_basic_user_file /etc/nginx/pma_pass;

Наиболее полная дока которую удалось найти:

https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-with-nginx-on-an-ubuntu-20-04-server

В этой доке есть даже такие вещи как проброс порта через ssh! (правда, в разрезе открытия админки только на внутренние адреса и доступ по такому тоннелю, что тоже сильно повышает безопасность)

ЗЫ про настройку через сокет:

https://eternalhost.net/base/vps-vds/nginx-ustanovka-phpmyadmin-ubuntu

среда, 6 апреля 2022 г.

gcore и их некоторые сервисы

На данный момент они же edgecenter.ru

В разрезе автоматизации, то есть через terraform

kubernetes

https://support.edgecenter.ru/knowledge_base/category/57207

Дальше работать можно через веб, можно через cli (kubectl), информация есть выше. А можно через (дискредетировавший себя) терраформ

https://registry.terraform.io/providers/G-Core/gcorelabs/latest/docs

https://github.com/G-Core/terraform-provider-gcorelabs/tree/master/examples

s3

Подключиться к S3 хранилищу с помощью aws cli и S3cmd

урлы и регионы

https://gcorelabs.com/support/articles/360002112138/

ацл и далее

https://gcorelabs.com/support/sections/360000563618/

четверг, 24 марта 2022 г.

Небольшая памятка по доменам и ссл

 Вроде неплохой вариант по ценам на домены

https://active.domains/domains/

И поскольку большинство ссл регистраторов отказались от РФ, нужно искать регистраторов GlobalSign. Терпимый вариант:

https://www.reg.ru/ssl-certificate/GlobalSign/

суббота, 19 марта 2022 г.

metabase in ubuntu

https://computingforgeeks.com/how-to-install-metabase-with-systemd-on-ubuntu/

sudo apt install -y default-jdk

sudo apt install mariadb-server mariadb-client

https://computingforgeeks.com/how-to-install-mariadb-on-ubuntu-lts-linux/

Для удобства делаем старт и управление через сервис systemd

После настройки добавляем нужные базы как дополнительные источники.

Так же, для безопасности (SSL) и удобства работы ставим nginx и примерно такое

# sample nginx.conf # proxy requests to Metabase instance server { listen 80; listen [::]:80; server_name your.domain.com; location / { proxy_pass http://127.0.0.1:3000; } }

https://www.metabase.com/docs/latest/operations-guide/running-metabase-on-debian.html

пятница, 4 марта 2022 г.

Очень важное преимущество своего геокластера перед облаками

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

В этом плане значительно надёжнее классическое "несколько независимых датацентров на независимых людей из разных стран" -- и ТАКОЕ убить будет крайне сложно. "кококо нужны админы" -- зато другие риски гораздо меньше.

Уточнение: если что, есть ещё китайское облако,  alicloud. Они пока не собирались ничего разрывать.

Такие дела.

вторник, 8 февраля 2022 г.

Замена для elasticsearch

 Как мне стало известно, эластик для включения SSO хочет денег (доступно только на ОЧЕНЬ платных тарифах), плюс всё больше добавляет телеметрии. И как мне сказали, с версии 7.12 убран функционал плагинов так, что сломалось многое, включая сторонние реализации SSO. 

И тут вспомнился скандал что амазон делал свои патчи, что очень не нравилось эластику. Очень быстро нашлось

https://www.infoq.com/news/2021/04/amazon-opensearch/

https://venturebeat.com/2021/07/13/amazons-elasticsearch-fork-opensearch-hits-prime-time/

Бонусом оказывается эластик стал менять лицензии на закрытые. "Жадность фраера сгубила". И теперь есть настоящий, вменяемый форк, с правильной версии, с правильными лицензиями, без лишней телеметрии и прочего жадного мусора.

Впрочем, не ёлкой единой. И если у logstash существует тьма замен (filebeat, journalbeat, fluentbit/fluentd, итд), то с эластиком сложнее. Хотя "слабое звено" в данном случае не эластик а кибана и нужно искать замену ей.

Использование Clickhouse в качестве замены ELK, Big Query и TimescaleDB

Чем заменить ELK для просмотра логов?


https://aws.amazon.com/ru/blogs/opensource/introducing-opensearch/