+
This commit is contained in:
452
Ubuntu.md
452
Ubuntu.md
@ -818,278 +818,6 @@ secret = secretpass
|
||||
shortname = testclient
|
||||
nastype= testdevice
|
||||
}
|
||||
****************************************************************************************************
|
||||
Установка PostgreSQL 11.5 windows10 из https://www.enterprisedb.com/download-postgresql-binaries:
|
||||
Скачал, создаю дирректорию хранения данных:
|
||||
O:\MyDocuments\DataBases\postgresql-12.3-1-windows-x64-binaries\pgsql\bin\initdb.exe -D O:\MyDocuments\DataBases\Data_PostgreSQL_12.3
|
||||
O:\MyDocuments\DataBases\postgresql-10.13-1-windows-x64-binaries\pgsql\bin\initdb.exe -D O:\MyDocuments\DataBases\Data_PostgreSQL_10.13
|
||||
Потом создать BAT файл с тем текстом что отобразится при создании каталога базы
|
||||
База данных создаётся не под пользователем postgres а под локальным пользователем igor
|
||||
****************************************************************************************************
|
||||
Установка PostgreSQL 14 ubuntu 22.04 или 24.04
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install postgresql postgresql-contrib -y
|
||||
Или так если нужно установить PostGIS
|
||||
sudo apt-get install postgis
|
||||
Для удаления PostGIS в месте с зависимыми пакетами:
|
||||
sudo apt-get remove --auto-remove postgis
|
||||
sudo apt-get purge postgis
|
||||
Добавить русскую локаль если её нет:
|
||||
sudo locale-gen ru_RU
|
||||
sudo locale-gen ru_RU.UTF-8
|
||||
sudo locale-gen kk_KZ
|
||||
sudo locale-gen kk_KZ.UTF-8
|
||||
Проверить какая локаль по умолчанию:
|
||||
localectl status
|
||||
И переконфигурировать локаль по умолчанию в ru_RU.UTF-8 (а то в mc могут быть кракозябры):
|
||||
sudo dpkg-reconfigure locales
|
||||
|
||||
Для задания пароля в PostgreSQL выполнить:
|
||||
sudo -u postgres psql
|
||||
\password postgres
|
||||
\q
|
||||
Роль входа по умолчанию: postgres пароль можно поменять когда в pg_hba.conf установить trust
|
||||
Задать пароль:
|
||||
sudo -u postgres psql
|
||||
postgres=> SELECT usename FROM pg_user;
|
||||
postgres=> alter user postgres password 'PasSecrKey1';
|
||||
postgres=> \q
|
||||
|
||||
Настройка postgresql.conf: http://www.lissyara.su/archive/1c_8.2+postgresql/
|
||||
Создаём базу данных выполнив функцию:
|
||||
CREATE DATABASE CCALM
|
||||
WITH OWNER = postgres
|
||||
TEMPLATE = template0
|
||||
ENCODING = 'UTF8'
|
||||
TABLESPACE = pg_default
|
||||
LC_COLLATE = 'ru_RU.UTF-8'
|
||||
LC_CTYPE = 'ru_RU.UTF-8'
|
||||
CONNECTION LIMIT = -1;
|
||||
|
||||
Файл настроек postgresql: sudo mcedit /etc/postgresql/16/main/postgresql.conf
|
||||
listen_addresses='*' #Разрешить подключение с внешки
|
||||
#Для 9й версии разрешаем экранирующие символы \' и другие без спец символа "E" перед строкой
|
||||
backslash_quote = on
|
||||
escape_string_warning = off
|
||||
standard_conforming_strings = off
|
||||
Чтобы воводил двоичные данные по старому изменить на:
|
||||
bytea_output = 'escape'
|
||||
|
||||
Настраиваю лимиты а то в саранче не выполняло большой запрос "Ошибка ввода/ввывода при отправке бэкенду"
|
||||
|
||||
Для создания нового пользователя выполнить:
|
||||
sudo -u postgres psql
|
||||
CREATE ROLE zholak LOGIN ENCRYPTED PASSWORD 'md5c0029083b93a3b16207a83b45e8a324a' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE REPLICATION;
|
||||
|
||||
Для подключения к определённой базе данных выполнить команду:
|
||||
sudo -u postgres psql
|
||||
\list or \l: для отображения всех баз
|
||||
\connect zholak zholak
|
||||
\dt для отображения всех таблиц
|
||||
|
||||
или написать со своим IP: host all all 2.133.238.240/24 trust
|
||||
Для подключения с любых IP адресов в "sudo mcedit /etc/postgresql/16/main/pg_hba.conf" прописать:
|
||||
host all all 0.0.0.0/0 md5
|
||||
Либо с одного конкретного то: host all all 92.46.48.37/24 md5
|
||||
А также поменять на listen_addresses = '*' в postgresql.conf
|
||||
Потом перезагрузить postgres:
|
||||
sudo service postgresql restart
|
||||
sudo /etc/init.d/postgresql stop
|
||||
sudo /etc/init.d/postgresql restart
|
||||
sudo /etc/init.d/postgresql start
|
||||
Проверить запущен или нет то:
|
||||
sudo /etc/init.d/postgresql status
|
||||
Посмотрель лог загрузки PostGreSQL:
|
||||
dmesg |grep pg
|
||||
Чтобы посмотреть чем занят порт выполнить команду:
|
||||
sudo netstat -tap | grep 5432
|
||||
|
||||
Создать Backup (при переносе со старой на новую версию может быть не совместим для этого нужно делать бакам в текстовом формате: plain):
|
||||
pg_dump bigfoott_shop>/home/igor/bigfoott_shop.sql --host=127.0.0.1 --username=bigfoott_root
|
||||
pg_dump ASDC_Locust>/home/igor/ASDC_Locust.sql --host=127.0.0.1 --username=postgres
|
||||
pg_dump zholak>/home/zholak/zholak.sql --host=127.0.0.1 --username=postgres
|
||||
pg_dump stations>/home/administrator/pg_dump.sql --host=127.0.0.1 --username=postgres --format=custom
|
||||
pg_dump transit>/home/administrator/transit.sql --host=127.0.0.1 --username=postgres
|
||||
pg_dump weather>weather.backup --host=127.0.0.1 --username=postgres --format=custom
|
||||
pg_dump transit>transit.backup --host=127.0.0.1 --username=postgres --format=custom
|
||||
pg_dump weather_ru>weather_ru.backup --host=127.0.0.1 --username=postgres --format=custom
|
||||
pg_dump -d CCALM -h 192.168.0.161 -U postgres -f O:\dumps\CCALM.sql
|
||||
pg_dump --dbname=postgresql://postgres:PostPas1key@127.0.0.1:5432/ShopMaster | gzip > /mnt/disk1/backup/$(date +%Y-%m-%d).ShopMaster.gz
|
||||
|
||||
Востановить Dump из текстового файла:
|
||||
psql ASDC_Locust < /home/igor/ASDC_Locustfcron.backup
|
||||
psql -h 127.0.0.1 -U bigfoott_root -d bigfoott_shop_old2 < E:\dumps\bigfoottrade\dump.sql
|
||||
psql -h 127.0.0.1 -U postgres -d monitoring < /home/igor/pg_dump.sql
|
||||
psql -h 127.0.0.1 -U postgres -d transit_2024 < /home/administrator/transit.sql
|
||||
psql -h 127.0.0.1 -U postgres -d bigfoot_shop < /home/igor/goods.sql
|
||||
|
||||
Создание SH скрипта для ежедневного бакапирования и архивации в ZIP файл:
|
||||
/mnt/O_DRIVE/MyDocuments/DataBases/dumps/run.sh
|
||||
#!/bin/sh
|
||||
pg_dump --dbname=postgresql://postgres:A6dCgeDDWHbC@127.0.0.1:5432/Queue | gzip > /mnt/disk1/backup/$(date +%Y-%m-%d).Queue.gz
|
||||
|
||||
Для востановления через pg_restore (версии баз должны совпадать а то может не восстановиться):
|
||||
su - postgres
|
||||
pg_restore -U <username> -d <dbname> -1 <filename>.dump
|
||||
pg_restore -U postgres -d zholak -1 /home/zholak/zholak_16.01.2019.backup
|
||||
pg_restore -U postgres -d monitoring -1 /home/igor/stations_20200626.backup
|
||||
pg_restore -U postgres -d transit_new -1 /home/administrator/temp/transit.backup
|
||||
pg_restore -U postgres -d transit -1 /home/administrator/transit.backup
|
||||
pg_restore --host=127.0.0.1 --username=postgres --dbname=transit_2024 --verbose /home/administrator/transit.backup
|
||||
|
||||
sudo -u postgres psql -d transit -f /tmp/transit.backup
|
||||
|
||||
Или из архива (первоначально задать trust на 127.0.0.1) так:
|
||||
gunzip -c /var/www/dump.sql.gz | psql -h 127.0.0.1 -U bigfoott_root -d bigfoott_shop
|
||||
|
||||
****************************************************************************************************
|
||||
Настройка отображения статистики для PostgreSQL:
|
||||
https://habr.com/ru/articles/488968/
|
||||
|
||||
SELECT * FROM pg_stat_statements ORDER BY total_exec_time DESC;
|
||||
SELECT * FROM pg_stat_activity
|
||||
SELECT * FROM pg_stat_replication
|
||||
SELECT * FROM pg_stat_all_tables
|
||||
|
||||
Полный список: https://postgrespro.ru/docs/postgrespro/9.5/monitoring-stats
|
||||
|
||||
Установить Prometheus сграфаной Grafana для PostgreSQL там по умолчанию есть набор настроек для сбора статистики с PostgreSQL
|
||||
По мотивам: https://grafana.com/oss/prometheus/exporters/postgres-exporter/
|
||||
По мотивам: https://www.youtube.com/watch?v=B_yz37CR1XU
|
||||
****************************************************************************************************
|
||||
Установка pgagent
|
||||
sudo apt-get update
|
||||
sudo apt-get install pgagent
|
||||
Выполнить в консоли запрос:
|
||||
psql -h localhost -U postgres
|
||||
create extension pgagent;
|
||||
\q
|
||||
Для разрешения подключения откройте файл pg_hba.conf и замените строку на:
|
||||
host all all 127.0.0.1/32 md5
|
||||
|
||||
Можно для теста запустить pgagent с повышенным уровнем логирования:
|
||||
/usr/bin/pgagent -f -l 2 hostaddr=127.0.0.1 dbname=postgres user=postgres password=lelPfAtgQWhHYfy1SsHk
|
||||
|
||||
Если файла нет то пытаюсь его создать:
|
||||
sudo mcedit /lib/systemd/system/pgagent.service
|
||||
|
||||
[Unit]
|
||||
Description=PostgreSQL PgAgent Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=postgres
|
||||
ExecStart=/usr/bin/pgagent -f hostaddr=127.0.0.1 dbname=postgres user=postgres password=PasSecrKey1
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
Проверяю что сервис был запущен:
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable pgagent
|
||||
sudo service pgagent start
|
||||
sudo systemctl status pgagent
|
||||
|
||||
|
||||
Для проверки пробуем подключиться к базе данных
|
||||
sudo -u postgres psql -h 127.0.0.1 -U postgres -d postgres
|
||||
\q
|
||||
|
||||
Похоже что нужно ещё создать файл паролей так как агент не знает как подключаться:
|
||||
sudo -u postgres touch /var/lib/postgresql/.pgpass
|
||||
sudo -u postgres chmod 600 /var/lib/postgresql/.pgpass
|
||||
sudo -u postgres mcedit /var/lib/postgresql/.pgpass
|
||||
И прописать в него:
|
||||
127.0.0.1:5432:postgres:postgres:PasSecrKey1
|
||||
Где используется такой формат: hostname:port:database:username:password
|
||||
Затем:
|
||||
sudo systemctl enable pgagent
|
||||
sudo service pgagent start
|
||||
sudo service pgagent status
|
||||
Посмотреть логи:
|
||||
sudo journalctl -u pgagent
|
||||
|
||||
****************************************************************************************************
|
||||
Для добавления автоматического бакапирования Postgresql базы *.backup создать скрипт:
|
||||
|
||||
|
||||
****************************************************************************************************
|
||||
Перенос базы PostgreSQL на другой диск: https://internet-lab.ru/postgresql_ubuntu_move
|
||||
|
||||
****************************************************************************************************
|
||||
Установка PostGIS на PostgreSQL выше 9.0 версии:
|
||||
sudo apt-get install postgis postgresql-9.3-postgis-2.1
|
||||
Для 10й версии:
|
||||
sudo apt install postgresql-10-postgis-2.4
|
||||
sudo apt install postgresql-10-postgis-scripts
|
||||
Для 12й версии:
|
||||
sudo apt install postgresql-12-postgis-2.4
|
||||
|
||||
Создать базу данных и выполнть на ней следующие команды:
|
||||
-- Enable PostGIS (includes raster)
|
||||
CREATE EXTENSION postgis;
|
||||
-- Enable Topology
|
||||
CREATE EXTENSION postgis_topology;
|
||||
-- fuzzy matching needed for Tiger
|
||||
CREATE EXTENSION fuzzystrmatch;
|
||||
-- rule based standardizer
|
||||
CREATE EXTENSION address_standardizer;
|
||||
-- example rule data set
|
||||
CREATE EXTENSION address_standardizer_data_us;
|
||||
-- Enable US Tiger Geocoder
|
||||
CREATE EXTENSION postgis_tiger_geocoder;
|
||||
|
||||
У меня начало выдавать NOTICE: version "2.2.1" of extension "postgis_topology" is already installed и PostGIS перестал работать на моём PostgreSQL 9.5.17
|
||||
Аказывается расширение кудато делось установил:
|
||||
sudo apt-get install postgresql-9.5-postgis-2.2
|
||||
****************************************************************************************************
|
||||
Для добавления TOTP авторизации в Postgresql выполнить:
|
||||
CREATE EXTENSION otp;
|
||||
|
||||
|
||||
****************************************************************************************************
|
||||
sudo apt-get install libpq-dev libpq-fe
|
||||
Если есть несовместимость libpq-dev : Зависит: libpq5 (= 14.3-0ubuntu0.22.04.1) но 14.3-1.pgdg22.04+1 должен быть установлен
|
||||
То удали ранее добавленный репозиторий: /etc/apt/sources.list.d/pgadmin4.list и обнови а потом попробуй установить заново libpq-dev
|
||||
apt update
|
||||
****************************************************************************************************
|
||||
Установка phpPgAdmin через репозиторий:
|
||||
sudo apt-get install phppgadmin
|
||||
Можно открыть так: http://localhost/phppgadmin
|
||||
Для доступа с любых ip адресов в файле: /etc/phppgadmin/apache.conf изменить на allow from all
|
||||
Чтоб можно было залогинется под пользователем postgres меняем в:
|
||||
/etc/phppgadmin/config.inc.php extra_login_security в false
|
||||
Если phpphadmin не дает залогиниться и пишет "Неверный логин", нужно в postgresql.conf прописать $conf['servers'][0]['host'] = 'localhost';
|
||||
|
||||
Другой вариант скачать с сайта последнюю версию с "http://phppgadmin.sourceforge.net/doku.php".
|
||||
****************************************************************************************************
|
||||
Установка pgAdmin4 в Linux Mint 20.04 (inxi -S) Проверить версию линукса: cat /etc/os-release у меня выдало: NAME="Linux Mint" VERSION="20.3 (Una)"
|
||||
|
||||
Проверить что не записан левый репозиторий для phppgadmin в /ect/opt/
|
||||
curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add
|
||||
sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/bionic pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'
|
||||
sudo apt install pgadmin4
|
||||
|
||||
И не запустился сервер оболочка пытается стартануть а сервер нет...
|
||||
|
||||
sudo curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add
|
||||
sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/focal pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'
|
||||
sudo apt install pgadmin4
|
||||
|
||||
Тоже не заработал
|
||||
|
||||
Попробовать так: https://www.tecmint.com/install-postgresql-with-pgadmin4-on-linux-mint/
|
||||
|
||||
****************************************************************************************************
|
||||
Балансировщик назрузки и потоковая репликация:
|
||||
Pgpool-II https://www.youtube.com/watch?v=qpxKlH7DBjU сервер с высокой доступностью
|
||||
https://ritorika.com.ua/dokument/6/pgpool-chto-jeto
|
||||
****************************************************************************************************
|
||||
Мониторинг запросов postgresql
|
||||
|
||||
|
||||
|
||||
****************************************************************************************************
|
||||
Проверить версию OpenSSL: openssl version -v
|
||||
@ -2837,186 +2565,6 @@ echo $_SERVER['REMOTE_ADDR'];
|
||||
Проверяем что находит IP по доменному имени
|
||||
nslookup dirt.kz 127.0.0.1
|
||||
|
||||
****************************************************************************************************
|
||||
DynDNS на PowerDNS авторитативный сервер DNS на Ubuntu 22.04 согласно инстркции https://phoenixnap.com/kb/powerdns-ubuntu:
|
||||
Можно было-бы использовать не 53 порт, но провайдер не даёт указывать порт при настройке DNS серверов (не знаю какие локальные проблемы могут возникнуть если задать не 53 порт)
|
||||
Устанавливаем сам PowerDNS https://doc.powerdns.com/authoritative/installation.html
|
||||
sudo apt-get install pdns-server
|
||||
sudo apt-get install pdns-backend-pgsql
|
||||
Подключаюсь к базе и создаю схему базу со схемой из: https://doc.powerdns.com/authoritative/backends/generic-postgresql.html
|
||||
Настраиваю соединение с базой данных в:
|
||||
sudo mcedit /etc/powerdns/pdns.d/pdns.local.gpgsql.conf
|
||||
Со следующим содержимым:
|
||||
launch+=gpgsql
|
||||
# gmysql parameters
|
||||
gpgsql-host=127.0.0.1
|
||||
gpgsql-port=5432
|
||||
gpgsql-dbname=powerdns
|
||||
gpgsql-user=powerdns
|
||||
gpgsql-password=y7HMHi0ATxx1VC3UU5WG
|
||||
gpgsql-dnssec=no
|
||||
Задаю права доступа к файлу:
|
||||
sudo chown pdns: /etc/powerdns/pdns.d/pdns.local.gpgsql.conf
|
||||
sudo chmod 640 /etc/powerdns/pdns.d/pdns.local.gpgsql.conf
|
||||
На всякий случай делаю резервные копии исходных файлов настрое:
|
||||
cd /etc/powerdns
|
||||
sudo cp named.conf named.conf.bak
|
||||
sudo cp pdns.conf pdns.conf.bak
|
||||
Наспройку файла pdns.conf авторитетный сервер, есть такой пример который следует изучить: https://raw.githubusercontent.com/trinv/PowerDNS/a56b9122f4a2de9c1f789009f09b9831f74d8bf1/pdns.template.master.conf (естественно без 1й табуляции):
|
||||
#allow-recursion=0.0.0.0/0 не включил так как не предполагаю использоват как рккурсивный DNS
|
||||
webserver=yes
|
||||
webserver-address=0.0.0.0 #Если 0.0.0.0 то слушаем все имеющиеся
|
||||
webserver-allow-from=5.76.254.182 #если из любой сети то так: ::/0, 0.0.0.0/0 но я поставил только домашний
|
||||
webserver-port=8090
|
||||
|
||||
Перезагружаем и пытаемся открыть
|
||||
sudo systemctl stop pdns.service
|
||||
http://77.240.38.137:8090
|
||||
Проверяю соединение к базе перезапустив PowerDNS:
|
||||
sudo systemctl stop pdns.service
|
||||
sudo pdns_server --daemon=no --guardian=no --loglevel=9
|
||||
Если всё норм выполняем:
|
||||
sudo systemctl restart pdns
|
||||
sudo systemctl enable pdns
|
||||
sudo systemctl status pdns
|
||||
Проверяем что порт 53 открыт для DNS:
|
||||
sudo ss -alnp4 | grep pdns
|
||||
Проверяем отправляя запрос к dns серверу
|
||||
dig @127.0.0.1 google.com
|
||||
ping google.com
|
||||
проверяем кто слушает на порту 53
|
||||
sudo netstat -tulnp | grep :53
|
||||
|
||||
Для примера авторитетный для домена example.com то в базе данных должны быть такие настройки:
|
||||
|
||||
|
||||
|
||||
|
||||
********** рекурсивный DNS от PowerDNS, тоже 53 порт и будет конфликт, поэтому на одном IP можно настроить PowerDNS чтобы он выполнял функцию рекурсивного резольвера **********
|
||||
Чтобы работал резольвер от PowerDNS а не тот который от ubuntu:
|
||||
sudo apt-get install pdns-recursor -y
|
||||
sudo mcedit /etc/powerdns/recursor.conf
|
||||
И там прописать:
|
||||
forward-zones=.=8.8.8.8;8.8.4.4
|
||||
Также нужно настроить sudo mcedit /etc/resolv.conf и прописать туда (так как файл символическая ссылка то сервис systemd-resolved нужно остановить иначе он его перезапишет) это чтобы программы перенаправляли запросы поднятому резольверу:
|
||||
nameserver 127.0.0.1
|
||||
Чтобы запросы переходили на pdns-recursor
|
||||
Затем перезагружаем:
|
||||
sudo systemctl restart pdns-recursor
|
||||
Проверяем что преобразование DNS нормально работает:
|
||||
dig @127.0.0.1 google.com
|
||||
|
||||
********** Отключаю systemd-resolved иначе он будет конфликтовать с PowerDNS **********
|
||||
Редактирую /etc/netplan/ для того чтобы прописать поднятый DNS сервер на 127.0.0.1 (не знаю сработает ли так как отключу systemd-resolved)
|
||||
sudo netplan apply
|
||||
Смотрим что сгенерировалось автоматически в resolv.conf после модификации файла
|
||||
cat /etc/resolv.conf
|
||||
|
||||
Проверяем что интернет не перестал работать:
|
||||
ping changelogs.ubuntu.com
|
||||
Может быть что команда выше пытается по IP6 работать тогда попробовать по
|
||||
ping -4 changelogs.ubuntu.com
|
||||
Либо так:
|
||||
ping6 changelogs.ubuntu.com
|
||||
Взглянем на текущие DNS сервера, у меня такое выдало: DNS Servers: 195.210.46.195 195.210.46.132 на команду ниже:
|
||||
resolvectl status
|
||||
Отредактировал файл /etc/systemd/resolved.conf заменив nameservers на 8.8.8.8 и 8.8.4.4
|
||||
Проверяем структуру файла командой: sudo yamllint /etc/netplan/50-cloud-init.yaml
|
||||
Применяем настройки:
|
||||
sudo netplan apply
|
||||
Проверяем что настройки изменились:
|
||||
resolvectl status
|
||||
Изменил /etc/systemd/resolved.conf настроив так:
|
||||
[Resolve]
|
||||
DNS=8.8.8.8 8.8.4.4
|
||||
FallbackDNS=1.1.1.1 1.0.0.1
|
||||
Потом перезагрузил:
|
||||
sudo systemctl restart systemd-resolved
|
||||
|
||||
Проверяем что заняло порт 53 командой:
|
||||
sudo lsof -i :53
|
||||
Выдало:
|
||||
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
|
||||
systemd-r 670 systemd-resolve 13u IPv4 20070 0t0 UDP localhost:domain
|
||||
systemd-r 670 systemd-resolve 14u IPv4 20071 0t0 TCP localhost:domain (LISTEN)
|
||||
Останавливаем systemd-resolved (поисковик IP по домену по умолчанию от Ubuntu)
|
||||
sudo systemctl stop systemd-resolved
|
||||
sudo systemctl disable systemd-resolved
|
||||
|
||||
|
||||
|
||||
********** PowerAdmin **********
|
||||
Устанавливаю PowerAdmin согласно: https://phoenixnap.com/kb/powerdns-ubuntu#ftoc-heading-6
|
||||
sudo apt install libpq-dev
|
||||
sudo apt install python3-dev
|
||||
sudo apt install python3-flask
|
||||
sudo apt install python3-pip
|
||||
pip install flask-mail && pip install Flask-Migrate && pip install flask-session && pip install python-ldap && pip install flask-login && pip install qrcode[pil] && pip install pytimeparse && pip install dnspython && pip install flask-seasurf && pip install flask-session-captcha && pip install zxcvbn && pip install authlib && pip install pyotp && pip install flask-login && pip install lima && pip install flask-assets && pip install lima && pip install psycopg2 && pip install asyncpg
|
||||
|
||||
sudo apt install -y git libmysqlclient-dev libsasl2-dev libldap2-dev libssl-dev libxml2-dev libxslt1-dev libxmlsec1-dev libffi-dev pkg-config apt-transport-https python3-venv build-essential curl
|
||||
sudo apt install -y nodejs
|
||||
sudo apt install -y yarn
|
||||
Clone the PowerDNS Admin Git repository to /opt/web/powerdns-admin
|
||||
git clone https://github.com/PowerDNS-Admin/PowerDNS-Admin.git /opt/web/powerdns-admin
|
||||
cd /opt/web/powerdns-admin
|
||||
python3 -mvenv ./venv
|
||||
source ./venv/bin/activate
|
||||
pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
Конфигугрируем PowerDNS Admin.
|
||||
Для начала копирую пример конфигураци, потом открываю его в редакторе:
|
||||
cp /opt/web/powerdns-admin/configs/development.py /opt/web/powerdns-admin/configs/production.py
|
||||
mcedit /opt/web/powerdns-admin/configs/production.py
|
||||
И редактируем следующие строки:
|
||||
#import urllib.parse
|
||||
SECRET_KEY = 'e951e5a1f4b94151b360f47edf596dd0'
|
||||
SQLA_DB_PASSWORD = 'changeme'
|
||||
Cекретный ключ можно сгенерировать при помощи такой команды: python3 -c "import os; print(os.urandom(16))"
|
||||
Также настраиваю подключение к базе данных (сам строку составил):
|
||||
SQLALCHEMY_DATABASE_URI = 'postgresql://powerdns:y7HMHi0ATxx1VC3UU5WG@127.0.0.1/powerdnsadmin'
|
||||
Остальное коментирую:
|
||||
#SQLA_DB_USER = 'powerdns'
|
||||
#SQLA_DB_PASSWORD = 'y7HMHi0ATxx1VC3UU5WG'
|
||||
#SQLA_DB_HOST = '127.0.0.1'
|
||||
#SQLA_DB_NAME = 'powerdnsadmin'
|
||||
#SQLALCHEMY_DATABASE_URI = 'postgres://{}:{}@{}/{}'.format(
|
||||
# urllib.parse.quote_plus(SQLA_DB_USER),
|
||||
# urllib.parse.quote_plus(SQLA_DB_PASSWORD),
|
||||
# SQLA_DB_HOST,
|
||||
# SQLA_DB_NAME
|
||||
#)
|
||||
#SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'pdns.db')
|
||||
|
||||
|
||||
|
||||
Экспортируем переменную:
|
||||
cd /opt/web/powerdns-admin
|
||||
export FLASK_CONF=../configs/production.py
|
||||
export FLASK_APP=powerdnsadmin/__init__.py
|
||||
Upgrade the database schema:
|
||||
flask db upgrade
|
||||
|
||||
устанавливаем другие зависемости:
|
||||
sudo apt install npm
|
||||
sudo apt remove yarn
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
|
||||
sudo apt update
|
||||
sudo apt install yarn
|
||||
yarn --version
|
||||
sudo yarn install --pure-lockfile
|
||||
flask assets build
|
||||
|
||||
Можно запускать:
|
||||
./run.py
|
||||
|
||||
|
||||
Проже запустить с использованием SQLite по инструкции из: https://github.com/PowerDNS-Admin/PowerDNS-Admin/blob/master/docs/wiki/install/Running-PowerDNS-Admin-on-Ubuntu-or-Debian.md
|
||||
|
||||
SALT = '$2b$12$yLUMTIfl21FKJQpTkRQXC0'
|
||||
SECRET_KEY = 'e951e5a1f4b94151b360f47edf596dd0'
|
||||
|
||||
|
||||
|
||||
****************************************************************************************************
|
||||
Установка сервиса обмена сообщениями RabbitMQ – менеджер сообщений (message broker), написан на Erlang, ближайший аналог в AWS – SQS. По документации из: https://rtfm.co.ua/ru/rabbitmq-zapusk-opisanie-primery/
|
||||
|
||||
Reference in New Issue
Block a user