IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Angular Discussion :

Déployer angular 6 sous ovh mutualisé


Sujet :

Angular

  1. #1
    Membre du Club
    Homme Profil pro
    .
    Inscrit en
    Avril 2016
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Avril 2016
    Messages : 108
    Points : 49
    Points
    49
    Par défaut Déployer angular 6 sous ovh mutualisé
    Bonjour tout le monde,

    Je ne suis pas du tout un pro de angular mais j'ai fait un petit projet afin de monter en compétence dessus, j'aimerai maintenant le mettre en prod sur un serveur ovh mais n'est aucune idée de la marche à suivre.
    Bien sur je ne suis pas arrivé directement ici sans faire quelques recherches, j'ai bien commencé par la doc évidemment :
    https://angular.io/guide/deployment

    Mais je préfère faire un petit post afin d'avoir des retours et quelques conseils au cas ou.

    Si j'ai bien compris, deux solutions :

    - ng build, qui n'est pas vraiment une mise en prod mais qui serait plus pour une version test.
    - ng build --prod, avec activation du mode prod et les optimisations.

    Dans tout les cas, cela me crée un dossier /dist, et ensuite je n'aurai qu'à "copier/coller" ce dossier dans le sous dossier correspondant dans mon ovh ?

    Au niveau du développement en local pour la suite, cela n’interfère en rien ? Et au niveau du versionning comment ça ce passe pour la prod ? Je suppose qu'a chaque nouvelle fonctionnalité je ne vais pas supprimer mes anciens dossier dist pour les régénérer et refaire tout le processus ?

    Merci du temps que vous accorderez pour me répondre.

    Cordialement,

  2. #2
    Expert éminent sénior
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 413
    Points : 19 609
    Points
    19 609
    Par défaut
    Citation Envoyé par Wilhem31 Voir le message
    Si j'ai bien compris, deux solutions :

    - ng build, qui n'est pas vraiment une mise en prod mais qui serait plus pour une version test.
    - ng build --prod, avec activation du mode prod et les optimisations.
    Ça c'est pour générer ton livrable. Derrière le CLI Angular c'est Webpack qui s'active. La différence entre le ng build sans argument et ng build --prod c'est que celui avec --prod est minifié (html, js et css). Le premier sert donc à tester le deuxième avec la possibilité de le debug (pas minifié donc lisible).

    Citation Envoyé par Wilhem31 Voir le message
    Dans tout les cas, cela me crée un dossier /dist, et ensuite je n'aurai qu'à "copier/coller" ce dossier dans le sous dossier correspondant dans mon ovh ?
    Le dossier /dist contient le livrable à déposer sur ton serveur web. Il ne faudra donc pas déposer le dossier dist mais son contenu. Ton index.html doit être à la racine du répertoire de ton serveur web.

    Citation Envoyé par Wilhem31 Voir le message
    Au niveau du développement en local pour la suite, cela n’interfère en rien ?
    C'est à dire ?

    Citation Envoyé par Wilhem31 Voir le message
    Et au niveau du versionning comment ça ce passe pour la prod ?
    Avant de déployer tu crées un tag pour identifier le commit qui servira à générer le livrable. Tu ne déploies en prod que sur la base d'un tag.

    Citation Envoyé par Wilhem31 Voir le message
    Je suppose qu'a chaque nouvelle fonctionnalité je ne vais pas supprimer mes anciens dossier dist pour les régénérer et refaire tout le processus ?
    Si, à chaque livraison tu dois effacer entièrement les fichiers du serveur et copier le nouveau livrable.

    La manière de copier le livrable de ta machine (ou de ton intégration continue) vers ton serveur web dépend complètement de l'hébergeur. Ils proposent quoi chez OVH ? Chez Heroku par exemple c'est un repo git. Donc chez Heroku tu copies ton livrable dans un clone local du serveur web, tu commit et ensuite tu push. A voir pour OVH, un simple FTP ou SCP via SSH fait le boulot tout pareil (simplement le livrable est pas versionné).

    Il va de soit qu'on parle d'un projet de test perso. Sur un vrai projet c'est beaucoup plus poussé que ça comme gestion et il n'y a pas direct la prod, il y a plusieurs environnements. Mettre en place toute cette infra et les outils avec c'est le taf des DevOps mais c'est une très bonne chose qu'en tant que dev tu mettes les mains dans le cambouis pour voir comment ça se passe !
    Un problème avec Git ? Essayez la FAQ, sinon posez votre question sur le forum.



    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

  3. #3
    Membre du Club
    Homme Profil pro
    .
    Inscrit en
    Avril 2016
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Avril 2016
    Messages : 108
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Merci pour la réponse ! Je vais pouvoir testé ça et revenir si problème

    Concernant Ovh, il y a aussi la possibilité de faire avec un repo git, par contre question bête mais comment ne copier que le dossier dist du repo sur le serveur ?

    Je pense faire un test via un simple FTP en effet pour voir ce que ça donne mais j'aimerai bien en savoir plus sur les différentes manières de faire et ce qui est mis en place par les "DevOps" comme tu me dis.

    Du coup, si tu as des ressources à me conseiller je suis preneur !

    Cordialement,

  4. #4
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 444
    Points : 4 563
    Points
    4 563
    Par défaut
    Citation Envoyé par Marco46 Voir le message
    Si, à chaque livraison tu dois effacer entièrement les fichiers du serveur et copier le nouveau livrable.
    Pas obligé, tu peux utiliser un simlink sur le dossier.

    Pour ma part pour le déploiement, j'ai un CI qui envoie un webhook sur un service de déploiement sur la machine serveur une fois le package terminé (un tar), le service le télécharge, untar, et change le simlink, la version est spécifiée dans le webhook.
    PXL le retro-gaming facile: Essayez-le

    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

  5. #5
    Membre du Club
    Homme Profil pro
    .
    Inscrit en
    Avril 2016
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Avril 2016
    Messages : 108
    Points : 49
    Points
    49
    Par défaut
    Pas obligé, tu peux utiliser un simlink sur le dossier.

    Pour ma part pour le déploiement, j'ai un CI qui envoie un webhook sur un service de déploiement sur la machine serveur une fois le package terminé (un tar), le service le télécharge, untar, et change le simlink, la version est spécifiée dans le webhook.
    Honnêtement au niveau ou j'en suis, c'est du chinois.

    Par contre pour en revenir au problème de base, j'ai donc fais la commande ng build qui m'a généré le livrable, donc création d'un dossier dist qui contient un dossier "NomDeMonProjet" avec les fichiers à l'intérieur, alors je ne sais pas si j'ai bien suivi la marche à suivre mais du coup j'ai mis ce dossier dans le dossier du serveur correspondant.

    Pour l'instant je n'ai que l'image de fond qui s'affiche et les erreurs en console :

    Échec du chargement pour l’élément <script> dont la source est « http://www.monprojet.fr/runtime.js ».
    Échec du chargement pour l’élément <script> dont la source est « http://www.monprojet.fr/polyfills.js ».
    Échec du chargement pour l’élément <script> dont la source est « http://www.monprojet.fr/styles.js ».
    Échec du chargement pour l’élément <script> dont la source est « http://www.monprojet.fr/scripts.js ».
    Échec du chargement pour l’élément <script> dont la source est « http://www.monprojet.fr/vendor.js ».
    Échec du chargement pour l’élément <script> dont la source est « http://www.monprojet.fr/main.js ».
    J'ai sortit apres coup le index.html du dossier pour le mettre à la racine. Toujours rien, avez vous une idée ? Il y a t'il une manip spécifique à faire?

    Cordialement,

  6. #6
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 444
    Points : 4 563
    Points
    4 563
    Par défaut
    En gros c'est utiliser un symlink (+/- un raccourci sous windows) pour pointer vers ton dossier, comme ça tu peux garder plusieurs versions de ton site.

    Pour les js, tu as bien ajouté leurs paths dans la partie "scripts" de ton angular-cli.json?
    PXL le retro-gaming facile: Essayez-le

    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

  7. #7
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Attention les gens, on parle d’hébergement mutualisé, les possibilités de jouer avec l’environnement (système de fichiers, etc.) sont limitées.
    @Wilhem31, ton offre inclut-elle une connexion SSH ? (Voir le guide OVH : Le SSH sur les hébergements web)

    Note : avec FTP, assure-toi que tu es en sécurisé (SFTP), c’est inclus dans quasiment toutes les offres OVH, voir Utilisation logiciel FileZilla avec votre hebergement, section « Verifiez l'activation de SFTP ».
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  8. #8
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    L'idéal serait en effet d'automatiser le build et la copie du livrable sur le serveur avec un script de déploiement (genre Ansible), mais tu peux le faire à la main pour... te faire la main

    Par contre, une question que personne me semble-t-il n'a abordé : qu'en est-il de la partie backend ? Ton application s'exécute-t-elle uniquement dans le navigateur ou y a-t-il une partie serveur, si oui quelle est la stack technique ?

    Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

    Pensez à consulter les FAQs et les cours et tutoriels.
    FAQ Linux - Cours et tutoriels Linux - FAQ PHP - Cours et tutoriels PHP
    Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.

    Je n'ai rien à voir avec la société www.ovh.com !

  9. #9
    Expert éminent sénior
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 413
    Points : 19 609
    Points
    19 609
    Par défaut
    Par contre, une question que personne me semble-t-il n'a abordé : qu'en est-il de la partie backend ? Ton application s'exécute-t-elle uniquement dans le navigateur ou y a-t-il une partie serveur, si oui quelle est la stack technique ?
    Son application Angular ne peut s'exécuter que sur le client ou alors tu fais référence à l'isomorphisme mais il n'en a pas parlé.

    Si tu fais références à une appli exposant les services REST consommés par son front c'est une autre appli, donc un autre repo avec un autre versionning, une autre pipeline etc ...
    Un problème avec Git ? Essayez la FAQ, sinon posez votre question sur le forum.



    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

  10. #10
    Membre du Club
    Homme Profil pro
    .
    Inscrit en
    Avril 2016
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Avril 2016
    Messages : 108
    Points : 49
    Points
    49
    Par défaut
    Bonjour tout le monde,

    Désolé pour le retard, pas eu le temps de revenir sur mon projet ces derniers temps !!

    Pour les js, tu as bien ajouté leurs paths dans la partie "scripts" de ton angular-cli.json?
    Je n'ai pas fait ça non, pour l'instant j'ai du mettre tout les fichiers à la racine de projet pour que ça marche, pas seulement le index.html.
    Je ne sais pas si c'est la bonne maniere, de plus bien que le site fonctionne je ne comprends pas pourquoi ma gestion des erreurs ne marche pas. ex : ma page 404 not found ne s'affiche pas.


    Concernant la partie back en effet c'est une API Rest faite sous symfony donc autre repo !

    @Wilhem31, ton offre inclut-elle une connexion SSH ?
    Oui j'ai une connexion ssh en effet !

    Merci de vos retours et bonne journée !

Discussions similaires

  1. 2 sites web Zend sur Ovh mutualisé
    Par rocket69 dans le forum Zend Framework
    Réponses: 2
    Dernier message: 02/01/2010, 10h51
  2. [MySQL] OVH mutualisé et sessions
    Par kubiak21 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/08/2009, 23h29
  3. Comment déployer un EJB sous netbeans ?
    Par tofke dans le forum NetBeans
    Réponses: 7
    Dernier message: 13/08/2007, 11h36
  4. Déployer un EAR sous WebSphere 6 avec ant
    Par jpernel dans le forum Websphere
    Réponses: 5
    Dernier message: 25/08/2006, 22h12
  5. [C++] Comment déployer exe compilée sous VS2005 ?
    Par ep31 dans le forum Framework .NET
    Réponses: 9
    Dernier message: 13/03/2006, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo