Существующая СУБД¶
Перед началом установки необходимо подготовить сервер c СУБД.
Настроить/Отключить Firewall
Запустить СУБД на IP адресе
Создать в СУБД пользователя с правами root
Запуск СУБД на IP адресе¶
Для запуска СУБД на определенном IP, необходимо в конфигурации в разде [mysqld] добавить параметр bind
[mysqld]
bind-address=IP_ADDRESS
Замените IP_ADDRESS на нужный IP адрес сервера, для запуска на любом IP необходимо указать 0.0.0.0.
После чего перезапустите СУБД командой:
systemctl restart mysqld
systemctl restart mysqld
systemctl restart mariadb
После того как СУБД перезапустится, проверьте что она запущена на нужном IP адресе:
netstat -nlp | grep 3306
Результатом данной команды будет показано на каком IP запущена СУБД
tcp 0 0 IP_ADDRESS:3306 0.0.0.0:* LISTEN 4848/mysqld
Создание пользователя с правами root¶
Выполните вход в консоль СУБД, после чего можно создавать пользователя:
Внимание
Замените USERNAME и USER_PASSWORD на свои значения
CREATE USER 'USERNAME'@'192.168.1.1' IDENTIFIED BY 'USER_PASSWORD' REQUIRE NONE;
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'192.168.1.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;
CREATE USER 'USERNAME'@'192.168.1.0/255.255.255.0' IDENTIFIED BY 'USER_PASSWORD' REQUIRE NONE;
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'192.168.1.0/255.255.255.0' WITH GRANT OPTION;
FLUSH PRIVILEGES;
CREATE USER 'USERNAME'@'%' IDENTIFIED BY 'USER_PASSWORD' REQUIRE NONE;
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Предупреждение
После всех установок и настройки, настоятельно рекомендуем удалить такого пользователя.
Установка ansible¶
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install --enablerepo epel-playground ansible
Добавьте репозиторий в файл /etc/apt/sources.list:
deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
После чего запустите команды:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
apt update
apt install ansible
Установка¶
Скачать и распаковать архив установщика:
wget http://setup.multi-billing.pro/database.tar.gz
tar zxf database.tar.gz
В файле config/billing.yaml изменить параметры
install_percona изменить на
falsemysql_server указать IP сервера СУБД:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | billing:
# доменное имя для nginx хостов
# реузльтатом будет
# админка: admin.ispnet.demo
# кабинет пользователей: stat.ispnet.demo
domain: "ispnet.demo"
# нужно ли ставить базу данных (софт)
# если указывать false, то база данных уже должна быть установлена
# желательно в таком случаи указать пароль от root в конфиге database.yaml
install_percona: true
# адрес сервера MySQL (для конфигов модулей биллинга)
# если указан не 127.0.0.1, то считается что MySQL на отдельном сервере
mysql_server: "127.0.0.1"
# mysql шаблон для подключения
mysql_connect: "/root/mysql.connect"
# адрес серверов обновлений
update_server: "update.multi-billing.pro"
testing_server: "current.multi-billing.pro"
# какие программы добавлять в chroot среду модулей
chroot_programs: ["sh", "bash", "echo", "date", "ls", "awk", "sed", "grep", "cat", "rm", "command"]
# данные директории не трогать!
dirs:
tmp: "/tmp/bill/install"
home: "/var/bill"
logs: "logs"
backups: "backup"
files: "files"
scripts: "scripts"
custom: "custom"
|
В файле config/database.yaml изменить параметры login и pass, указав логи и пароль пользователя с правами root:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | mysql:
# на каком адресе запускать MySQL
bind: "127.0.0.1"
# пользователь с правами root (для создания базы, пользователей)
# только если модули биллинга устанавливаются на одном сервере с MySQL
login: "root"
# пароль от пользователя root
# если пароль указан, то он будет использоваться при попытке подключения к базе (пользователь должен быть создан заранее)
# если значение пустое, пароль будет считан с лога установки и сгенерирован новый
pass: ""
# название рабочей базы
database: "bill"
# название тест базы
testing: "bill_test"
# кодировка базы данных
encoding: "koi8r"
collation: "koi8r_general_ci"
# восстановить базу из бекапа
# пример:
# backup_file: "/home/database-2020-12-01.sql"
# работает только если бекап создан с процедурами и без лишних ключей, к примеру:
# mysqldump --single-transaction --routines -u root -pstrongpassword billing > /home/backup/files/database.sql
backup_file: ""
|
После чего можно запускать процесс установки:
ansible-playbook database.yml
Информация¶
Во время установки будут созданы пользователи:
- mbadmin
Используется для модуля админки, имеет свою роль role_mbadmin с правами:
GRANT ALL PRIVILEGES ON bill.* TO 'role_mbadmin'
- mbradius
Используется для модуля радиуса, имеет свою роль role_mbradius с правами:
GRANT SELECT ON bill.radnas TO 'role_mbradius'
- mbcore
Используется для модуля ядра билинга, имеет свою роль role_mbcore с правами:
GRANT ALL PRIVILEGES ON bill.* TO 'role_mbcore'
- mbpaygw
Используется для модуля платежных систем, имеет свою роль role_mbpaygw с правами:
GRANT ALL PRIVILEGES ON bill.* TO 'role_mbpaygw'
- mbcron
Используется для модуля очереди, имеет свою роль role_mbcron с правами:
GRANT ALL PRIVILEGES ON bill.* TO 'role_mbcron'
- mbcabinet
Используется для модуля личного кабинета, имеет свою роль role_mbcabinet с правами:
GRANT ALL PRIVILEGES ON bill.* TO 'role_mbcabinet'
- mbcabapi
Используется для модуля API личного кабинета, имеет свою роль role_mbcabapi с правами:
GRANT ALL PRIVILEGES ON bill.* TO 'role_mbcabapi'
- mbsql
Используется для модуля обновления структуры базы биллинга, имеет свою роль mbsql с правами:
GRANT ALL PRIVILEGES ON bill.* TO 'role_mbsql'
Важно
Указанные наборы привилегий не конечные и могут изменяться с выходом новых обновлений.
При возникновении проблем, сообщите о них в нашем CRM или Telegram канале.