Как сократить время на настройку project env?
-
03-07-2019 - |
Вопрос
В нашем проекте мы записываем множество журналов приложений (иногда они очень полезны) в tmp
папка.
В этой папке у нас есть каталоги компонентов, такие как:
- API
- электронная почта 2sms
- запланированная отправка
- выставление счетов
- и т.д.В общем, менее 10 папок.
Проблема: со временем появляются новые папки компонента - каждая из этих папок должна быть доступна для записи.
Таким образом, каждому разработчику требуется время, чтобы изменить каждую из этих папок в своих локальных средах, требуется время, чтобы изменить эти папки в рабочей среде.
Как эта проблема может быть решена? Как этот процесс может быть автоматизирован (задача Apache Ant, свойства SVN, скрипт приложения - который должен отвечать за задачу)?
Окружающая среда: Среды разработки - Ubuntu, Windows;производство - FreeBSD
Решение
Быстрый и грязный метод, который я использовал в большинстве компаний, в которых я работаю, был примерно таким:
- Поместите весь код в систему управления версиями (например, SVN или что-то в этом роде), чтобы у всех разработчиков был единый источник файлов.Очевидно, что ты уже делаешь это. Ура!
- Поместите в корень этого кода файл с именем
setup_permissions.sh
который обновляет все данные о локальной среде.Это может включать разрешения или все, что вам нужно для запуска. - Каждое утро все программисты делают
svn update
, который обновляет файлы, а такжеsetup_permissions.sh
. - Они пытаются запустить свой код.Видите проблему.Они бегут
setup_permissions.sh
. - Все хорошо в мире!
Что касается содержания setup_permissions.sh
, это могло бы быть что - то вроде:
#/bin/sh
TMP=/tmp
mkdir $TMP/api
mkdir $TMP/email2sms
mkdir $TMP/scheduled_sending
mkdir $TMP/billing
chmod 777 -r $TMP/api $TMP/email2sms $TMP/scheduled_sending $TMP/billing
И добавляйте любые другие команды, которые, по вашему мнению, вам нужны.
(О, и не используйте chmod 777
...это ужасная идея.Просто посмотрите на это как на пример.)
Ключом к такому подходу является дисциплина.Вы должны доверять своим программистам в том, что они обладают достаточной дисциплиной для запуска setup_permissions.sh
когда они обновляют свои локальные среды .То же самое касается того, кто обновляет производственную систему.
У вас также должна быть дисциплина для обновления setup_permissions
с любыми изменениями, которые вы вносите в структуру каталогов, и любыми необходимыми изменениями разрешений - вместо того, чтобы просто вносить изменения вручную на вашем компьютере и останавливаться на этом.(И то же самое касается всех других разработчиков, которые вносят изменения в структуру каталогов.)
Другие советы
тот (программа / компонент), кто создает журнал, должен нести ответственность за то, чтобы файлы журнала были доступны для записи всем - использовать mod = 777 (доступно для записи всем) при создании журналов.
если у процесса развертывания есть сценарий установки, также сделайте это в script.
mkdir и chmod в простом сценарии оболочки должно быть достаточно.