Instalacja aplikacji na środowisku OnPremises
Etapy instalacji

Instalacja aktualnego obrazu VSoft archITekt
Obraz archITekta można pobrać z linku dostępnego po zalogowaniu do ekstranetu. Dostępne są 3 wersje obrazu:
- Instalator online dla dewelopera (poza komponentami VSoft archITetkt zawiera VSoft archITekt Launcher i narzędzia umożliwiające lokalne budowanie aplikacji).
- Instalator online dla serwera (zawiera wyłącznie komponenty VSoft archITetkt).
- Instalator offline dla serwera (zawiera wyłącznie komponenty VSoft archITetkt – wersja do instalacji na środowiskach bez dostępu do Internetu).
Zainstalowany obraz archITekta, domyślnie w ścieżce C:\Program Files\VSoft\archITekt\Images\[wersja] Obraz musi być zainstalowany na wszystkich maszynach. W przypadku uruchamiania kolejnych kroków z komputera administratora – również na nim.
Stworzenie środowiska / Rekonfiguracja środowiska / Usunięcie środowiska
Te kroki działają w oparciu o katalog środowiska, który jest wykorzystywany wyłącznie na potrzeby uruchamiania skryptów instalacyjnych (runtime środowiska nie ma dostępu do tego katalogu). W katalogu przechowywana jest pełna konfiguracja środowiska. Modyfikacje środowiska zapisywane są w plikach zawartych w tym katalogu.
Aktualizacja runtime
Ten krok automatycznie tworzy/aktualizuje konfigurację komponentów runtime tak by odpowiadała definicji zapisanej w katalogu z konfiguracją środowiska. W przypadku wykonania zmian w konfiguracji środowiska, w większości przypadków uruchomienie tego skryptu jest obowiązkowe, by zaktualizować komponenty runtime
Odinstalowanie runtime
Ten krok usuwa komponenty runtime z danego serwera. Jest automatycznie uruchamiany przez skrypt „Usunięcie środowiska”. Istnieje również możliwość jego samodzielnego uruchomienia na danym serwerze, na przykład wówczas, gdy dany serwer został odpięty od środowiska.
Uwaga! Nawet jeśli ten skrypt zostanie przypadkowo uruchomiony, wówczas uruchomienie skryptu "Aktualizacja runtime” zainstaluje komponenty środowiska na serwerze, na którym ich brakuje.
Instalacja projektu
Proces tworzenia środowiska, instalacji i zarządzania nim odbywa się za pomocą skryptów PowerShell.
Tworzenie i instalacja środowiska OnPremises wykonywane jest w dwóch etapach:
Tworzenia i zarządzanie środowiskiem:
- OnPremisesCreate – zakłada nowe środowisko. Tworzy katalog środowiska, użytkowników i bazy danych środowiska na serwerze bazodanowym.
Dodatkowe skrypty do zarządzania projektem to:
- DestroyProject – usuwa środowisko. Usuwa bazy danych środowiska z serwera bazodanowego i użytkowników serwera baz danych. Kasuje również katalog projektu.
- PackageImport – importuje nową wersję aplikacji na środowisko. Aktualizuje katalog środowiska plikami nowej wersji aplikacji. Po aktualizacji katalogu środowiska, należy zaktualizować komponenty aplikacji.
Instalacji / aktualizacji komponentów aplikacji na serwerze (serwerach)
- InstallOnPremises – służy do instalacji, aktualizacji i usuwania komponentów środowiska (aplikacji WWW, serwisów) na serwerach; wykonuje aktualizację baz danych środowiska.
Wszystkie wymienione w tym rozdziale skrypty PowerShell znajdują się w katalogu, w którym został zainstalowany obraz archITekta (domyślnie C:\Program Files\VSoft\archITekt\Images\[nazwa obrazu]).
Wszystkie wymienione w tym rozdziale skrypty PowerShell wymagają uruchomienia z prawami administratora (wersyfikują to na początku swojego działania).
Skrypty PowerShell nie wykonują backupu baz danych. Odpowiedzialnością administratora jest zadbanie o przygotowanie polityki tworzenia backupów baz danych aplikacji.
Podpowiedzi:
Używając dostarczonych skryptów warto korzystać ze standardowej funkcjonalności podpowiadania parametrów konsoli PowerShell. Naciskając kombinację klawiszy Ctrl+Spacja można wyświetlić nazwy wszystkich dostępnych parametrów:
Wpisz:
.\OnPremisesCreate.ps1 –
tak jak na poniższym ekranie i naciśnij kombinację Ctrl+Spacja

