2017-10-07 5 views
0

Nous avons beaucoup de petits sites statiques que nous conservons. Nous gérons nos projets sur GitHub.Déploiement automatique de github pour sites Web statiques

Je suis actuellement à la recherche de moyens standard de déploiement automatique sur un serveur Linux avec des étapes manuelles minimales impliquées.

Je trouve actuellement la solution suivante:

  1. un git push déclenche une webhook dans github (une étiquette spécifique signale la prod serveur de mise à jour.)
  2. GitHub appelle le serveur de production via le webhook
  3. une petite application nodejs écoute sur le serveur de production pour le crochet et déclenche un git tirer

l'inconvénient que je vois, ce que je dois ouvrir & sécurise un port (impliquant les tables IP, le filtrage, etc.) sur un serveur de production.

Existe-t-il une autre façon de procéder? Je doute fortement qu'il n'y ait pas de solution légère prête à l'emploi (je ne veux pas installer un serveur CI comme Jenkins, Bamboo, etc.).

Merci Christian

+0

Vous pouvez écrire un "git pull" régulier (ou quelle que soit la commande pour voir s'il y a des changements) et s'il y a eu des changements, continuez votre déploiement. Windows et Linux permettent toutes les tâches de planification. Cela fonctionnera avec n'importe quel dépôt git, et pas seulement avec github. –

+0

Merci @ ThorbjørnRavnAndersen, c'est à coup sûr une solution simple, facile à installer, mais je ne veux pas provoquer de trafic unnesses tout le temps. – Chris

+0

'git pull' ne téléchargera vraiment rien s'il n'y a rien de nouveau à obtenir du serveur. Bien sûr, vous aurez besoin de garder le répertoire '.git' sur le serveur pour éviter d'avoir à récupérer tous les repo à chaque tirage. – mostafazh

Répondre

0

Je comprends que vous avez déjà votre serveur de production. Mais avez-vous déjà envisagé d'héberger ces sites Web statiques sur AWS S3? c'est très très bon marché et très fiable.

Je vous recommande également de jeter un coup d'œil à CircleCI qui peut déployer automatiquement et gratuitement toutes les modifications apportées à vos dépôts github sur S3.

Jetez un oeil à ces 2 billets de blog: here et here.

+1

merci mostafazh très intéressant, je vais y jeter un coup d'oeil! Im principalement à la recherche d'une solution, sans un tiers impliqué. – Chris

1

Si vous utilisez AWS ...

(Serverless) hébergement de votre site statique sur S3/CloudFront comme suggéré ne coûte pas cher, rapide (CDN) et vous n'avez pas à vous soucier de l'échelle toi même. Juste faire attention, vous devez télécharger votre site Web via AWS CLI en utilisant aws s3 synchronisation ou utilisez votre propre script de téléchargement qui assigne ou devine les types mime corrects des fichiers.

(serveur 24/7) répondre à votre question initiale, car certains nécessitent encore leur propre serveur. Je recommande d'utiliser CodePipeline avec l'intégration de GitHub, CodeBuild (si nécessaire) et CodeDeploy.

Résumé rapide du processus

  • Créer une nouvelle CodePipeline (1 $/mois après la période d'essai)
  • Créer une source GitHub dans CodePipeline et passer par le processus de connexion et la sélection des prises en pension .
  • (Facultatif) Transmettez l'artefact source à CodeBuild pour générer votre code (construction npm ..etc)
  • (Facultatif) Je recommande une étape d'approbation manuelle dans CodePipeline pour les déploiements de production. Vous pouvez le laisser entièrement automatisé pour votre environnement de test si vous le souhaitez.
  • Transmettez l'artefact incorporé à CodeDeploy à déployer sur votre instance EC2 ou votre groupe cible de mise à l'échelle automatique. Vous définissez votre processus de déploiement CodeDeploy en incluant le fichier appspec dans votre code source.
  • Configurer SNS notifications pour les échecs de déploiement au moins.