Installer et configurer StarWind VirtualSAN for VMware ESXi

 

Présentation

 

Le stockage est un des éléments le plus important dans votre environnement virtuel.

Lorsque vous avez plusieurs ESXi et que vous souhaitez utiliser les fonctionnalités vSphere tel que vMotion, SDRS, DRS, etc, vous avez besoin du stockage partagé entre ces ESXi comme NAS et le SAN.

StarWind peut être une alternative à ces technologies en présentant les disques locaux sous forme d’un LUN iSCSI partagé entre les différents ESXi.

StarWind propose une replication synchrone du stockage d’un ESXi vers l’autre. En cas de crash d’un ESXi, toutes les données sont protégées.

 

 

Le gros benefice de cette technologie est l’absence de SAN ou NAS et donc une réelle économie.

Ci-dessous vous trouvez en quelques lignes un résumé de ce que propose StarWind.

 

Problem :

Storage remains the least virtualized element of the datacenter today. Running a dedicated storage server in a converged datacenter introduces multiple drawbacks:

  • Dedicated storage hardware is very expensive because it’s a dedicated server or more often a proprietary piece of equipment. Its upgrade and scalability options are very limited. Hardware storage also introduces significant OpEx increase over time: with every new hardware release vendors increase the service contract prices for legacy hardware support and even cease support for some hardware and announce its EOL (End Of Life) forcing customers to buy brand new hardware, even if the old one still worked fine for them.
  • Any dedicated storage solution adds fabric latency to all I/O operations. Even with high-performance 16/32 Gigabit Fiber Channel or 10/40 Gigabit Ethernet in place, every processed block makes a comparably big number of network hops until it reaches the actual disk.
  • Specially trained staff is required to manage hardware storage solutions. This does not play well with SMBs where there are no storage teams and at times the whole IT infrastructure is managed by one person.

 

Solution :

StarWind Virtual SAN is a pure software defined storage platform which eliminates the need for expensive dedicated storage hardware.StarWind Virtual SAN achieves this by installing the software on the same hardware as the hypervisor, be it Hyper-V, vSphere, or XenServer.VSAN leverages all benefits of the local storage like high performance and minimal latency. It is achieved by bonding all I/O to the local hypervisor node. This provides multiple benefits compared to a dedicated hardware solution:

  • Hypervisor reads from local storage only. High speed synchronization network links are used to replicate writes to the partner hypervisor nodes cache.
  • Cache is local, so the performance gain is much better compared to cache sitting behind slow network.
  • Hypervisor nodes don’t fight for LUN ownership, which increases performance and eliminates unnecessary iSCSI lock overhead.

 

 

 

Si vous souhaitez voir les principales differences entre StarWind et leurs compétiteurs, je vous invite à lire le PDF suivant :

https://www.starwindsoftware.com/whitepapers/differentiationNew.pdf

 

 

INSTALLATION

 

Nous allons dans cet article présenté l’installation de StarWind.

Première étape : Télécharger Starwind : https://www.starwindsoftware.com/starwind-virtual-san-free

Vérifier les pré-requis :

  • Minimum 2 ESXi avec du stockage local
  • Avoir une clé de licence permanente ou temporaire
  • Avoir installé une VM Windows Server sur chaque ESXi

Dans notre cas nous avons un cluster de deux ESXi, avec deux VMs Windows 2012R2 installée en local sur chacun des ESXi.

Sur chaque VM, vous avez besoin de mettre à jour les tools, avoir 2 NIC sur 2 réseaux différents afin de séparer les trafics de synchronisation et de heartbeat.

Dans notre cas, les VMs sont installées sur un petit disque local sur chaque ESXi et il reste un disque de 683 Go sur chaque ESXi. Nous créons donc un datastore VMFS sur chaque ESXi et nous ajoutons un disque sur chaque VM prenant l’intégralité du stockage de ce deuxième VMFS.

Note : Pour de meilleures performances, nous ajoutons ce disque sur un second contrôlleur SCSI VMware Paravirtual :

 

starwind01

 

 

 

 

 

 

 

 

 

 

 

 

 

Sur chaque VM, passez le disque en ligne et initializer le en GPT Table.

 

 

 

Créer la partition StarWind.

 

 

Sur chaque VM, copies ensuite le .exe télécharger au préalable et exécutez le :

 

 

Accepter les agreement :

 

 

Lisez les informations et sélectionnez le chemin d’installation :

 

 

Choisir un type d’installation :

Ici Full Installation.

 

 

Choisir le Start Menu Folder :

 

 

Laissez par défaut :

 

 

Copiez votre licence key :

 

 

Selectionnez Next :

 

starwind02

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Vérifiez les informations et installer :

 

 

Avant la fin de l’installation, le pop-up de configuration du SMI-S Agent apparaît. Cliquer sur No :

 

 

Votre installation de StarWind est terminée. Lancez le via Lauch StarWind management console :

 

 

 

 

CONFIGURATION

 

Lancer StarWind Management Console et choisir Yes pour définir le disque de stockage utilize par StarWind. F:\ dans mon cas.

 

 

Vous devez voir dans Servers, votre serveur locale :

 

 

Ajouter le second serveur StarWind2 via Add Server. Il correspond à la deuxième VM :

 

 

Sur le premier serveur, faites Add Device. Choisir le nom et la capacité de votre premier stockage :

 

 

Cliquez sur Create :

 

 

L’image disque est créée :

 

 

A ce point vous devez avoir l’image disque sur le premier serveur créée :

 

 

Vous allez maintenant devoir configure la replication entre les deux VMs. Pour cela, sélectionnez l’imagefile1 et cliquez sur Replication Manager :

 

 

