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 notresqlwebadmin
en une image de docker:hab. Exportez un dockeur --memory 2gbPermet 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 $ ipVous pouvez également utiliser Docker Compose avec le
fourni, ainsi que le docker fourni
compose.yml
pour amener les conteneurs. Mettez à jour le fichierdocker-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: natdocker-compose upSaisissez 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