patrickperrone / sitecore-powershell-installer Goto Github PK
View Code? Open in Web Editor NEWA PowerShell script to install Production-grade Sitecore instances. Capable of installing a variety of server roles.
License: MIT License
A PowerShell script to install Production-grade Sitecore instances. Capable of installing a variety of server roles.
License: MIT License
If the user has set elected to skip installing SQL databases then do not worry about:
Join-Path will fail if the path parameter is not accessible. Since the script is not guaranteed to run on the SQL server, the $dataFilePath and $logFilePath values will be empty. This causes the database attach to fail.
For sitecore 8.2 (not sure if this is exclusively for 8.2), there seems to be a connection string for reporting.apikey that is not set by the installer. If this is left blank, it fails the heartbeat check.
Need to make sure that the reporting.apikey connectionstring is commented out if it is not set.
There are a lot of functions, but I couldn't find a reason why you should fail the pre-req check if sqlps module is not installed. ie) I am installing a CD node, but disabled the DB section of the install config.
Warning: SQL PowerShell Module (SQLPS) is not installed.
Please satisfy pre-requisites and try again.
Aborting install: No action taken.
This is useful if you wish if some other process must oversee installing and configuring Sitecore's SQL databases. Disabling database operations means the script will run without needing to connect to the SQL server.
The Get-Website cmdlet was found to ignore the -Name parameter. This appears to be a bug in PowerShell that is addressed by using a more recent OS -- in this case the the OS was Windows Server 2008. Since, we cannot always dictate the OS to be used, the script needs to use a workaround as suggested here: http://stackoverflow.com/questions/4170530/powershell-get-website-name-parameter-is-ignored
The script does not test for the existence of the Sitecore .zip file or the license file prior to performing work.
consider the following: I am using a load balancer and using * in my iis bindings. The pre-req check reports a failure of having no binding when there is one.
IISBindings should provide at least one Binding.
A bad configuration setting was found.
Aborting install: No action taken.
to repo, use the following
Should be a simple change to make and test.
First step of script should validate that pre-requisites modules are available:
Sometimes a Sitecore instance will need to have more than one publishing target. This requires having multiple copies of the web database.
Observed the install script producing this output in the hosts file:
The duplicate line is there because I ran the installer twice, so I'm not worried about the duplication, only concerned about the line ending mismatch.
I confirmed that windows was confused by the line endings here, even after ipconfig /flushdns
. Once I manually corrected the line endings, the domain would resolve as expected.
Some clients install the script in a mode that cannot output to a host console. This causes the script to throw an exception.
In a production SQL landscape, best practice is to have log files on a separate physical drive. Having the ability to specify a different location for log files would be useful.
http://www.agehrke.com/2016/04/web-api-error-sitecore81-cd-servers/
Sitecore 8.1 update 2, requires you to delete 3 dlls or API routing fails.
-Sarkis-
Using the version at #
a5167be and running on a laptop with Windows 8.1 and Sql Server 2016. The script throws an error in the Test-ScriptPermissionForPath function if there is no Unc path specified in the DatabaseInstallPath element in the config file.
This line fails because the $computer variable is null:
$sharedSecurity = Get-WMIObject -Class Win32_LogicalShareSecuritySetting -Filter "name='$share'" -ComputerName $computer
Add support for binding to multiple IPs in IIS, binding to multiple host headers, and specifying the ports of those bindings.
If the SQL server is a separate server from Sitecore and the targeted SQL instance is using a virtual service account, then the permission inside the function Confirm-SqlInstallPath will fail because it cannot resolve the identity to a friendly name. This is because the virtual service account is a local account on different machine than the server that is running the script.
Checking if a module appears in the output of "Get-Module -ListAvailable" doesn't guarantee that the module has been imported (loaded.)
The SqlLoginForInstall is a domain account and SqlLoginForDataAccess
is undefined. You must supply a value for SqlLoginForDataAccess.
The specified combination of accounts will not produce a valid SQL login for data access.
Aborting install: config.xml file has a bad setting.
I tried leaving sqlloginfordataaccess empty or with a domain account ie) domain\user while UseWindowsAuthenticationForSqlDataAccess is set to true
http://pastebin.com/QKD6EdPT my config
I thought that dbcreator and securityadmin would grant me enough permission for all database operations, but it doesn't. The script will fail assigning user mappings if the login used by SQL during the install doesn't have the sysadmin role.
When using the builtin ApplicationPoolIdentity account, the script fails to set the correct username
i.e. "IIS AppPool"
This is because of some bad assumptions/tests in code on lines 963, 1570, and 1607
I need to require that the database install path exist and that it have the proper ACLs for the SQL instance to be used. My old logic of creating the install folder for SQL on a given root path is too brittle. Even if the account running the script can write files to the path, there is no guarantee SQL will have enough permission to attach the databases. Furthermore, checking if the destination folder exists as a way to decide if the files have already been installed is also error-prone.
When the builtin ApplicationPoolIdentity account is chosen for the app pool, the script will fail to correctly set ACLs for the app pool identity. This is because the literal string "ApplicationPoolIdentity" is being passed to the Set-AclForFolder function rather than the correct value:
"IIS APPPOOL"
Support switching the web database for a preview database on the 'web' connection string. This feature is useful when setting up a preview CD server.
The local path on the SQL server to database files (.mdf and .ldf) must be used in the Attach-SitecoreDatabase function. This problem manifests itself when trying to run the script in a scaled environment where the SQL server is a separate machine from the Sitecore server.
56 $moduleName = "SQLPS"
57 if (!(Test-Module $moduleName))
58 {
59 Write-Host "Warning: IIS PowerShell Module ($moduleName) is not installed." -ForegroundColor Red
60 return $FALSE
61 }
You are checking for the sql powershell module, but returning iis powershell module if it is not found. Won't break the script, but user might be confused if they do not have sqlps installed.
When running the script as a step in DSC, the code in Copy-DatabaseFiles, does not seem to be working.
Output of $childItem.Name displays the filename without extensions. This throws off the code and does not end up creating copies of the web database, nor renaming the analytics db to reporting.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.