Sélectionnez Synchronous Replication et renseignez l’ip ou le fqdn du second serveur (deuxième VM dans notre cas) :

 

 

Cliquez sur Create new Partner Device :

 

 

A ce point vous devez vois le chemin du header file sur le disque de destination ainsi que la target name :

 

 

Cliquez sur Change Network Settings :

 

 

Ici vous devez choisir un réseau pour la synchronisation et un réseau pour le heartbeat. Veillez à bien les séparer :

 

starwind03

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Lancez la création du replica :

 

 

A ce point vous avez la nouvelle target partagée créée nommé HAImage1. C’est cette target qui sera utilisé par les ESXi :

 

 

La synchronisation commence :

 

 

Vérifiez sur vos deux serveurs si vous avez les fichiers dans vos disques StarWind :

 

et

 

Désormais, vous pouvez ajouter le stockage partagé sur votre ESXi.

Sur chaque ESXi, ajouter un software iSCSI :

 

 

Editez les propriétés du software iSCSI et ajouter l’ip de votre première VM. Vérifiez si le iqn découvert est le même que celui de HAImage1 :

 

 

Après un rescan, Vous devez voir votre LUN StarWind de 200 Go :

 

 

Creez un nouveau vmfs :

 

starwind04

 

 

 

C’est magique, vous avez un stockage partagé sur vos ESXi composé des disques locaux des ESXi. Désormais vous pouvez utiliser les fonctionnalités vSphere comme vous le voulez.

 

 

 

Share

Installation et configuration VM Turbo

 

Dans cet article, nous allons déployer et installer VM Turbo Operation Manager et présenter les fonctions du logiciel. Cette appliance va analyser votre environnement et vous aider dans les prises de décisions telles que le placement de vos VMs, le sizing, la gestion de capacité et cela sans vous inonder d’alertes.

VM Turbo est compatible avec les environnements vCenter, Hyper-V, XenServer et RHEV .

VM Turbo va également pouvoir simuler des plans d’actions et vous indiquer de quelle manière le faire.

Par exemple :

  • une consolidation de deux clusters en un seul
  • un disaster recovery
  • la panne d’un ESXi

 

Une petite vidéo d’introduction : https://www.youtube.com/watch?v=pSPkfM3jkAQ

 

vmturbo01

 

Pré-requis environnement VMware :

  • L’appliance est accessible depuis n’importe quel navigateur qui supporte adobe flash
  • Avoir des ESXi de 3.5 à 6.x

 

Dans un premier temps, récupérer les sources d’installation ici : http://vmturbo.com/downloads/operations-manager-30-day-trial/

 

Une fois l’ova téléchargée, déployez là dans votre vCenter :

 

vmturbo02

 

Avant de la démarrer, on va faire un petit tour de la configuration par défaut de l’ova qui est de :

  • 16 Go de mémoire
  • 4 vCPU
  • Un disque de 80 Go

 

Avec cette configuration, VM Turbo annonce pouvoir analyser jusqu’à 10000 VMs et garder 2 ans de données.

Démarrez ensuite votre VM :

 

vmturbo03

 

Pour information, le login et le mot de passe par défaut sont ipsetup. Vous arrivez sur l’écran ci-dessous :

 

vmturbo04

 

Loguez-vous avec les identifiants fournis ci-dessus. Renseignez les informations réseaux de votre appliance :

 

vmturbo05

 

Si vous avez besoin d’un proxy, renseignez-le :

 

vmturbo06

 

Redémarrez ensuite votre VM pour la prise en compte des changements.

Au redémarrage vous devez voir l’IP en URL. Allez sur l’URL indiquée et loguez-vous avec le login et mot de passe « administrator » :

 

vmturbo07

 

Renseignez votre licence ou choisir trial pour un test :

 

 

vmturbo08

 

Renseignez la licence et cliquez sur Save :

 

vmturbo09

 

Vous allez ensuite ajouter votre vCenter en Target. Pour cela, cliquez sur Add puis sélectionnez « Hypervisor » puis « vCenter ». Renseignez les informations et cliquez sur Save :

 

vmturbo10

 

Vous pouvez configurer le relai smtp et l’adresse mail de destination puis cliquez sur Finish.

Vous pouvez apercevoir dans Dashboard qu’il n’y a pas ou très peu d’informations remontées :

 

vmturbo11

 

Laissez VM Turbo récupérer les informations et analyser votre environnement pendant 2-3 jours avant de pouvoir vraiment utiliser l’outil.

Après plusieurs jours d’analyse, VM Turbo remonte des informations très pertinentes sur votre environnement :

 

vmturbo12

 

Dans notre cas, c’est un lab, donc il y a beaucoup moins de problème que dans une infrastructure conséquente. Cependant, VM Turbo nous conseillait de migrer des VMs afin de régler des problèmes de congestion au niveau datastore et également au niveau mémoire sur un ESXi.

Si vous cliquez sur le symbole vmturbo13 en haut à droite, vous verrez les alertes qui sont à l’origine des préconisations que VM Turbo vous donne :

 

vmturbo14

 

Les 3 dashboards de la partie inférieure permettent également d’avoir une vue globale de la santé de votre infrastructure. Prenez le dashboard Health, qui permet selon les catégories d’avoir un aperçu très rapide d’un problème sur l’infrastructure :

 

 VM :

vmturbo15

 

Stockage :

vmturbo16

 

Host :

vmturbo17

 

