vlastní konfigurační soubor pro linux rubrika: Administrace: Software
Ahoj, potřeboval bych pro svojí aplikaci, která se skládá z kupy python/bash scriptů udělat konfigurační soubor, kde bude zapsané vše potřebné. Zdál se mi jako dobrý nápad použít json, ovšem už jsem narazil. Parser jq dělá bordel když jsou v hodnotách mezery. Je nějaká best practice pro ukládání konfiguračního souboru? Potřebuju ukládat různé hodnoty nijak spolu nesouvisející, něco bude jednoduchá hodnota, jindy to bude pole. Malý příklad co se tam může vyskytovat
{ "server": { "protocol": "http", "adress": "10.7.64.206", "port": "7331" }, "cron": [ { "interval": "1 * * * *", "user": "root", "command": "/etc/wsc/test.sh" }, { "interval": "*/15 * * * *", "user": "root", "command": "/srv/scripts/test.sh" } ] }
Nebo by to bylo lepší rozdělit do různých souborů?
Do aplikacie mozu konfiguracie vstupovat roznymi sposobmi, napr:
- premenne prostredia
- premenna VM prostredia (napr java System.getProperty())
- konfiguracne subory
- parametre prikazovej riadky
Vacsinou ked som robil konfiguracie, tak sa mi osvedcilo nacitavat konfiguracne volby v tomto poradi:
- parameter prikazovej riadky
- premenna prostredia
- hodnota z externeho konfiguracneho suboru (napr /etc/myapp/conf)
- default hodnota z konfiguracneho suboru vramci aplikacie
V tvojom pripade by som si urobil nejaky .sh skript, kde budu konfiguracne volby ako premenny prostredia, napr:
export server_protocol="http" export server_address="..."
V bashovom skripte si ho potom mozes nasourcovat:
#!/bin/bash source /etc/myapp/configuration # nejaky bash kod co pristupuje k $server_address
A python skripty by som volal podobne nasourcovane bashovym skriptom:
#!/bin/bash source /etc/myapp/configuration cd workdir python -m MY_MODULE
Potom v pythone pristupujes ku konfiguracii cez:
import os os.getenv('server_address')
Druha moznost je nesourcovat konfiguraciu priamo v skripte ale priamo v prostredi napr. v .profile alebo .bash_rc
Pro zobrazení všech 3 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře