Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Warning

INTERNAL DRAFT

...

  • Installing SQL Server: both versions 2016 and 2017 have been tested. No testing on 2019 yet.
  • Installing on PostgreSQL: final testing performed only on version 11; Beta release was also tested on version 10. No testing on 12 yet.
  • Credentials with permission to create and drop databases.
Notetip

We've heard of a successful test of Roadrunner Beta 1 on Google Cloud Platform. We have every reason to think it will run successfully on AWS and Azure as well - please let us know about your experience on these platforms!

Install Process

1. Download Install Process

Roadrunner binaries and automation scripts are available via a NuGet package. You should download this on your webserver. Two options: NuGet command line or direct download.

...

  1. Database server name
    1. In either case, is the database engine running on a non-default port? (1433 for SQL Server, 5432 for PostgreSQL)

  2. Database user credentials

    Note

    These credentials will be inserted into the web application connection strings. If using integrated security with SQL Server, then be sure to setup the IIS Appol Pool Identity user or the IIS service user, as appropriate, with db_datareader  and db_datawriter access in all three databases.


    1. If SQL Server, either the deployment account must have admin rights in the database (integrated security), or you need to provide SQL credentials that have admin rights. You can set the password via environment variable $env:SQLSERVERPASSWORD or pass it as a parameter.

    2. If PostgreSQL, then you need to provide database credentials. While the username is passed in as a parameter, the password must be passed through environment variable $env:PGPASSWORD  or, if the client tools are installed, through the pgpass config file.

  3. If installing on PostgreSQL
    1. Do you want the standard install or the template-based install? If using templates, you can choose from "empty", "minimal" (includes descriptors), and "populated" (includes a small set of sample data).
    2. If your instance requires SSL/TLS encryption, then set environment variable $env:PGSSLMODE="require" .

  4. Additional database options
    1. If the destination databases already exist, do you want to drop them? ((warning) for PostgreSQL, requires that you have the client utilities installed on the deployment server).
    2. Do you want to change the database names away from the defaults of EdFi_Admin , EdFi_ODS, and EdFi_Security?

  5. Destination folder paths for the four applications:
    1. Web API
    2. Swagger UI
    3. Admin App
    4. API Bulk Loader

This script has a long list of parameters. It can be useful to create a PowerShell object (dictionary) with the values, instead of trying to string all of the values together in a single command. Doing so makes it easier to review your parameters before running the script.

...

Code Block
Initialize-Environment [[-swaggerIisFolder] <String>] [[-webApiBaseUrl] <String>] [[-webApiIisFolder] <String>] [[-apiBulkFolder] <String>] [-engine] <String> [-databaseServer] <String> [[-databasePort] <String>] [[-databaseUser] <String>] [[-databasePassword] <String>] [-useIntegratedSecurity] [[-adminDatabaseName] <String>] [[-odsDatabaseName] <String>] [[-securityDatabaseName] <String>] [-useTemplates] [[-odsTemplate] <String>] [-noDuration] [-dropDatabases] [<CommonParameters>]

Parameter List

NameAliasDescriptionRequired?Default Value
-swaggerIisFolder

Destination folder for Swagger web application. Files will be overwritten.
Default value of $null prevents Swagger web application from being
configured and deployed.

(warning) Not recommended for production installations.

false
-webApiBaseUrl
Base URL that Swagger should use when connecting to the Web API. Defaults
to "http://localhost:54746".
falsehttp://localhost:54746
-webApiIisFolder
Destination folder for Web API web application. Files will be overwritten.
Default value of $null prevents Web API web application from being
configured and deployed.
false
-apiBulkFolder
Destination folder for installing the API bulk loader program.false
-engine
The database engine that will be used: SqlServer or PostgreSQL.true
-databaseServer
The network name or IP address of the database server.true
-databasePort
Database port number. For PostgreSQL, defaults to 5432. For SQL Server,
defaults to 1433.
false
-databaseUser
Username for connection to the database instance, both during installation
and during runtime. User must have permission to drop and create databases.
false
-databasePassword
Optionally provide a database password for non integrated-security.
Alternately, can provide via environment variable $env:SqlServerPassword.
Note that this is only supported for SQL Server, not PostgreSQL.
false$env:SqlServerPassword
-useIntegratedSecurity
Switch to enable use of Windows Integrated Security instead of a database
username and password. When true, any values provided for user name and
password are ignored.
falseFalse
-adminDatabaseName
Name of the Admin database. Defaults to EdFi_Admin.falseEdFi_Admin
-odsDatabaseName
Name of the ODS database. Defaults to EdFi_ODS.falseEdFi_ODS
-securityDatabaseName
Name of the Security database. Defaults to EdFi_Security.falseEdFi_Security
-useTemplates
Switch to install from template databases instead of the original SQL
scripts used by the EdFi.Db.Deploy executable. Currently only available
for PostgreSQL.
falseFalse
-odsTemplate
Template to use when $useTemplates is true. Allowed values: empty,
minimal, populated. Defaults to empty.
falseempty
-noDuration
When true, does not report task duration.falseFalse
-dropDatabases
When true, drops databases if they already exist. Defaults to false.
If databases exists and $dropDatabases is false, then deploy from
templates will fail, but deploy from Db Deploy will succeed.
falseFalse

Examples

Only install databases on PostgreSQL, using all available default values.

...