Si on analyse bien, les problèmes remontés dans Health sont tout simplement les mêmes que dans alertes. Si vous suivez les recommandations de VM Turbo, vous devriez régler ces problèmes.

Depuis les autres dashboard, VM Turbo va vour indiquer par ordre décroissant les VM, hosts, etc qui sont le plus utilisés et dans Optimal Operating Zone, VM Turbo, donne un aperçu des consommations actuelles et un aperçu de ce vers quoi il vous recommande d’aller :

 

vmturbo18

 

Sur le graphique Optimal Operation Zone « Host », on voit très bien que les ESXi n’ont pas du tout la même utilisation. VM Turbo, par ses préconisations, va essayer au maximum d’équilibrer cette utilisation.

Pour appliquer une recommandation VM Turbo, cochez les lignes et cliquez sur Apply :

 

vmturbo19

 

Vous verrez le statut des tâches côté VM Turbo :

 

vmturbo20

 

Côté vSphère :

 

vmturbo21

 

Après application des recommandations, le graphique Health est mis à jour :

 

vmturbo22

 

Après avoir exécuté les recommandations DRS et  StorageDRS côté VMware, VM Turbo nous indique qu’il y a encore des congestions côté Datastore. Vous pouvez avoir des actions manuelles à effectuer pour régler les problèmes.
Suite de la configuration de VM Turbo à venir …

 

Share

SexiLog – VMware Logs Analysis

 

 sexilog21

 

Sortie hier, cette appliance était très attendue. Nous avons donc téléchargé l’ova de SexiLog. Ce logiciel a été développé par nos compères blogger de chez hypervisor.fr et vmdude.fr. Cette appliance est basé sur ELK stack (ElasticSearch, Logstash et Kibana) :

 

sexilog01

 

Vous pouvez l’utiliser pour analyser les logs de vos ESXi, Windows, de votre vCenter et de Veeam.

Voici les ports à utiliser pour chacun de ces éléments :

  • UDP/514 pour ESXi
  • UDP/162 pour les traps SNMP
  • UDP/1514 pour les logs vCenter
  • UDP/1515 pour les eventlog Windows

 

Par défaut, l’ova est configuré pour recevoir 1500 messages par secondes, ce qui correspond à un environnement de 20 ESXi. SI vous avez besoins d’augmenter cela vous pouvez jouer sur la mémoire/CPU et la taille des disques de la VM. 

 

Installation de l’OVA

 

Déployez l’ova dans votre infrastructure et lancez la VM. Au boot connectez-vous avec le login root et le mot de passe Sex !Log.

Attention le clavier est en qwerty US.

 

sexilog02

 

En premier lieu, si vous souhaitez passer en AZERTY, dans le menu tapez 6 et validez le changement en fr :

 

sexilog03

 

SexiLog est préconfiguré pour récupérer une IP en DHCP. Si vous avez un DHCP de configuré, vous devez récupérer une IP automatiquement. Si vous souhaitez utiliser une IP statique, dans le menu utilisez l’option 5. Saisissez n pour la configuration en DHCP et renseignez ensuite les informations réseaux ip, netmask, gateway, dns et hostname. Vous ne devez renseigner qu’un seul DNS :

 

sexilog04

 

Pour prendre en compte les changements l’appliance va rebooter :

 

sexilog05

 

Au reboot, tester la connectivité de votre appliance. Vous devez également voir les services elasticsearch, logstash, riemann et node-app en RUNNING.

 

sexilog06

 

L’option 4 du menu permet de redémarrer les services de SexiLog, à savoir elasticsearch, logstash, riemann et node-app. L’option 5 permet de changer vos paramètres réseaux, l’option 6 changer de type de clavier et l’option 7 de configurer le service Riemann.

Nous allons ici, configurer le service Riemann. Saisissez 7 et y :

 

sexilog07

 

Renseignez l’adresse de votre serveur SMTP, l’adresse mail utilisé pour envoyer les mails et l’adresse mail qui les recevra. Validez les informations :

 

sexilog08

 

Redirigez vos logs ESXI vers l’appliance SexiLog 

 

Pour cela, depuis les advanced settings de vos ESXi, renseignez dans Syslog, global, Syslog.global.loghost la valeur suivante : udp://ipsexilog :514

 

sexilog09

 

Vérifiez que le firewall de vos ESXi a le port 514 ouvert :

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2003322

 

Maintenant que votre appliance est configuré, connectez-vous via un navigateur web sur l’url http://ipsexilog

Vous arrivez sur la page suivante :

 

sexilog10

 

Vous devez voir les informations remontées par vos ESXi.

Dans « QUERY » vous pouvez tapez les mots clés de vos recherches. Par exemple un ESXi en particulier :

 

sexilog11

 

Une tâche :

 

sexilog12

 

Vous pouvez également effectuez plusieurs recherches en simultanées en cliquant sur le + dans la barre de recherche. Vous pouvez également en cliquant sur le rond de couleur changer la couleur pour chaque recherche :

 

sexilog13

 

On voit ici les alertes remontées en rouge et les logs de mon ESXi en jaune.

Une autre recherche sur 4 ESXi différents :

 

sexilog14

 

Dans All Events, vous allez retrouver tous les évènements si vous n’avez pas fait de recherche particulière ou les évènements correspondant à vos recherches :

 

sexilog15

 

Dans All Events, cliquez sur la flêche -> (show field list) et vous pouvez voir la partie Fields qui correspond à des types d’évènements. Là encore très intéressant, si vous souhaitez faire une recherche sur un esxi en particulier vous pouvez dans Query renseigner le nom de l’esxi et dans Fields sélectionnez la catégorie qui vous intéresse, par exemple esx_problem ou alert qui peuvent vous remonter tous les problèmes et alertes pour la recherche effectuée :

 