Wywołując polecenia z konsoli PowerShell można je wpisywać w jednej lub w wielu liniach. Chcąc wpisać polecenie w kilku liniach należy wszystkie linie polecenia poza ostatnią zakańczać znakiem ` tak jak na poniższym ekranie:

Katalogi aplikacji
Wdrażana aplikacja wykorzystuje dwa katalogi:
- Katalog projektu – w tym katalogu przechowywane są wszelkie parametry i konfiguracja aplikacji. Dostęp do tego katalogu ma wyłącznie administrator (wdrożona i działająca aplikacja nie ma żadnej wiedzy o lokalizacji tego katalogu).
- Katalog runtime – ten sam katalog na każdym serwerze, na którym instalowane są komponenty aplikacji. Katalog ten i jego zawartość powstaje w sposób automatyczny jako efekt działania skryptów, na postawie konfiguracji aplikacji. Oznacza to, że może być w każdej chwili odtworzony za pomocą ponownego uruchomienia skryptów (poza zawartością podkatalogu, w którym składowane są logi dla danego serwera). Możliwa jest również instalacja w różnych katalogach: (1) wspólnym dla serwerów aplikacyjnych i (2) wspólnym dla serwerów WWW.
Lokalizacja folderów:
- Katalog projektu - może być przechowywany w dowolnym miejscu. Katalog tworzony jest podczas uruchamiania skryptu tworzącego środowisko i jest on sklejeniem wartości parametrów
[parentFolder]\[technicalName] - Katalog runtime - ten sam katalog na każdej maszynie, na której zainstalowane są komponenty aplikacji. Wybierany w czasie uruchamiania skryptu tworzącego środowisko. Katalog domyślnie jest sklejeniem wartości parametrów
c:\vsoft\[technicalName]. Katalog runtime może być przechowywany w innej lokalizacji. Chcąc zmienić domyślną lokalizację (wspólną dla wszystkich serwerów) należy przekazać parametr-runtimeFolderdo skryptu tworzącego środowisko. Chcąc zmienić domyślną lokalizację (różną - dla serwerów aplikacyjnych i WWW) należy przekazać parametry-runtimeFolderApporaz-runtimeFolderWebdo skryptu tworzącego środowisko.
Tworzenie środowiska
Stworzenie nowego środowiska OnPremises wymaga uruchomienia poniższego skryptu PowerShell, który:
- Utworzy katalog środowiska i zapisze w nim konfigurację środowiska.
- Utworzy bazy danych środowiska na serwerze.
Skrypty weryfikują czy w ramach tworzenia projektu nie zostanie nadpisany istniejący projekt (weryfikują nazwy zakładanych baz danych oraz istnienie plików *.json skojarzonych z projektem w katalogu projektu).
cd "C:\Program Files\VSoft\archITekt\Images\[nazwa obrazu]"
.\OnPremisesCreate.ps1 `
-envName "[nazwa środowiska]" `
-technicalName "[nazwa techniczna środowiska]" `
-parentFolder "[(opcja)katalog nadrzędny]" `
-projectFolder "[(opcja)katalog projektu]" `
-runtimeFolder "[(opcja) katalog runtime dla serwera aplikacyjnego i WWW, inny niż domyślny]" `
-runtimeFolderApp = "[(opcja) katalog runtime dla serwera aplikacyjnego inny niż domyślny]" `
-runtimeFolderWeb = "[(opcja) katalog runtime dla serwera WWW inny niż domyślny]" `
-versionProvider "[rodzaj serwera wersji]" `
-dbServerProvider "[(opcja) rodzaj serwera bazodanowego („SQLServer”, „PostgreSQL”). Domyślna wartość = „PostgreSQL]"
-dbServer "[adres serwera baz danych]" `
-dbUser "[(opcja) użytkownik - administrator serwera baz danych]" `
-dbPassword "[(opcja) hasło użytkownika - administratora serwera baz danych]" `
-securityMode "[rodzaj zabezpieczenia]" `
-reservedPortsBlockBegin "[początek obszaru zarezerwowanych portów]" `
-applicationPackagePath "[(opcja) ścieżka do archiwum z aplikacją inicjalną]" `
-licenseFilePath "[ścieżka do pliku z licencją dla środowiska]" `
-appServerFQDNAddress "[publiczna nazwa serwera aplikacyjnego]" `
-appServerCustomWcfPort "[(opcja) użycie innego niż standardowy (80, 433) portu dla usług zainstalowanych na serwerze aplikacyjnym]" `
-webServerFQDNAddress "[publiczna nazwa serwera aplikacyjnego]" `
-webServerCustomWebSiteName "[(opcja) instalacja aplikacji na innej niż standardowa web site]” `
-webServerCustomIISPort "[(opcja) użycie innego niż standardowy (80, 433) portu dla aplikacji zainstalowanych na serwerze WWW]" `
-targetAppServers "[lista serwerów aplikacyjnych na których ma być zainstalowana aplikacja]" `
-targetWebServers "[lista serwerów WWW, na których ma być zainstalowana aplikacja]"
-appServer\_HttpsCertificate "[(opcja) odcisk certyfikatu serwera aplikacyjnego]" `
-webServer\_HttpsCertificate "[(opcja) odcisk certyfikatu serwera WWW]" `
-applicationDbAuthentication "[(opcja) określenie w jaki sposób system łączy się z bazą danych: domenowo czy użytkownik/hasło]"
-applicationCredentialAdminUser "[(opcja) domenowy użytkownik administracyjny w bazie danych]"
-applicationCredentialUser "[(opcja) domenowy użytkownik w bazie danych]"
-applicationCredentialPassword "[(opcja) domenowy użytkownik w bazie danych]"
-initialAdminUser "[nazwa administratora środowiska]"
-initialAdminPassword "[hasło administratora środowiska]"
-SecurityPassword "[(opcja) Hasło bezpieczeństwa środowiska]"
-configKeys "[(opcja) Hashtable zawierająca parametry do zapisania w konfiguracji technicznej]"
-sensitiveConfigKeys "[(opcja) lista kluczy z configKeys, których wartości mają być traktowane jako wrażliwe]"
-elasticPoolName "[(opcja) nazwa puli w przypadku instalacji na Azure SQL]"
-FeatureSSO "[(opcja) włączenie / wyłączenie funkcji logowania SSO (Single Sign On)]"
-ClusterServerCredential "[(opcja) podanie poświadczeń (PSCredential) do instalacji na klastrze – jeśli użytkownik uruchamiający skrypt nie ma prawa administratora na maszynach klastra]"
-FailoverCluster "[(opcja) Nazwa klastra failover]"
-FailoverClusterGroup = "[(opcja) Nazwa grupy – roli typu Generic service dla usług archITekta]"
-ServiceStartupType [(opcja) tryb uruchamiania serwisów archITekta("Automatic", "AutomaticDelayedStart", "Disabled", "Manual"). Domyślna wartość = "Automatic"]
-UsePluginMySql [(opcja) czy włączyć plugin umożliwiający łączenie się z bazami MySQL(„On”, „Off”). Domyślna wartość = „Off”]
-LockedImageVersion [(opcja) zablokować podmianę wersji obrazu („On”, „Off”). Domyślna wartość = „Off”]
-OverwriteExistingProject [(opcja) dopuszcza możliwość nadpisania istniejącego projektu]
-WhatIf [(opcja) sprawdza poprawność parametrów, nie uruchamia operacji tworzenia środowiska]
Poniżej informacje na temat poszczególnych argumentów:
| Parametr | Opis |
|---|---|
envName | Nazwa środowiska prezentowana na stronie logowania aplikacji. Może zawierać dowolny zestaw znaków. |
technicalName | Techniczna nazwa środowiska. Może składać się z liter (bez znaków narodowych) i cyfr. Musi rozpoczynać się literą. Używana jako: • prefiks nazw baz danych dla tego środowiska, • nazwy aplikacji WWW tego środowiska, • nazwy katalogu projektu, • nazwy katalogu, w którym będą zainstalowane komponenty aplikacji na serwerze c:\vsoft\[technicalName] |
parentFolder | Katalog nadrzędny, w którym będzie zainstalowany projekt. Po wywołaniu polecenia, katalogiem projektu będzie ścieżka [parentFolder]\[technicalName]. Przy wykonywaniu polecenia należy podać albo parametr parentFolder albo parametr projectFolder. |
| projectFolder | Katalog projektu, w którym zainstalowany będzie projekt. Po wywołaniu polecenia, katalogiem projektu będzie podana ścieżka. Przy wykonywaniu polecenia należy podać albo parametr parentFolder albo parametr projectFolder. |
runtimeFolder | Katalog runtime, w którym będą zainstalowane komponenty apliakcji na serwerze (serwerach). W przypadku, gdy nie zostanie podany, wówczas komponenty aplikacji zostaną zainstalowane w domyślnej lokalizacji c:\vsoft\[technicalName]. Podanie tego parametru jest możliwe jeśli nie podano żadnego z parametrów runtimeFolderApp, runtimeFolderWeb. |
runtimeFolderAppruntimeFolderWeb | Katalogi runtime, w którym będą zainstalowane komponenty aplikacji na serwerze (serwerach): aplikacyjnych runtimeFolderApp, oraz webowych runtimeFolderWeb. Podanie tych parametrów jest możliwe jeśli nie podano parametru runtimeFolder |
versionProvider | Rodzaj serwera wersji. Dopuszczalne wartości: • FileSystem – system plikowy • System.Data.SqlClient - bazodanowy |
dbServer | Adres serwera baz danych. Musi być osiągalny zarówno z komputera, na którym uruchamiany jest skrypt, jak i z serwerów, na których będzie zainstalowana aplikacja. |
dbServerProvider | Rodzaj serwera bazodanowego. Dopuszczalne wartości: • SQLServer • PostgreSQL |
dbUser, dbPassword | Użytkownik i hasło serwera baz danych. W przypadku logowania domenowego do bazy danych nie należy podawać tych parametrów. |
securityMode | Rodzaj zabezpieczenia dla instalowanej aplikacji. Dopuszczalne wartości: • SSL • NONE W przypadku podania wartości SSL komunikacja z aplikacją WWW i usługami WebService będą zabezpieczone certyfikatami SSL (będzie wymagane podanie odcisków palca certyfikatów) - szczegóły w podrozdziale: W przypadku instalacji z użyciem certyfikatów SSL. |
reservedPortsBlockBegin | Pierwszy z przedziału portów wykorzystywanych na wewnętrzne potrzeby aplikacji: • Aplikacja wykorzystuje 2 porty ( reservedPortsBlockBegin, reservedPortsBlockBegin+1) do komunikacji pomiędzy komponentami. Ruch pomiędzy serwerami na tych portach musi być otwarty.• Aplikacja wykorzystuje kolejne porty ( reservedPortsBlockBegin+2 i następne) do uruchamiania LibreOffice w trybie serwerowym (komunikacja z tymi portami odbywa się wyłącznie w obrębie serwera). Ilość zajętych portów jest równa ilości uruchomionych konwerterów LibreOffice. |
applicationPackagePath | Ścieżka do paczki inicjalnie instalowanej na środowisku. |
licenseFilePath | Ścieżka do pliku licencji dla tego środowiska. |
| appServerFQDNAddress | Nazwa pod jaką będą dostępne serwery aplikacyjne środowiska w sieci. Nazwa musi być zgodna z nazwą podaną w certyfikacie wskazanym w zmiennej appServer_HttpsCertificate. |
appServerCustomWcfPort | Inny niż standardowy port, na którym będą wystawione usługi serwera aplikacyjnego. Standardowo usługi działają na portach: 80 (niezabezpieczone) oraz 433 (zabezpieczone SSL). |
webServerFQDNAddress | Nazwa pod jaką będą dostępne aplikacje WWW środowiska w sieci. Nazwa musi być zgodna z nazwą podaną w certyfikacie wskazanym w zmiennej webServer_HttpsCertificate |
webServerCustomWebSiteName | Inna niż standardowa web site, używana przez aplikacje WWW. Web site w czasie instalacji komponentów musi istnieć na serwerze WWW (instalator nie tworzy i nie usuwa web site). |
webServerCustomIISPort | Inny niż standardowy port, na którym będą wystawione usługi serwera WWW. Standardowo usługi działają na portach: 80 (niezabezpieczone) oraz 433 (zabezpieczone SSL). |
targetAppServers | Nazwa pod jaką będą dostępne serwery aplikacyjne środowiska w sieci. Wartości w parametrach targetAppServers, targetWebServers powinny być podane nazwy serwerów zwracane przez polecenie $env:computername wykonane z poziomu PowerShell. Listę serwerów przekazuje się w postaci tablicy. Przykład: targetAppServers @("server1", "server2") |
targetWebServers | Nazwa pod jaką będą dostępne serwery WWW środowiska w sieci. Wartości w parametrach targetAppServers, targetWebServers powinny być podane nazwy serwerów zwracane przez polecenie $env:computername wykonane z poziomu PowerShell. Listę serwerów przekazuje się w postaci tablicy. Przykład: targetAppServers @("server1", "server2") |
appServer_HttpsCertificatewebServer_HttpsCertificate | Odciski klucza certyfikatów dla serwerów aplikacyjnych i WWW. W przypadku podania zostaną przypisane do portów, na których działa aplikacja. Uwaga! Podczas odinstalowywania aplikacji instalator nie usuwa powiązania certyfikatu z portem, ponieważ może być on używany przez wiele aplikacji. W celu ręcznego usunięcia powiązania certyfikatu z portem (gdy wiadomo, że żadna inna aplikacja nie będzie pracować na tym porcie) można użyć polecenia: netsh http delete sslcert ipport=0.0.0.0:[wybrany port] |
applicationDbAuthentication | Rodzaj połączenia z bazą danych. Dopuszczalne wartości: • Windows – połączenie z bazą danych za pomocą logowania domenowego Windows. Wykorzystane będą loginy użytkowników podane w polach applicationCredentialUser oraz applicationCredentialAdminUser • UserPassword – połączenie z bazą danych za pomocą użytkownika i hasła. Na potrzeby aplikacji zostaną założeni użytkownicy w bazie danych o nazwach [technicalName]_admin oraz [technicalName]_user. |
applicationCredentialAdminUser | Jeśli korzystamy z logowania domenowego do bazy danych należy w tym parametrze podać użytkownika będącego właścicielem bazy danych. Użytkownik ten dostanie również prawa administratora na bazach danych aplikacji. Mogą to być zarówno dane użytkownika, który uruchamia skrypt, jak również dane innego konta. |
applicationCredentialUser | Jeśli korzystamy z logowania domenowego do bazy danych to należy podać tutaj dane konta użytkownika, na którym będą działały komponenty aplikacji. |
applicationCredentialPassword | Hasło użytkownika w przypadku logowania domenowego. |
initialAdminUser | Login administratora środowiska. UWAGA! Administrator o podanym loginie zostanie dodany do wewnętrznego providera zarządzania użytkownikami. W przypadku korzystania z zewnętrznego providera (np. Active Directory) należy samodzielnie zadbać o stworzenie użytkownika z prawami administratora w aplikacji. |
initialAdminPassword | Hasło administratora środowiska. |
configKeys | Hashtable zawierająca nazwy zmiennych z wartościami, które zostaną uzupełnione w konfiguracji aplikacji (mechanizm konfiguracji aplikacji opisany jest w kolejnym rozdziale tej dokumentacji). Parametr powinien mieć postać: @{"nazwa zmiennej 1"="wartość zmiennej 1"; "nazwa zmiennej 2"="wartość zmiennej 2";}Przykład wywołania: configKeys @{"common.connection.provider_ad"="LDAP://my.server.local:389"; "custom.myvariable"="specyfic value"}Na potrzeby skomplikowanych przypadków wdrożeniowych udostępniona została możliwość ustawienia innych wartości parametru wyłącznie dla wybranych NODE. W tym celu jako nazwę zmiennej należy podać wartość "nazwa zmiennej@nazwa node" Wartości kluczy wrażliwych z definicji (np. common.param.smtp_password) są zapisywane w sposób zaszyfrowany automatycznie. Patrz: Klucze wrażliwe. |
sensitiveConfigKeys | Lista nazw kluczy konfiguracyjnych, które mają być traktowane jako wrażliwe: ich wartości zostaną zapisane w sposób zaszyfrowany (w plikach projektu i w tabeli CONFIG_KEYS), klucze zostaną ukryte na listach kluczy (CK_SENSITIVE = 1), a ich wartości nie trafią do logów. Parametr jest potrzebny wyłącznie dla kluczy własnych (np. custom.*) oraz kluczy systemowych, które nie są wrażliwe z definicji. Podaje się wyłącznie nazwy kluczy, bez wskazania węzła – oznaczenie obowiązuje na wszystkich węzłach.Przykład wywołania: sensitiveConfigKeys @("custom.api.token", "custom.connection.my_db")Szyfrowanie wymaga podania parametru SecurityPassword. Szczegóły: Klucze wrażliwe. |
elasticPoolName | Parametr wykorzystywany wyłącznie podczas instalacji na serwerze bazodanowym Azure SQL. W przypadku podania, wszystkie bazy aplikacji zostaną założone we wskazanej (istniejącej) puli Azure SQL. |
FeatureSSO | Parametr określa czy w aplikacji ma być włączona funkcjonalność logowania SSO (Single Sign On). Dopuszczalne wartości: „On”, „Off” |
ClusterServerCredential | Poświadczenia administratora klastra – w przypadku, gdy instalację wykonuje użytkownik, nie posiadający uprawnień administracyjnych na klastrze. Jest to obiekt typu System.Management.Automation.PSCredential |
FailoverCluster | Wykorzystywany w przypadku instalacji na klastrze failover. Nazwa klastra, na którym mają być zainstalowane usługi archITekta. |
FailoverClusterGroup | Wykorzystywany w przypadku instalacji na klastrze failover. Nazwa grupy (roli typu „Generic services”), do której będą automatycznie dodawane usługi. |
ServiceStartupType | Sposób uruchamiania usług archITekta. Możliwe wartości: "Automatic", "AutomaticDelayedStart", "Disabled", "Manual". Brak podania warości parametru zainstaluje serwisy z wartością „Automatic” Uwaga: W przypadku instalacji na klastrze Failover wybranie wartości "Automatic", "AutomaticDelayedStart" zostanie w trakcie instalacji zmienione na wartość „Manual”. |
SecurityPassword | Hasło bezpieczeństwa. Podanie tego parametru spowoduje, że wybrane elementy konfiguracji technicznej środowiska zostaną zapisane w sposób zaszyfrowany (m.in. wartości kluczy wrażliwych). Patrz: Mechanizm szyfrowania konfiguracji. |
UsePluginMySql | Włączenie pluginu umożliwiającego łączenie się z bazami MySQL. Wybranie wartości „On”, wymaga podczas instalacji obrazu archITekta wybrania instalacji pluginu MySQL. Możliwe wartości: „On”, „Off”. Brak podania wartości parametru zainstaluje serwisy z wartością „Off”. |
LockedImageVersion | Instaluje projekt korzystając z bieżącej wersji obrazu archITekta i blokuje możliwość aktualizacji obrazu dla tego środowiska. (odblokowanie/ponowne zablokowanie możliwości aktualizacji obrazu możliwe jest za pomocą wybranie odpowiedniej opcji w skrypcie Reconfigure,ps1). Możliwe wartości: „On”, „Off”. Brak podania wartości parametru zainstaluje środowisko z wartością „Off”. |
OverwriteExistingProject | Przełącznik pozwala na nadpisanie istniejącego parametru. Powoduje, że w ramach uruchamiania skryptu pomijana jest procedura weryfikująca czy na serwerze znajdują się bazy danych o podanych nazwach oraz czy we wskazanym katalogu projektu znajdują się pliki *.json skojarzone z projektem. |
WhatIf | Dodając ten przełącznik do parametrów skryptu zmieniamy sposób jego działania – wykonanie skryptu zostanie przerwane zaraz po fazie weryfikacji parametrów niezależnie od jej wyniku. Użycie tego parametru umożliwia weryfikację gotowości środowiska do instalacji przed uruchamianiem właściwej instalacji. |
Przykład skryptu z parametrami:
cd "C:\Program Files\VSoft\archITekt\Images\dev"
.\OnPremisesCreate.ps1 `
-envName "My sample application" `
-technicalName "SAMPLE1" `
-parentFolder "C:\VSoft\Projects" `
-versionProvider FileSystem `
-dbServer "mysqlserver\SQLEXPRESS" `
-dbUser "superadmin" `
-dbPassword "superadmin\_password" `
-securityMode NONE `
-reservedPortsBlockBegin 48000 `
-applicationPackagePath "C:\SampleApp1.zip" `
-licenseFilePath "C:\My.license.xml" `
-appServerFQDNAddress "myappserver.localdomain" `
-webServerFQDNAddress "mywwwserver.localdomain"`
-targetAppServers @("myappserver1", "myappserver2") `
-targetWebServers @("mywwwserver1", "mywwwserver2")`
-initialAdminUser "superadmin" `
-initialAdminPassword "initial-password" `
-SecurityPassword "security-password" `
-configKeys @\{ "custom.myvariable" = "specyfic value"; "custom.api.token" = "secret-token" \} `
-sensitiveConfigKeys "custom.api.token" `
-FeatureSSO "Off"
Po stworzeniu środowiska należy uruchomić skrypt instalujący komponenty środowiska na serwerach (InstallOnPremises z parametrem ClusterInstallOrUpdate).
Instalacja / aktualizacja / usunięcie komponentów środowiska
Po stworzeniu środowiska (opisane w poprzednim rozdziale) można wykonywać operacje, które będą instalować / aktualizować komponenty środowiska na serwerze (serwerach).
Za pomocą skryptu InstallOnPremises wykonywane są operacje zarządzania środowiskiem. Zadaniem skryptu jest wykorzystanie danych zawartych w katalogu projektu i rozpropagowanie ich na bazy danych projektu i komponenty zainstalowane na serwerach.
Dobrze wiedzieć: Dostęp do katalogu z konfiguracją środowiska odbywa się wyłącznie z poziomu skryptu zarządzającego (instalującego / aktualizującego) komponenty środowiska. Same komponenty nie posiadają żadnych odnośników do katalogu z konfiguracją środowiska. Oznacza to, że jakakolwiek zmiana w konfiguracji środowiska dokonana w katalogu środowiska (np. import paczki z nową definicją) musi być rozpropagowana na wszystkie jego komponenty za pomocą uruchomienia skryptu.
Uruchomienie skryptu:
cd "C:\Program Files\VSoft\archITekt\Images\[nazwa obrazu]"
.\InstallOnPremises.ps1
-PathProjectFolder [katalog środowiska] `
-SetupCommand [komenda]
-CustomOptions [opcje zaawansowane]
-ClusterServerCredential "[(opcja) podanie poświadczeń (PSCredential) do instalacji na klastrze –
jeśli użytkownik uruchamiający skrypt nie ma prawa administratora na maszynach klastra]"
-SecurityPassword [(opcja) hasło bezpieczeństwa]
Parametry:
PathProjectFolder– katalog projektu (środowiska)SetupCommand– wykonywana KomendaCustomOptions– specyficzne opcje instalacji/aktualizacji, wykorzystywane w nietypowych sytuacjachClusterServerCredential- poświadczenia administratora klastra – podawane w przypadku, gdy instalację wykonuje użytkownik nie posiadający uprawnień administracyjnych na klastrze. Jest to obiekt typu System.Management.Automation.PSCredential.SecurityPassword– hasło bezpieczeństwa środowiska (wymagane do podania jeśli środowisko korzysta z zaszyfrowanej konfiguracji technicznej)
Dostępne komendy:
Komendy wykorzystywane są zarówno na środowiskach jedno-serwerowych jak i na środowiskach klastrowych. Każda z komend w sposób automatyczny sprawdza czy ma się wykonać lokalnie czy zdalnie i uruchamia odpowiedni tryb działania.
W przypadku, gdy fragment skryptu musi wykonać się zdalnie (instalując lub modyfikując komponenty na zdalnym serwerze), wówczas uruchamiany jest za pomocą mechanizmu PowerShell remoting.
Weryfikacja czy operacja instalacji komponentu jest wykonywana na lokalnym czy zdalnym serwerze wykonywana jest poprzez sprawdzenie czy nazwa lokalnego komputera jest tą samą, która została podana w parametrach wskazujących na których serwerach ma być zainstalowana aplikacja (targetWebServers oraz targetAppServers).
ClusterVerifyPrerequisities– weryfikuje stan środowiska. Komenda uruchamiana automatycznie w ramach wykonania każdej innej komendy.ClusterInstallOrUpdate– instaluje komponenty środowiska (jeśli nie było ich na danym serwerze) lub aktualizuje je (jeśli już były zainstalowane).ClusterForceReinstall– usuwa komponentówy środowiska z serwera i ponownie je na nim instaluje.ClusterUninstall- odinstalowuje komponenty środowiska ze wszystkich serwerów.ClusterStop– zatrzymuje środowisko (zatrzymuje serwisy i pule aplikacji WWW).ClusterStart– uruchamia środowisko (uruchamia serwisy i pule aplikacji WWW).
Dostępne opcje zaawansowane (CustomOptions):
nostart– powoduje ominięcie kroku uruchamiającego serwisy i pule aplikacji WWW. Opcja jest uwzględniana przy uruchamianiu komendClusterInstallOrUpdate,ClusterForceReinstallorazClusterStart
Uwaga dotycząca odinstalowywania komponentów środowiska:
- Odinstalowanie środowiska nie usuwa baz danych.
- Po odinstalowaniu komponentów środowiska można je zainstalować ponownie.
- Podczas instalacji komponentów środowiska na każdym serwerze w katalogu środowiska jest tworzony skrypt
UninstallOnPremisesComponents.ps1, który umożliwia odinstalowanie komponentów aplikacji z danego serwera nawet bez dostępu do katalogu projektu.
Przykład skryptu z parametrami:
cd "C:\Program Files\VSoft\archITekt\Images\dev"
.\InstallOnPremises.ps1 `
-PathProjectFolder "C:\VSoft\Projects\SAMPLE1" `
-SetupCommand "ClusterInstallOrUpdate"
Komenda ClusterInstallOrUpdate w odróżnieniu od komendy ClusterForceReinstall nie zawsze wykonuje reinstalację komponentów przez co działa szybciej.
Decyzję o tym czy na danym serwerze wykonywać reinstalację komponentów czy nie komenda podejmuje porównując bieżącą konfigurację projektu ze stanem z czasu instalacji komponentów (korzysta z porównania sumy kontrolnej tego fragmentu pliku konfiguracyjnego, który wpływa na sposób instalacji komponentów).
W związku z tym sugerowane jest używanie komendy ClusterInstallOrUpdate jako wygodniejszej i szybszej, natomiast użycie komendy ClusterForceReinstall należy pozostawić dla obsługi sytuacji awaryjnych.