Certains projets Java utilisent Apache Commons Configuration et sont déployés sur plusieurs serveurs dans plusieurs environnements (dev/test/prod). Tout le code est le même, mais certains éléments de configuration changent, comme les URLs JMS (dev devrait pointer vers dev, etc) ainsi que le nom et l'environnement du serveur (j'utilise ces éléments de configuration pour le débogage).Déploiement automatisé de configurations spécifiques au serveur
Exemple:
<config>
<!-- environment can be dev|test|prod -->
<environment>dev</environment>
<serverName>myServer1</serverName>
<jmsUrl>http://my-jms-url-dev1,http://my-jms-url-dev2</jmsUrl>
</config>
Actuellement, je Deploy, construire, puis modifier les fichiers manuellement pour fournir les configurations spécifiques au serveur. Je veux un moyen d'automatiser cela quand je le déploie sur des serveurs individuels, mais toutes les manières que j'ai considérées exigent une quantité égale de douleur à installer.
ANT - Découvrez le projet avec SVN et compilez-le sur chaque serveur avec ANT. ANT lit le nom du serveur et l'environnement à partir de deux fichiers statiques - .servername et .environment - et copie une configuration spécifique au serveur vers la configuration générique. Le problème avec ceci est, je dois encore créer un fichier de configuration pour chaque serveur (j'ai 24 serveurs, et ceci peut augmenter, ainsi l'évolutivité n'est pas bonne). SVN - Branche chacun de mes projets sur une distribution spécifique au serveur.
- Ici, l'évolutivité est pire et cela devient un cauchemar à maintenir.
Est-ce que quelqu'un a des conseils pour moi?
Oh, et je devrais ajouter. C'est juste pour générer des fichiers .servername et .environment sur chaque serveur. La tâche réelle qui construit les choses qui ont besoin de ces fichiers fera également une recherche/remplacement en utilisant. Nifty! –
bdetweiler
vous pouvez simplifier la cible get Hostname avec: fonctionne sur Windows et Linux, voir: http://stackoverflow.com/questions/1196989/ ant-machine-name-propriété/1375866 # 1375866 –
Rebse
Intéressant. Merci d'avoir partagé! – bdetweiler