J'ai besoin de stocker des informations de configuration par environnement dans un outil.
Il s'agit d'un outil avec une interface graphique pour ajouter / mettre à jour des valeurs de configuration (par exemple des chaînes de connexion). Celui-ci doit avoir une valeur par défaut et pouvoir la modifier en fonction des différents environnements.
Il doit y avoir une API pour récupérer ces valeurs de configuration lors du déploiement dans un environnement particulier à ajouter à l'application.
J'ai cherché pendant un certain temps et je ne vois aucun outil qui conviendrait à ce projet de loi. Y a-t-il des suggestions?
Remarque : Actuellement, les paramètres sont dans des variables TeamCity et le déploiement se fait via des scripts PowerShell.
Réponses:
Il existe de nombreux outils qui peuvent faire quelque chose comme ça, y compris des outils de gestion de configuration comme Chef, Ansible ou Puppet; et des outils KVS comme Consul et etcd. Vous pouvez également l'intégrer en tant qu'étape de génération dans votre serveur CI, ou contourner le problème en utilisant la configuration en direct au moment de l'exécution par rapport à un magasin de configuration externe (encore une fois, quelque chose comme Consul ou etcd, ou n'importe quelle base de données).
la source
Peut-être un dépôt différent? Un avec des branches pour QA, UAT, Prod (ni plus). Un dépôt qui est différent de vos repos habituels "Code as Code" et "Infrastructure as Code".
C'est très nuancé. Combien de config par env. Est-il basculé entre les versions? Si ces états à bascule maintiennent l'état malgré les déploiements binaires. Pour quel client, client, invité ou utilisateur maintenez-vous la configuration?
J'ai écrit un tas d' entrées de blog (et prototypes / démos) sur le sujet pendant 5 ans - y compris des interfaces utilisateur pour le basculement (si vous en avez besoin).
la source