sexilog16

 

Juste en dessous de Fields, il y a All / Current. Selon la recherche que vous effectuez et les logs retournés, dans Current vous trouverez les catégories trouvées dans les logs retournés. Par exemple sur la recherche d’un ESXi, je vois ici que j’ai que 40 catégories trouvées dans les logs. Si vous cliquez sur Current, la liste des catégories trouvées s’affiche, vous pouvez ensuite sélectionner la catégorie que vous voulez :

 

sexilog17

 

Lorsque vous avez un log dans la liste, cliquez dessus pour avoir plus d’information :

 

sexilog18

 

Vous pouvez bien entendu créer vos propres dashboard. Celui par défaut se nomme SexiHome. Il y en a plusieurs prédéfinis se trouvant en haut à droite dans « Load » :

 

sexilog19

 

Chaque Dashboard à une fonction bien précise, on vous laissera les découvrir par vous-même, voir créer les votre. Par exemple le vMotionDowntime, FailedTo ou encore le dashboard Kommandantur remontant les alerts :

 

sexilog20

 

Récupérer les logs de Veeam

 

Pour récupérer les logs des Jobs Veeam, sur votre serveur Windows, activez la fonctionnalité SNMP :

 

 sexilog24

 

 

Configurez le service pour utiliser la communauté public :

 

sexilog25

 

sexilog26

 

Allez dans les Options de Veeam. Pour cela, dans le menu en haut à gauche, sélectionnez Options :

 

sexilog27

 

Allez dans l’onglet SNMP Settings et renseignez dans Receiver, l’ip ou FQDN de votre serveur SexiLog, le port 162 et la communauté Public :

 

sexilog28

 

Ensuite, pour chaque Job, éditez vos jobs et allez dans le menu storage :

 

sexilog29

 

Cliquez sur l’onglet Advanced et allez dans l’onglet Navigation et cochez « Send SNMP notifications for this job » :

 

sexilog30

 

Lancez vos jobs et depuis l’interface web de votre appliance SexiLog, chargez le dashboard VeeamBR :

 

sexilog31

 

SexiLog vous aidera à voir la progression de vos jobs dans le temps. Cliquez sur Query et remplacez les champs « VEEAM_backupJobName.raw.job0x » par « snmptrapd  AND « NomDuJob » le nom du ou des jobs à surveiller :

 

sexilog32 

 

Dans Fields, sélectionnez les catégories correspondant à Veeam afin de pouvoir mieux analyser les résultats de vos Jobs :

 

sexilog33

 

Vous pouvez ensuite d’un coup d’œil voir ce qui va ou non :

 

sexilog34

 

Pour sauvegarder votre dashboard personnaliser, en haut à droite cliquez sur Save :

 

sexilog35

 

Vous le retrouver dans la liste de vos dashboards :

 

sexilog36

 

 

Troubleshooting Veeam / SexiLog :

Nous avons rencontré un problème lors de la récupération des traps SNMP du serveur Veeam par SexiLog. La trap était bien reçu mais mal interprétée et le tag associé à la trap était “_grokparsefailure” au lieu d’un tag “VEEAM”.  Par conséquent, les catégories Veeam n’était pas disponible dans Fields.

Après troubleshoot, on a trouvé dans les logs de /var/log/logstash/logstash.err, le message suivant :

/opt/logstash/vendor/bundle/jruby/1.9/gems/jls-grok-0.10.12/lib/grok-pure.rb:144 warning: character class has ‘-‘ without escape

Le caractère “-“ nous a mis la puce à l’oreille puisque le FQDN de notre serveur veeam était veeam-srv. Nous l’avons renommé en veeamsrv et désormais tout fonctionne très bien.

Il faut donc éviter les ‘-‘ dans le FQDN de votre serveur Veeam, cela peut poser problème.

 

 

Récupérer les logs de votre appliance vCenter

 

Afin de récupérer les logs de votre appliance VCSA, connectez-vous sur votre VCSA en ssh ou en shell puis allez dans /etc/syslog-ng :

 

sexilog42

 

Editez le fichier syslog-ng.conf et ajoutez les lignes ci-dessous à la fin du fichier :

 

source vpxd {

file(“/var/log/vmware/vpx/vpxd.log” follow_freq(1) flags(no-parse));

file(“/var/log/vmware/vpx/vpxd-alert.log” follow_freq(1) flags(no-parse));

file(“/var/log/vmware/vpx/vws.log” follow_freq(1) flags(no-parse));

file(“/var/log/vmware/vpx/vmware-vpxd.log” follow_freq(1) flags(no-parse));

file(“/var/log/vmware/vpx/inventoryservice/ds.log” follow_freq(1) flags(no-parse));

};

destination loginsight { udp(“10.161.129.174”); };

log { source(vpxd); destination(loginsight); };

 

 

sexilog43

 

 

Redémarrer le service syslog :

 

sexilog44

 

Depuis votre appliance SexiLog, faites une recherche sur le FQDN ou l’ip de votre VCSA, vous devriez voir arrivez les logs :

 

sexilog45

 

 

Récupérer les logs de votre vCenter Windows

 

Afin de récupérer les logs de votre vCenter windows, installer nxlog sur votre serveur.

Téléchargeable ici : http://nxlog.co/products/nxlog-community-edition/download

Installer le sur votre serveur :

 

sexilog37

 

Récupérer ensuite le fichier de configuration ici : https://github.com/sexilog/sexilog/blob/master/nxlog/nxlog.conf

 

