2016-11-27 1 views
1

J'utilise AWS Elastic Beanstalk pour déployer une application Laravel et j'ai créé un dossier .ebextensions où tous mes fichiers .config sont stockés.Fichier Elastic Beanstalk .config sur VCS?

Le projet est sous VCS utilisant GIT et je ne suis pas sûr si je veux ajouter le .config au dépôt car il contient certaines de mes informations d'identification.

Le fichier .config peut-il être déplacé vers s3 et utilisé pour le déploiement?

+0

Vos fichiers '.config' devraient être disponibles en tant que' snippets' dans le VCS - sans vos identifiants bien sûr. Les informations d'identification ne doivent jamais être stockées nulle part et n'existent qu'à un emplacement donné à la fois, sans duplication. Cependant, les paramètres ** sans ** informations d'identification sont * rarement * un problème. – Ohgodwhy

+0

Ok, j'ai mis les fichiers .config sans les informations d'identification dans VCS, j'ai besoin de créer un fichier qui contient mes informations d'identification. Comment ferais-je cela dans EB? – Sidharth

+0

Et je ne suis pas sûr de ce que l'on entend par «snippets» – Sidharth

Répondre

2

Dans la console Elastic Beanstalk

Configuration> Configuration logicielle> Propriétés de l'environnement

Vous verrez un écran comme celui-ci

enter image description here

Vous pouvez remplir dans vos variables d'environnement ici. Cela signifie que vous n'avez pas besoin de configurer les variables d'environnement dans les fichiers .config et que vous n'avez pas besoin de valider le fichier .env sur VCS.

Les variables d'environnement entrées dans la console sont copiées dans toutes les boîtes EC2 que beanstalk élastique gère pour vous au sein de cette application/environnement. Le fichier .env de Laravel est conçu pour faciliter le développement et, en tant que tel, ne doit pas être utilisé en production. Tout ce qui est dans ce fichier doit être créé en tant que variables d'environnement réel et le fichier .env n'a pas besoin d'être présent. Le fichier .env (via phpdotenv) crée simplement des variables d'environnement lors de l'exécution, ce qui n'est pas nécessaire si les variables d'environnement existent déjà.

2

Ne mettez jamais les informations d'identification et autres informations secrètes dans VCS/Git.

Idéalement, vous placeriez vos secrets dans une sorte de "coffre-fort" auquel votre application EB accèderait au moment de l'exécution, ne stockant donc jamais les informations elles-mêmes. Cependant, parfois ce n'est pas possible/pratique.

Pour Elastic Beanstalk, vous pouvez effectuer les opérations suivantes:

  1. Créez votre fichier .config dans .ebextenions.
  2. Ajoutez votre paramètre pour votre secret/accréditif dans le fichier de configuration avec une valeur telle que «change me».
  3. Après avoir déployé votre application sur Elastic Beanstalk, modifiez les paramètres "Logiciel" de configuration de votre application et remplacez la valeur de votre paramètre de "change me" par une valeur appropriée.
+0

Toutes mes informations d'identification requises par Laravel pour fonctionner sont dans le fichier '.env' et chaque fois que j'utilise la commande' eb deploy', elle est supprimée car elle n'est pas sous VCS. et si je fais cela, je devrai entrer dans l'instance et mettre à jour mes informations d'identification à chaque fois. Puis-je mettre mes informations d'identification dans config.yml ou tout autre endroit pour automatiser ce processus avec chaque mise à jour. – Sidharth

+1

Non. Les données seront toujours dans Git, que vous voulez éviter. essayez de mettre vos informations dans les variables d'environnement contrôlées par EB. Ensuite, lorsque votre application démarre, transférez les informations à partir de là vers votre fichier '.env'. –

+0

Je suppose que les points @ ben-swinburne je peux enregistrer les informations d'identification dans la configuration Elastic Beanstalk à partir de la console. – Sidharth