URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9894
[ Назад ]

Исходное сообщение
"Посоветуйте способ хранения конфигов"

Отправлено universite , 21-Авг-14 02:19 
Имеется самопальный хостинг.
Конфиги nginx, apache и php-fpm генерируется на основе шаблонов и файла данных

$ cat domain.ip.list


# login domain    ipv4    ipv6    proxy ipv4    proxy ipv6    zz-nginx-php-zz|zz-nginx-apache-zz    yy-mail-yy
ynek    ynek.biz        5.11.11.11    2001:4000:1:1234::1    127.0.0.1    zz-nginx-apache-zz
ynek    frontend.ynek.biz    5.11.11.11    2001:4000:1:1234::1            zz-nginx-php-zz
...

Хочется по ключу login-domain всунуть еще десятка два параметров.

Поэтому встал вопрос смены файла данных на:
1) XML-конфиг
2) sqlite база
3) ваши варианты...


Содержание

Сообщения в этом обсуждении
"Посоветуйте способ хранения конфигов"
Отправлено tsolodov , 21-Авг-14 15:55 
>[оверквотинг удален]
> yy-mail-yy
> ynek ynek.biz  5.11.11.11 2001:4000:1:1234::1 127.0.0.1 zz-nginx-apache-zz
> ynek frontend.ynek.biz 5.11.11.11 2001:4000:1:1234::1   zz-nginx-php-zz
> ...
>

> Хочется по ключу login-domain всунуть еще десятка два параметров.
> Поэтому встал вопрос смены файла данных на:
> 1) XML-конфиг
> 2) sqlite база
> 3) ваши варианты...

А чем не устраивает текущая установка?
Вообще писать в БД(лучше все таки mysql/postgress/MS) по мне более интереснее т.к.  к ней можно будет обращаться с разных мест и скрипты писать по мне проще используя данные из БД. А в postgres вообще очень развитый язык программирования и все можно построить на хранимых процедурах.(сам не юзал).+при вставке можно проверять корректность данных а в xml такое не прокатит наверное. Ну или как вариант сейчас писать в sqlite, переписать скрипты на mysql/postgres с него будет проще.



"Посоветуйте способ хранения конфигов"
Отправлено pavlinux , 25-Авг-14 06:05 
> Хочется по ключу login-domain всунуть еще десятка два параметров.


CREATE TABLE IF NOT EXISTS `clients` (
  `login` varchar(255) NOT NULL default '',
  `domain` varchar(255) NOT NULL default '',
  `ipv4` varchar(255) NOT NULL default '',
  `ipv6` varchar(255) NOT NULL default '',
  `proxy_ipv4` varchar(255) NOT NULL default '',
  `proxy_ipv6` varchar(255) NOT NULL default '',
  `zz-nginx-php-zz` tinyint(1) NOT NULL default '0',
  `zz-nginx-apache-zz` tinyint(1) NOT NULL default '0',
  `yy-mail-yy` varchar(255) NOT NULL default '',
  KEY `login` (`login`)
) TYPE=MyISAM AUTO_INCREMENT=сам считай;


$ mysql -p -u odmin -D supirbasa -e 'INSERT INTO clients VALUES (ynek,ynek.biz,5.11.11.11,2001:4000:1:1234::1,127.0.0.1,,0,1,);'

Ну если прям так хочется трехмерности: логин-домен-значения, то могёшь для
каждого логина создавать базу, в этой базе таблицу "домен(ы)", и в них уже значения.

Короча, планировать сначала надо, решений дох...я.

> 1) XML-конфиг

XML удобен для юзеров. Например цвет кнопак менять
> 2) sqlite база

эта хрень для работы с приложениями.
> 3) ваши варианты...

Голый текст:
ключ = значения до первого "\n"
ключ(аргумент) = значения до первого "\n"

и парсер на C и regexp :D

В последней профит: Аццкая скорость, непортабельность (с работы не выгонят).
MySQL для работы типа "наотибись и так полно дел".


"Посоветуйте способ хранения конфигов"
Отправлено universite , 23-Дек-14 00:08 
> Имеется самопальный хостинг.
> Конфиги nginx, apache и php-fpm генерируется на основе шаблонов и файла данных
> $ cat domain.ip.list
>
 
> # login domain ipv4 ipv6 proxy ipv4 proxy ipv6 zz-nginx-php-zz|zz-nginx-apache-zz
> yy-mail-yy
> ynek ynek.biz  5.11.11.11 2001:4000:1:1234::1 127.0.0.1 zz-nginx-apache-zz
> ynek frontend.ynek.biz 5.11.11.11 2001:4000:1:1234::1   zz-nginx-php-zz
> ...
>

нашел интересный стиль - record-jar style http://www.catb.org/esr/writings/taoup/html/ch05s02.html#id2...


Planet: Mercury
Orbital-Radius: 57,910,000 km
Diameter: 4,880 km
Mass: 3.30e23 kg
%%
Planet: Venus
Orbital-Radius: 108,200,000 km
Diameter: 12,103.6 km
Mass: 4.869e24 kg
%%
Planet: Earth
Orbital-Radius: 149,600,000 km
Diameter: 12,756.3 km
Mass: 5.972e24 kg
Moons: Luna

Осталось написать парсинг значений по конкретному значению login...


%%
login: default
domain: default.com
ipv4:   10.10.10.10
ipv6:   2001:4000:1:1234::1
proxy ipv4:     127.0.0.1
proxy ipv6:     null
zz-nginx-php-zz:        yes
zz-apache-zz:   null
yy-mail-yy:     null
%%
...


"Посоветуйте способ хранения конфигов"
Отправлено fantom , 23-Дек-14 15:12 
>[оверквотинг удален]
> yy-mail-yy
> ynek ynek.biz  5.11.11.11 2001:4000:1:1234::1 127.0.0.1 zz-nginx-apache-zz
> ynek frontend.ynek.biz 5.11.11.11 2001:4000:1:1234::1   zz-nginx-php-zz
> ...
>
> Хочется по ключу login-domain всунуть еще десятка два параметров.
> Поэтому встал вопрос смены файла данных на:
> 1) XML-конфиг
> 2) sqlite база
> 3) ваши варианты...

У вас де-факто стоит выбор типа базы данных,
SQL
xml

да хоть тот же ldap
Если хочется потенциальной масштабируемости - то sql или ldap,
Но это приведет к необходимости обслуживания еще одного сервиса.