Remplacer le fichier C:\Program Files (x86)\nxlog\conf\nxlog.conf par celui téléchargé et éditez la ligne xx « 127.0.0.1 » par l’ip ou le FQDN de votre appliance SexiLog :

 

sexilog38

 

Démarrer ensuite le service nxlog :

 

sexilog39

 

Depuis votre appliance SexiLog, faites une recherche sur l’ip ou le FQDN de votre vCenter. Vous devriez voir les logs arrivez :

 

sexilog40

 

Si vous souhaitez changer la vue de votre graphe, cliquez sur le View à gauche de votre graphe et décochez Bars et sélectionnez lines :

 

sexilog41

 

Ici encore, même topo que pour les ESXi vous pouvez effectuer des recherches par mots clés et aussi utiliser les catégories dans Fields.

 

 

 

Cet article n’est pas encore terminé, nous l’alimenterons au fur et à mesure que nous utiliserons l’outil. Cependant, vous l’aurez compris, après une première approche on est vraiment séduit par ce SexiLog très facile d’utilisation et fournit avec des dashboards très utiles et qui de plus est gratuit et de fabrication française.

 

On remercie et félicite Raphael Schitz et Frédéric Martin pour leur superbe travail.

 

 

Share

Automatiser l’installation SQL 2008/2012 et Service Pack

 

 

Afin de lancer une installation automatique et silencieuse d’une base SQL sur vos serveurs windows, vous pouvez utiliser des scripts unattended. Cet article est lié au déploiement automatiser des VMs windows. (voir l’article)

Dans notre cas, nous souhaitions pouvoir installer de façon automatiser une base SQL 2008  avec les services pack ou une base SQL 2012 avec les services pack et ce juste après l’application du sysprep.

Pour information, nous avons intégrer dans nos templates, les scripts et sources d’installation dans C:\Install-SQL.

Dans notre Sysprep, nous avons fait exécuter au premier boot un script effectuant plusieurs configuration (voir l’article) et au sein duquel nous avons posé la question à l’utilisateur s’il voulait installer une base de données ou non et si oui quelle version :

echo “r"
Write-host "######################### INSTALLER BASE DE DONNEES ##############################" -foregroundcolor "Yellow"
echo "
r”

Do {
$BDDOK = Read-Host ‘Base de données à installer ? (Répondre “y” ou “n”)’
$BDDOK = $BDDOK.ToLowerInvariant()
} While (($BDDOK -ne “y”) -and ($BDDOK -ne “n”))

If ($BDDOK -eq “y”) {
Do {
$version = Read-Host ‘2008 ou 2012 ? (Répondre “2008” ou “2012”)’
} While (($version -ne “2008”) -and ($version -ne “2012”))

Do {
$version2 = Read-Host ‘standard ou enterprise? (Répondre “s” ou “e”)’
$version2 = $version2.ToLowerInvariant()
} While (($version2 -ne “s”) -and ($version2 -ne “e”))
If ($version -eq “2008”){
Remove-Item -Recurse -Force “C:\Install-SQL\2012”
If ($version2 -eq “s”){
regedit.exe /s “C:\Install-SQL\2008\Standard\sql2008standard.reg”
}Else {
regedit.exe /s “C:\Install-SQL\2008\Enterprise\sql2008enterprise.reg”
}
}Else {
Remove-Item -Recurse -Force “C:\Install-SQL\2008”
If ($version2 -eq “s”){
regedit.exe /s “C:\Install-SQL\2012\Standard\sql2012standard.reg”
}Else {
regedit.exe /s “C:\Install-SQL\2012\Enterprise\sql2012enterprise.reg”
}
}
}Else{
Remove-Item -Recurse -Force “C:\Install-SQL”
}

 

template01

 

Selon les choix de l’utilisateur, une clé de registre est modifiée pour qu’au reboot le script d’installation de la base de données soit exécuté. Voici le contenu du .reg qui permet au prochain reboot d’exécuter le script InstallSQL2008.bat :

 

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]
“SQL”=”C:\\Install-SQL\\2008\\Enterprise\\InstallSQL2008.bat”

 

Voici le script exécuté au boot :

 

Exécution du script permettant de récupérer les variables

powershell -command “& {Set-ExecutionPolicy Unrestricted}”
powershell -file “C:\Install-SQL\2008\scriptSQL.ps1”
powershell -command “& {Set-ExecutionPolicy Restricted}”
@ECHO off

Installation de la base de données via les sources avec en paramètre le fichier ini modifié

echo Installation de SQL Server 2008 R2 en cours … Ne pas fermer cette fenetre
“C:\Install-SQL\2008\Enterprise\SQL-2008-ENTERPRISE\setup.exe” /ConfigurationFile=”C:\Install-SQL\2008\ConfigurationFile2008v2.ini”

Installation des 3 services pack

echo Installation de SQL Server 2008 R2 SP1 en cours … Ne pas fermer cette fenetre
“C:\Install-SQL\2008\SP1\SQLServer2008R2SP1-KB2528583-x64-ENU.exe /allinstances /quiet”

echo Installation de SQL Server 2008 R2 SP2 en cours … Ne pas fermer cette fenetre
“C:\Install-SQL\2008\SP2\SQLServer2008R2SP2-KB2630458-x64-ENU.exe /allinstances /quiet”

echo Installation de SQL Server 2008 R2 SP3 en cours … Ne pas fermer cette fenetre
“C:\Install-SQL\2008\SP3\SQLServer2008R2SP3-KB2979597-x64-ENU.exe /allinstances /quiet”

