Не, ну вот, блять, вся суть девопса на одном простом конкретном примере:
https://github.com/bkeepers/dotenv
Я знаю — вам лень читать, что за хуйню я приволок. Объясняю.
Есть у тебя, допустим, адрес хоста со сраной базой данных.
Ты не можешь его захардкодить в своем ПРИЛОЖЕНИИ. Ты что, «хардкод» — это вообще матерное слово.
Ты не можешь засунуть этот адрес в конфигурационный файл, потому что конфиг — это so 1980.
Как делают крутые пацаны? Крутые пацаны делают по гайду: адрес хоста надо пихать в переменную окружения.
А если у тебя вдруг есть устаревший софт, который уже работает с конфигами — не беда: надо просто сделать шаблон конфига, и каждый раз при деплое подставлять в него значнеия из переменных окружения. Красота!
database.yml.j2:
database:
host: {{ ENV['host'] }}
port: {{ ENV['port'] }}
Только тут такая беда начинается, что заебывает каждый раз глядеть, как любая команда исполняется вместе с двумя экранамиZALUPA_ONE=true ZALUPA_TWO=false ... ZALUPA_INFITY=yes /usr/bin/puk
Что же делать?
Мы возьмем все переменные окружения — и засунем их в ФАЙЛИК!
Все, блять, у меня закончилась фантазия на шутки, идите все в пизду.