Fermer

août 14, 2019

Utilisation de Chef Habitat pour migrer des applications Windows héritées


Présentation générale

Dans cet article, nous évoquerons l'utilisation de Chef Habitat pour la migration d'applications Windows héritées vers une plate-forme sécurisée moderne. La prise en charge prenant fin pour Windows Server 2008 et Microsoft SQL Server 2008, les applications Windows héritées devront être migrées vers de nouvelles plates-formes modernes sécurisées et compatibles. Par exemple, Windows Server 2016 et 2019 avec Microsoft SQL Server 2017 et versions ultérieures. Dans ce billet de blog, le troisième de notre série sur Chef Habitat, nous allons migrer une application ASP.NET 2.0 héritée de Windows Server 2008 et Microsoft SQL Server 2005 vers une machine physique ou virtuelle Windows Server 2016 et un conteneur Docker avec Windows Server 2016. Coeur. Windows Server 2016 Core est une version fractionnée de Windows Server sans interface graphique et est gérée comme vous le feriez sous Linux, à partir de la ligne de commande. Comme il n'y a pas d'interface graphique, la surface d'attaque est réduite et l'image du système d'exploitation est considérablement plus petite. Seul ce qui doit être chargé pour l'application sera installé. Chef dispose d'un référentiel Github avec une application ASP.NET 2.0 héritée du Codeplex Archive que nous allons installer. Cela montrera comment les applications ASP.NET 2.0 héritées peuvent être migrées vers des plateformes modernes et sécurisées.

Conditions préalables

Voir le précédent article de blog sous Conditions préalables et configuration du poste de travail pour l'installation des outils requis et la configuration de Chef. Habitat.

Les ordinateurs virtuels doivent exécuter Windows Server 2016 avec au moins 4 Go de RAM. Les conteneurs ont besoin de 2 Go de RAM pour chaque conteneur.

Remarque: Cette application ne fonctionne actuellement que sur un serveur Windows s'exécutant sur un matériel physique / virtuel, ou dans un conteneur, mais pas directement sur Windows 10. For Docker sous Windows, vous devez être en mode conteneur Windows. Docker doit être préinstallé sur les images AWS ou Azure et disposer d'au moins 50 Go d'espace disque.

Procédure courante pour Windows Server et les conteneurs

Vous devez maintenant télécharger le code du référentiel Github. Cela doit être à la racine du lecteur C: . L'installation de MS SQL Server peut échouer si le chemin d'accès est trop long. Entrer dans un studio local à c: utilisateurs administrateurs sqlwebadmin entraînera un chemin d'installation beaucoup plus long que l'entrée depuis c: sqlwebadmin . Cloner les référentiels et cd dans le répertoire de niveau supérieur:

 cd c: 
clone git https://github.com/habitat-sh/sqlwebadmin
cd sqlwebadmin 

Une origine locale par défaut aurait dû être configurée à partir de la section Prérequis et configuration du poste de travail du précédent article de blog .

L'outil INSTALL_HOOK doit maintenant être activé. Voir cet article de blog pour plus d'informations.

 $ env: HAB_FEAT_INSTALL_HOOK = $ true 

Ce plan tire parti de plusieurs dépendances qui utilisent cette fonctionnalité pour exécuter un hook install lorsque la dépendance est installée pour, par exemple, activer des fonctionnalités Windows et enregistrer un composant COM.

Installation sur un Windows Server 2016 (physique ou virtuel)

Entrez un Habitat Studio local et chargez core / sqlserver2005 :

 hab studio entrer
hab svc load core / sqlserver2005 

Le chargement prendra plusieurs minutes, car il télécharge et installe le runtime .Net 2.0 et installe SQL Server 2005. Pendant son chargement, construisez ce plan:

 build 

Il faut attendre que le hook postérieur à l'exécution de SQL Server soit terminé. Affichez la sortie du superviseur avec Get-SupervisorLog et attendez le message:

 sqlserver2005.default hook [post-run] :( HK): 1> 2> 3> 4> 5> 6> Configuration de l'utilisateur de l'application complete 

Now load / sqlwebadmin :

 hab svc load  / sqlwebadmin --bind database: sqlserver2005.default 

Dans le journal de supervision, attendez:

 sqlwebadmin.default (O): sqlwebadmin est lancé 

Le site Web devrait maintenant être accessible. Naviguez jusqu'à http: // localhost: 8099 / databases.aspx .

Exportation dans un conteneur Docker Windows Server 2016

Exportation du package core / sqlserver2005 vers une image docker :

 $ env: HAB_SQLSERVER2005 = "{` "svc_account ` ": ` "NT AUTHORITY \ SYSTEM ` "}"
hab pkg export docker --memory 2gb core / sqlserver2005 

La première ligne ci-dessus garantit que l'installation de SQL Server définit le compte svc_account sur le compte SYSTEM au lieu du compte par défaut NETWORK SERVICE compte recommandé dans un environnement conteneur.

Construisez notre paquet sqlwebadmin (assurez-vous que vous êtes toujours dans c: sqlwebadmin ):

 hab pkg build. [19659010] Exportez notre  sqlwebadmin  en une image de docker: 

 hab. Exportez un dockeur --memory 2gb  

Permet maintenant de regrouper ces deux conteneurs dans un anneau de supervision de l'habitat:

 $ sql = exécution du menu fixe -d --env HAB_LICENSE = accept-no-persist --memory 2gb core / sqlserver2005
$ ip = docker inspect -f '{{range .NetworkSettings.Networks}} {{. IPAddress}} {{end}}' $ sql
docker run -it --env HAB_LICENSE = accept-no-persist  / sqlwebadmin --bind base de données: sqlserver2005.default --peer $ ip 

Vous pouvez également utiliser Docker Compose avec le fourni, ainsi que le docker fourni compose.yml pour amener les conteneurs. Mettez à jour le fichier docker-compose.yml avec votre origine et les variables d'environnement ci-dessous pour chaque conteneur:

 version: '2.2'
prestations de service:
  sqlserver2005:
    image: core / sqlserver2005
    environnement:
      - HAB_LICENSE = accepter
  sqlwebadmin:
    image:  / sqlwebadmin
    environnement:
      - HAB_LICENSE = accepter
    ports:
      - 8099: 8099
    liens:
      - sqlserver2005
    dépend de:
      - sqlserver2005
    commande: --peer sqlserver2005 --bind database: sqlserver2005.default

réseaux:
  défaut:
    externe:
      nom: nat 
 docker-compose up 

Saisissez l'adresse IP du conteneur sqlwebadmin :

 docker inspect -f '{{plage .NetworkSettings.Networks}} {{. IPAddress} } {{fin}} '$ (docker ps -aql) 

Si vous accédez à http: // : 8099 / databases.aspx devrait faire apparaître la demande.

Perficient can help !

Dans ce billet de blog, nous avons présenté les étapes de l’utilisation de Chef Habitat pour migrer des applications Windows héritées vers une plate-forme sécurisée moderne utilisant Chef Habitat. Avec la fin de la prise en charge de Windows et SQL Server à partir de cette année, le moment est venu de commencer à migrer ces applications héritées avec Habitat . Cette approche élimine vos dépendances sur ces systèmes d'exploitation hérités et vous évite des contrats de support coûteux. Nous pouvons également vous aider à moderniser vos processus de développement d’applications en utilisant une approche indépendante du système d’exploitation qui rend votre entreprise plus innovante et résiliente pour l’avenir. Dites-nous si nous pouvons aider.






Source link