echo Installation terminee. Merci de tester le bon fonctionnement de SQL Server

Suppression des scripts et sources d’installation

powershell -command “&{Remove-Item -Recurse -Force “C:\Install-SQL”}”

 

 template06

 

Ce script fait appel à un fichier powershell qui récupère le nom du serveur dans la variable serveur et qui demande à l’utilisateur le nom de l’instance et le mot de passe du compte sa :

 

Récupération des variables

$serveur = Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty name
$instance = Read-Host “Nom de l’instance ?”
$mdpinstance = Read-Host “Mot de passe de l’instance ? (Code Appli + nom instance en minuscule)”

Modification des champs dans le fichier .ini

get-content “C:\Install-SQL\2008\ConfigurationFile2008.ini” | foreach-object {$_ -replace “NOMSERVEUR”, $serveur} | set-content “C:\Install-SQL\2008\tempconf.ini”
get-content “C:\Install-SQL\2008\tempconf.ini” | foreach-object {$_ -replace “NOMINSTANCE”, $instance} | set-content “C:\Install-SQL\2008\tempconf2.ini”
get-content “C:\Install-SQL\2008\tempconf2.ini” | foreach-object {$_ -replace “MDPINSTANCE”, $mdpinstance} | set-content “C:\Install-SQL\2008\ConfigurationFile2008v2.ini”

Suppression des fichiers temporaires

Remove-Item “C:\Install-SQL\2008\ConfigurationFile2008.ini”
Remove-Item “C:\Install-SQL\2008\tempconf.ini”
Remove-Item “C:\Install-SQL\2008\tempconf2.ini”

 

template02

 

Ce fichier PS1 va modifier dans le fichier .ini les champs NOMSERVEUR, NOMINSTANCE et MDPINSTANCE. Biensûr, vous pouvez rentrer ces valeurs en dur dans le fichier .ini avant de lancer votre script et retirer cette partie.

Vous pouvez également au lieu de copier les sources d’installation en local, spécifier dans votre script le lecteur CD et monter l’ISO sur la VM. Il y a plein de possibilités, a vous de trouver celle qui vous arrange le plus.

A la fin de l’installation, vérifiez que les services SQL sont bien démarrés et que votre instance nommée est bien configurée :

template07

Veuillez trouver ci-dessous le fichier de configuration .ini pour l’installation silencieuse de la base SQL 2008 R2 : (En rouge les champs modifié par le script) -> ConfigurationFile2008

 

;SQLSERVER2008 Configuration File
[SQLSERVER2008]

; Specify the Instance ID for the SQL Server features you have specified. SQL Server directory structure, registry structure, and service names will reflect the instance ID of the SQL Server instance.

INSTANCEID=”NOMINSTANCE

; Specifies a Setup work flow, like INSTALL, UNINSTALL, or UPGRADE. This is a required parameter.

ACTION=”Install”

; Specifies features to install, uninstall, or upgrade. The list of top-level features include SQL, AS, RS, IS, and Tools. The SQL feature will install the database engine, replication, and full-text. The Tools feature will install Management Tools, Books online, Business Intelligence Development Studio, and other shared components.

FEATURES=SQLENGINE,REPLICATION,FULLTEXT,AS,BIDS,CONN,IS,BC,SDK,BOL,SSMS,ADV_SSMS,SNAC_SDK,OCS

; Displays the command line parameters usage

HELP=”False”

; Specifies that the detailed Setup log should be piped to the console.

INDICATEPROGRESS=”False”

; Setup will not display any user interface.

QUIET=”True”

; Setup will display progress only without any user interaction.

QUIETSIMPLE=”False”

; Specifies that Setup should install into WOW64. This command line argument is not supported on an IA64 or a 32-bit system.

X86=”False”

; Detailed help for command line argument ENU has not been defined yet.

ENU=”True”

; Specify if errors can be reported to Microsoft to improve future SQL Server releases. Specify 1 or True to enable and 0 or False to disable this feature.

ERRORREPORTING=”False”

; Specify the root installation directory for native shared components.

INSTALLSHAREDDIR=”D:\Microsoft SQL Server”

; Specify the root installation directory for the WOW64 shared components.

INSTALLSHAREDWOWDIR=”D:\Microsoft SQL Server (x86)”

; Specify the installation directory.

INSTANCEDIR=”F:\SQLDATA\NOMINSTANCE

; Specify that SQL Server feature usage data can be collected and sent to Microsoft. Specify 1 or True to enable and 0 or False to disable this feature.

SQMREPORTING=”False”

; Specify a default or named instance. MSSQLSERVER is the default instance for non-Express editions and SQLExpress for Express editions. This parameter is required when installing the SQL Server Database Engine (SQL), Analysis Services (AS), or Reporting Services (RS).

INSTANCENAME=”NOMINSTANCE

; Agent account name

AGTSVCACCOUNT=”NT AUTHORITY\SYSTEM”

; Auto-start service after installation.

AGTSVCSTARTUPTYPE=”Manual”

; Startup type for Integration Services.

ISSVCSTARTUPTYPE=”Automatic”

; Account for Integration Services: Domain\User or system account.

ISSVCACCOUNT=”NT AUTHORITY\NetworkService”

; The name of the account that the Analysis Services service runs under.

ASSVCACCOUNT=”NT AUTHORITY\SYSTEM”

; Controls the service startup type setting after the service has been created.

ASSVCSTARTUPTYPE=”Automatic”

; The collation to be used by Analysis Services.

ASCOLLATION=”Latin1_General_CI_AS”

; The location for the Analysis Services data files.

