Outil de stockage par configuration d'environnement

11

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.

Tim
la source
Envie de choses payées? Avez-vous un système de gestion de configuration? qu'utilisez-vous pour déployer?
Tensibai
Les options payantes seront configurées. Actuellement, les paramètres sont dans des variables TeamCity et le déploiement se fait via des scripts PowerShell.
tim
Pas strictement une réponse, donc un commentaire - avez-vous envisagé d'utiliser Octopus Deploy pour les déploiements car cela vous permet de gérer la configuration environnementale de manière très flexible.
Richard Slater
Si vous utilisez un système de contrôle de source de branche clairsemée, comme ClearCase, vous pouvez simplement brancher les fichiers avec des modifications, vous pouvez regarder des stratégies pour gérer les modifications OSD (dépendant du système d'exploitation) dans VCS. Si vous utilisez git, vous devrez constamment rebaser les branches non par défaut. Certains outils de configuration ont des paramètres par environnement via des variables. Dans Ansible, j'ai un fichier avec des valeurs par défaut et des superpositions variables pour les environnements de non-production. Ne stockez aucun paramètre dans les outils CI, ils devraient tous être dans VCS. Y compris les configurations TC.
Jiri Klouda
recommander de stocker toute la configuration avec la source. nous avons plusieurs services azur et utilisons la syntaxe de transformation azure pour toutes les personnalisations d'environnement. voir msdn.microsoft.com/en-us/library/dd465318(v=vs.100).aspx . Et nous le faisons en fait avec PowerShell au moment du déploiement dans le cadre de l'installation. Selon l'endroit où vous vous connectez au pipeline, vous pouvez le faire avant de mettre des bits sur la boîte ou, pour les mots de passe, après. Nous utilisons Azure Key Vault pour les secrets afin qu'ils n'apparaissent jamais dans le contrôle de code source.
Aucun remboursement Aucun retour

Réponses:

6

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).

Adrian
la source
1

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).

paul_h
la source