Comment configurer des déploiements automatisés sur vos serveurs avec Visual Studio et FTP

0
151

Visual Studio propose des options pour publier automatiquement votre version de version sur des serveurs distants via FTP. Cela peut être très utile si vous déployez souvent des modifications ou effectuez des tests dans un environnement distant. Nous vous montrerons comment le configurer et expliquerons son fonctionnement.

La publication via FTP

FTP est un ancien protocole généralement peu sécurisé, mais tant que votre serveur FTP prend en charge les extensions modernes de FTPS, qui utilisent le cryptage TLS, tout devrait bien se passer. Vous pouvez également chrooter vos utilisateurs FTP afin qu'ils ne puissent écrire que dans le répertoire cible.

Vous pouvez lire notre guide de configuration d'un serveur FTP pour en savoir plus. Vous devez vous assurer que le FTPS est configuré et que le FTP standard est désactivé.

CONNEXION : Comment configurer un serveur FTP Linux pour les transferts de fichiers rapides

Cependant, tous les types de builds ne sont pas pris en charge. Les bibliothèques de classes, par exemple, n'ont aucune option de publication. Les applications ASP.NET Core sont mieux prises en charge et disposent d'options de publication sur Azure et Docker.

Heureusement, pour les applications qui ne sont pas prises en charge, vous pouvez le connecter vous-même, car Visual Studio propose également des options pour exécuter des scripts PowerShell post-build. Ceux-ci s'exécuteront lors de la construction au lieu de la publication, mais vous pouvez simplement configurer un “publish” profil de build avec les paramètres de version copiés.

Publicité

Vous pouvez utiliser ces scripts post-build pour effectuer des transferts FTP ou SCP, ou même pour vous connecter à des services externes comme AWS S3 ou un registre Docker.

Configuration de Visual Studio

Sous build, vous devriez voir une option pour publier votre solution. Si vous ne voyez pas cela, vous devrez passer à l'option de sauvegarde consistant à utiliser des scripts de post-construction.

Vous devrez créer un nouveau profil de publication ou modifier celui par défaut. Sélectionnez Serveur FTPS, bien que vous puissiez publier sur Azure, Docker, un dossier local ou un déploiement Web IIS si ceux-ci fonctionnent mieux pour vous.

Entrez les détails de la connexion. Vous devrez lui donner une URL, un chemin vers l'endroit où il sera téléchargé et un nom d'utilisateur/mot de passe.

Ensuite, cliquez sur publier, et vous devriez le voir transférer dans la console une fois la génération terminée. Si ce n'est pas le cas, vous obtiendrez une erreur ou un fichier journal où vous pourrez le résoudre.

Configuration de la post-construction Scripts pour d'autres applications

Les options intégrées de Visual Studio sont excellentes, mais lorsqu'elles ne fonctionnent pas, vous devrez faire un peu de script. Cliquez avec le bouton droit sur votre projet et sélectionnez “Propriétés” :

Publicité
< p>Ensuite, sous “Événements de génération,” vous pouvez configurer une commande post-build. Notez qu'il s'agit de cmd, vous devrez donc appeler manuellement PowerShell, et cela est également limité au dossier de sortie de la construction, donc si vous stockez le script PowerShell à la racine de votre projet, vous vous devrez peut-être faire référence à quelques répertoires avec …….

Configurez-le pour qu'il s'exécute après la construction, et vous pouvez choisir d'exécuter le script toujours, à chaque fois qu'il&# 8217;s réussit, ou chaque fois que le build est mis à jour. Si vous redémarrez des serveurs ou quelque chose du genre, vous ne voudrez exécuter le script que lorsqu'il sera mis à jour. Sinon, sélectionnez “sur une compilation réussie” sauf si vous avez une raison d'exécuter le script lorsque la génération échoue.

PowerShell n'a pas de support intégré pour FTP. Vous avez deux options—utiliser PowerShell Remoting sur SSH pour transférer vers un serveur Linux, ou utiliser une bibliothèque PowerShell pour FTP.

$s = New-PSSession -HostName 123.123.123.123 -UserName ubuntu Copy-Item . example.txt /home/ubuntu -ToSession $s

Si vous devez utiliser FTP, WinSCP peut gérer le transfert assez facilement.

Add-Type -Path “WinSCPnet.dll” $sessionOptions = New-Object WinSCP .SessionOptions $sessionOptions.ParseUrl(“ftp://username:password@example.com/”) $session = New-Object WinSCP.Session $session.Open($sessionOptions) $session.PutFiles(“c:source *”, “/destination/”).Check() $session.Dispose()

Dans les deux cas, vous devrez vous assurer que votre script a des références correctes aux emplacements de fichiers appropriés. Si vous cliquez sur “Modifier la post-construction,” vous verrez une fenêtre répertoriant toutes les variables que vous pouvez transmettre à votre script.