ASDATADIR=”F:\SQLDATA\NOMINSTANCE\MSAS10_50.NOMINSTANCE\OLAP\Data”

; The location for the Analysis Services log files.

ASLOGDIR=”F:\SQLDATA\NOMINSTANCE\MSAS10_50.NOMINSTANCE\OLAP\Log”

; The location for the Analysis Services backup files.

ASBACKUPDIR=”F:\SQLDATA\NOMINSTANCE\MSAS10_50.NOMINSTANCE\OLAP\Backup”

; The location for the Analysis Services temporary files.

ASTEMPDIR=”F:\SQLDATA\NOMINSTANCE\MSAS10_50.NOMINSTANCE\OLAP\Temp”

; The location for the Analysis Services configuration files.

ASCONFIGDIR=”F:\SQLDATA\NOMINSTANCE\MSAS10_50.NOMINSTANCE\OLAP\Config”

; Specifies whether or not the MSOLAP provider is allowed to run in process.

ASPROVIDERMSOLAP=”1″

; Specifies the list of administrator accounts that need to be provisioned.

ASSYSADMINACCOUNTS=”NOMSERVEUR\Administrator”

; A port number used to connect to the SharePoint Central Administration web application.

FARMADMINPORT=”0″

; Startup type for the SQL Server service.

SQLSVCSTARTUPTYPE=”Automatic”

; Level to enable FILESTREAM feature at (0, 1, 2 or 3).

FILESTREAMLEVEL=”0″

; Set to “1” to enable RANU for SQL Server Express.

ENABLERANU=”False”

; Specifies a Windows collation or an SQL collation to use for the Database Engine.

SQLCOLLATION=”SQL_Latin1_General_CP1_CI_AS”

; Account for SQL Server service: Domain\User or system account.

SQLSVCACCOUNT=”NT AUTHORITY\SYSTEM”

; Windows account(s) to provision as SQL Server system administrators.

SQLSYSADMINACCOUNTS=”NOMSERVEUR\Administrator”

; The default is Windows Authentication. Use “SQL” for Mixed Mode Authentication.

SECURITYMODE=”SQL”

; Provision current user as a Database Engine system administrator for SQL Server 2008 R2 Express.

ADDCURRENTUSERASSQLADMIN=”False”

; Specify 0 to disable or 1 to enable the TCP/IP protocol.

TCPENABLED=”1″

; Specify 0 to disable or 1 to enable the Named Pipes protocol.

NPENABLED=”0″

; Startup type for Browser Service.

BROWSERSVCSTARTUPTYPE=”Automatic”

; Specifies how the startup mode of the report server NT service. When
; Manual – Service startup is manual mode (default).
; Automatic – Service startup is automatic mode.
; Disabled – Service is disabled

RSSVCSTARTUPTYPE=”Automatic”

; Specifies which mode report server is installed in.
; Default value: “FilesOnly”

RSINSTALLMODE=”FilesOnlyMode”

SAPWD=MDPINSTANCE

; Add description of input argument FTSVCACCOUNT

FTSVCACCOUNT=”NT AUTHORITY\LOCAL SERVICE”

RSINSTALLMODE=”FilesOnlyMode”
IACCEPTSQLSERVERLICENSETERMS=”True”
QUIET=”True”

 

Veuillez trouver ci-dessous le fichier de configuration .ini pour l’installation silencieuse de la base SQL 2012 R2 : (En rouge les champs modifié par le script) -> ConfigurationFile2012

 

;SQL Server 2012 Configuration File
[OPTIONS]

; Specifies a Setup work flow, like INSTALL, UNINSTALL, or UPGRADE. This is a required parameter.

ACTION=”Install”

; Detailed help for command line argument ENU has not been defined yet.

ENU=”True”

; Setup will not display any user interface.

QUIET=”True”

; Setup will display progress only without any user interaction.

QUIETSIMPLE=”False”

; Specify whether SQL Server Setup should discover and include product updates. The valid values are True and False or 1 and 0. By default SQL Server Setup will include updates that are found.

UpdateEnabled=”True”

; Specifies features to install, uninstall, or upgrade. The list of top-level features include SQL, AS, RS, IS, MDS, and Tools. The SQL feature will install the Database Engine, Replication, Full-Text, and Data Quality Services (DQS) server. The Tools feature will install Management Tools, Books online components, SQL Server Data Tools, and other shared components.

FEATURES=SQLENGINE,REPLICATION,FULLTEXT,AS,BIDS,CONN,IS,BC,SDK,BOL,SSMS,ADV_SSMS,DREPLAY_CTLR,DREPLAY_CLT,SNAC_SDK

; Specify the location where SQL Server Setup will obtain product updates. The valid values are “MU” to search Microsoft Update, a valid folder path, a relative path such as .\MyUpdates or a UNC share. By default SQL Server Setup will search Microsoft Update or a Windows Update service through the Window Server Update Services.

UpdateSource=”MU”

; Displays the command line parameters usage

HELP=”False”

; Specifies that the detailed Setup log should be piped to the console.

INDICATEPROGRESS=”False”

; Specifies that Setup should install into WOW64. This command line argument is not supported on an IA64 or a 32-bit system.

X86=”False”

; Specify the root installation directory for shared components. This directory remains unchanged after shared components are already installed.

INSTALLSHAREDDIR=”D:\Microsoft SQL Server”

; Specify the root installation directory for the WOW64 shared components. This directory remains unchanged after WOW64 shared components are already installed.

INSTALLSHAREDWOWDIR=”D:\Microsoft SQL Server (x86)”

