Deutsch
Germany.ruФорумы → Архив Досок→ Linux & Co

Программно поменять параметр в конфиге...

228  
achest старожил27.03.14 13:46
achest
27.03.14 13:46 
Привет всем!
имеется некая программа (tar.gz.), которая должна быть запущена на 12 компьютерах. (VMs)
На каждом компьютере свой конфиг, в форме
Property1.Value = IP.IP.IP.1
Property2.Value = DB1 etc.
Каким образом сделать исталлер , что бы прошелся по конфигу и подправил проперти на правильные. На каждом компьютере они естественно свои. Конфиг должен лежать в SVN (Versionierung)
Не понимаю, по каким ключевым словам гуглить. Спасибо.
Suse Linux, OSGI, Jenkins, SSH , Bash
bye , Alexander www.chestnov.com Мой мир: Ubuntu Linux // Fedora Android .
#1 
  anatoli888 завсегдатай27.03.14 14:14
NEW 27.03.14 14:14 
в ответ achest 27.03.14 13:46
не совсем понятен вопрос. путей, как это сделать - много. ты хочешь что бы за тебя это кто-нибудь сделал? иначе не вижу в чем у тебя проблема. вопрос сильно расплывчатый...
если я правильно понял твою задачу, то
1. распаковываем программульку
2. делаем обновление svn
3. подставляем значения
4. конфигурируем и компилируем
и это все ты хочешь сделать в jenkins навенрое, что бы собиралось все переодично и автоматом не так ли?
ну так это нужно просто садиться и писать bash скрипт.
#2 
achest старожил27.03.14 16:34
achest
NEW 27.03.14 16:34 
в ответ anatoli888 27.03.14 14:14
Jenkins Все и так собирает. Другой проект распаковывает архив, Checkout svn, переписывает директории из 2 в 1 и запускает...
Проблема в том, что программу пишут 10 человек. И если сделали какое-то измение, то его надо править в 2 местах. В проекте и в SVN, где лежат данные для серверов. т.е. 12 шт. т.е. всего 13 мест...
А измения бывают разные.т.е. могут файлик, или целую директорию добавить с новыми конфигами, или переимовать чего... И регулярно случается, что изменения сделали, а мне не сказали, и оно все падает.... Потому, что конфиги то старые...
Я не хочу бегать за всеми и найти пакетный редактор.
Я ему кормлю файлик со след содержанием он все изменяет:
editor.conf:
/configDir/config1.prop:DBNAME = DB1
/configDir2/config2.prop: Var1 = lib/db2.jar
Переиминовали ConfigDir2, Я просто его в своих файликах переименовываю...
В программе:
/configDir/config1
#
DBNAME = testDB
На сервере:
/configDir/config1
#
DBNAME = prodDB
Generische Lösung
bye , Alexander www.chestnov.com Мой мир: Ubuntu Linux // Fedora Android .
#3 
  anatoli888 завсегдатай28.03.14 16:46
NEW 28.03.14 16:46 
в ответ achest 27.03.14 16:34
понятно. ну на этот случай советую вам немного изменть стратегию.
vagrant + vmware/virtualbox + puppet
каждый раз при изменении разработчик делает у себе vagrant up и его окружение меняется в зависимости от того, что прописано делать через puppet. где уж будет лежать окружение, в vmware/virtualbox машинах, решать вам. vagrant можно адаптировать под ту технологию виртуализации, которую вы используете...
если же окружение поломалось или нужно новое окружение, то vagrant тянет box и выполняет все необходимые действия по настройке вирт. окружения.
ну а будет ли это окружение разработчика или тестовое окружение, решать уже вам. тут при помощи puppet у вас открываются большие возможности...
#4 
achest старожил01.04.14 14:09
achest
NEW 01.04.14 14:09 
в ответ achest 27.03.14 16:34, Последний раз изменено 01.04.14 15:05 (achest)
Я нашел решение ...
stackoverflow.com/questions/2914220/bash-templating-how-to-build-configur...
forum.ubuntuusers.de/topic/in-konfigurationsdatei-zeile-nach-bestimmtem-s...
В ответ на:
sed -i '/"ocr-command"/ { n; s/.*/neuer text/ }' datei
└──────┬──────┘ │ │ │ └────┬───┘
│ │ │ │ │
│ │ │ │ └ mit dem neuen Text.
│ │ │ │
│ │ │ └ ... alles, also die ganze Zeile, ...
│ │ │
│ │ └ Ersetze ...
│ │
│ └ Lies die nächste Zeile ein.

└ In der Zeile, in der "ocr-command" (inklusive
Anführungszeichen) auftaucht, soll der folgende {}-Block
ausgeführt werden.

Поднимать пуппет не хочется. Времени нет разобраться. Скрипты слижком разнородные. Dev/TEST/QA/RU/PU
bye , Alexander www.chestnov.com Мой мир: Ubuntu Linux // Fedora Android .
#5 
  anatoli888 завсегдатай02.04.14 21:28
NEW 02.04.14 21:28 
в ответ achest 01.04.14 14:09
:D ... железно (c)
#6