; Specify a default or named instance. MSSQLSERVER is the default instance for non-Express editions and SQLExpress for Express editions. This parameter is required when installing the SQL Server Database Engine (SQL), Analysis Services (AS), or Reporting Services (RS).

INSTANCENAME=”NOMINSTANCE

; Specify the Instance ID for the SQL Server features you have specified. SQL Server directory structure, registry structure, and service names will incorporate the instance ID of the SQL Server instance.

INSTANCEID=”NOMINSTANCE

; Specify that SQL Server feature usage data can be collected and sent to Microsoft. Specify 1 or True to enable and 0 or False to disable this feature.

SQMREPORTING=”False”

; The Windows account(s) used to grant permission to the Distributed Replay Controller service.

CTLRUSERS=”NOMSERVEUR\Administrator”

; The account used by the Distributed Replay Controller service.

CTLRSVCACCOUNT=”NT Service\SQL Server Distributed Replay Controller”

; The startup type for the Distributed Replay Controller service.

CTLRSTARTUPTYPE=”Manual”

; The account used by the Distributed Replay Client service.

CLTSVCACCOUNT=”NT Service\SQL Server Distributed Replay Client”

; The startup type for the Distributed Replay Client service.

CLTSTARTUPTYPE=”Manual”

; Specify if errors can be reported to Microsoft to improve future SQL Server releases. Specify 1 or True to enable and 0 or False to disable this feature.

ERRORREPORTING=”False”

; Specify the installation directory.

INSTANCEDIR=”F:\SQLDATA\NOMINSTANCE

; Agent account name

AGTSVCACCOUNT=”NT Service\SQLAgent$NOMINSTANCE

; Auto-start service after installation.

AGTSVCSTARTUPTYPE=”Manual”

; Startup type for Integration Services.

ISSVCSTARTUPTYPE=”Automatic”

; Account for Integration Services: Domain\User or system account.

ISSVCACCOUNT=”NT Service\MsDtsServer110″

; The name of the account that the Analysis Services service runs under.

ASSVCACCOUNT=”NT Service\MSOLAP$NOMINSTANCE

; Controls the service startup type setting after the service has been created.

ASSVCSTARTUPTYPE=”Automatic”

; The collation to be used by Analysis Services.

ASCOLLATION=”Latin1_General_CI_AS”

; The location for the Analysis Services data files.

ASDATADIR=”F:\SQLDATA\NOMINSTANCE\MSAS11.NOMINSTANCE\OLAP\Data”

; The location for the Analysis Services log files.

ASLOGDIR=”F:\SQLDATA\NOMINSTANCE\MSAS11.NOMINSTANCE\OLAP\Log”

; The location for the Analysis Services backup files.

ASBACKUPDIR=”F:\SQLDATA\NOMINSTANCE\MSAS11.NOMINSTANCE\OLAP\Backup”

; The location for the Analysis Services temporary files.

ASTEMPDIR=”F:\SQLDATA\NOMINSTANCE\MSAS11.NOMINSTANCE\OLAP\Temp”

; The location for the Analysis Services configuration files.

ASCONFIGDIR=”F:\SQLDATA\NOMINSTANCE\MSAS11.NOMINSTANCE\OLAP\Config”

; Specifies whether or not the MSOLAP provider is allowed to run in process.

ASPROVIDERMSOLAP=”1″

; Specifies the list of administrator accounts that need to be provisioned.

ASSYSADMINACCOUNTS=”NOMSERVEUR\Administrator”

; Specifies the server mode of the Analysis Services instance. Valid values are MULTIDIMENSIONAL and TABULAR. The default value is MULTIDIMENSIONAL.

ASSERVERMODE=”MULTIDIMENSIONAL”

; CM brick TCP communication port

COMMFABRICPORT=”0″

; How matrix will use private networks

COMMFABRICNETWORKLEVEL=”0″

; How inter brick communication will be protected

COMMFABRICENCRYPTION=”0″

; TCP port used by the CM brick

MATRIXCMBRICKCOMMPORT=”0″

; Startup type for the SQL Server service.

SQLSVCSTARTUPTYPE=”Automatic”

; Level to enable FILESTREAM feature at (0, 1, 2 or 3).

FILESTREAMLEVEL=”0″

; Set to “1” to enable RANU for SQL Server Express.

ENABLERANU=”False”

; Specifies a Windows collation or an SQL collation to use for the Database Engine.

SQLCOLLATION=”SQL_Latin1_General_CP1_CI_AS”

; Account for SQL Server service: Domain\User or system account.

SQLSVCACCOUNT=”NT Service\MSSQL$NOMINSTANCE

; Windows account(s) to provision as SQL Server system administrators.

SQLSYSADMINACCOUNTS=”NOMSERVEUR\Administrator”

; The default is Windows Authentication. Use “SQL” for Mixed Mode Authentication.

SECURITYMODE=”SQL”

; Provision current user as a Database Engine system administrator for SQL Server 2012 Express.

ADDCURRENTUSERASSQLADMIN=”False”

; Specify 0 to disable or 1 to enable the TCP/IP protocol.

TCPENABLED=”1″

; Specify 0 to disable or 1 to enable the Named Pipes protocol.

NPENABLED=”0″

; Startup type for Browser Service.

BROWSERSVCSTARTUPTYPE=”Automatic”

RSINSTALLMODE=”FilesOnlyMode”

SAPWD=MDPINSTANCE

; Add description of input argument FTSVCACCOUNT

FTSVCACCOUNT=”NT Service\MSSQLFDLauncher$NOMINSTANCE

IACCEPTSQLSERVERLICENSETERMS=”True”
QUIET=”True”

 

Share