You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

93 lines
4.8 KiB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
  1. # Deploying a Service Fabric cluster based on Windows nodes (No Secured)
  2. You can always deploy a SF cluster through the Azure portal, as explained in this article: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-get-started-azure-cluster
  3. However, when creating a cluster, there are quite a few configurations to take into account, like enabling the internal DNS service or Reverse Proxy service, choosing between Linux/Windows, open/publish your application ports in the load-balancer and most of all (the most complex setup) how to create a secure cluster.
  4. Because of those reasons, we have created a set of ARM templates and scripts so you can create, re-create and configure the SF clusters much faster, as explained below:
  5. Within eShopOnContainers root folder, at the folder [..\deploy\az\servicefabric\WindowsContainers](https://github.com/dotnet-architecture/eShopOnContainers/tree/dev/deploy/az/servicefabric/WindowsContainers), you can find the ARM template `servicefabricdeploy.json` and its parameters file (`servicefabricdeploy.parameters.json`) to create a Service Fabric cluster environment for Windows Containers.
  6. ## Edit the servicefabricdeploy.parameters.json file
  7. Edit the following params in `servicefabricdeploy.parameters.json` file to set your values:
  8. - clusterName: Name of your SF cluster
  9. - dnsName: Name assigned to your SF dns
  10. - adminUserName: user name for administration
  11. - adminPassword: user password for administration
  12. Optionally, you can modify which ports are opened in the LoadBalancer for accessing externally to the apps:
  13. - webMvcHttpPort: port externally exposed for the WebMVC app
  14. - webSpaHttpPort: port externally exposed for the WebSPA app
  15. - webStatusHttpPort: port externally exposed for the WebStatus app
  16. - IdSrvHttpRule: port externally exposed for the Identity app
  17. ## Deploy the template
  18. Once parameter file is edited you can deploy it using [create-resources script](../readme.md).
  19. i. e. if you are in windows, to deploy sql databases in a new resourcegroup located in westus, go to `deploy\az` folder and type:
  20. ```
  21. create-resources.cmd servicefabric\WindowsContainers\servicefabricdeploy newResourceGroup -c westus
  22. ```
  23. ## Deploy eShopOnServiceFabric with Visual Studio.
  24. Alternatively, instead of using ARM templates, you can deploy eShop on service fabric directly by publishing the project eShopOnServiceFabric in eShopOnContainers-ServicesAndWebApps.sln with Visual Studio publish tool.
  25. # Deploying Azure Service Fabric (Secured)
  26. The ARM template `servicefabricdeploysecured.json` and its parameter file (`servicefabricdeploysecured.parameters.json`) are used to create a service fabric cluster environment for windows containers secured with a certificate.
  27. ## Create Azure Keyvault service
  28. Go to PortalAzure and create a Keyvault service. Make sure Enable access for deployment checkboxes are selected.
  29. <img src="../../../../img/sf/create-kv.PNG">
  30. ## Generate a certificate in Azure Keyvault
  31. Execute the gen-keyvaultcert.ps1 script to generate and download a certificate from Keyvault.
  32. ```
  33. .\gen-keyvaultcert.ps1 -vaultName <your_keyvault_service> -certName <your_cert_name> -certPwd <your_cert_pwd> -subjectName CN=<your_sf_dns_name>.westeurope.cloudapp.azure.com -saveDir C:\Users\<user>\Downloads
  34. ```
  35. ## Install the certificate
  36. Install the certificate under 'Current User' store location and check it as exportable.
  37. <img src="../../../../img/sf/install-cert.PNG">
  38. ## Editing servicefabricdeploysecured.parameters.json file
  39. Edit the following params in `servicefabricdeploysecured.parameters.json` file to set your values:
  40. - clusterName: Name of your SF cluster
  41. - dnsName: Name assigned to your SF dns
  42. - adminUserName: user name for administration
  43. - adminPassword: user password for administration
  44. - sourceVaultValue: keyvault resource id (check azure keyvault properties)
  45. - certificateUrlValue: certificate url (check azure Keyvault certificate properties)
  46. - certificateThumbprint: certificate thumbprint (check azure Keyvault certificate properties)
  47. Optionally, you can modify which ports are opened in the LoadBalancer for accessing externally to the apps:
  48. - webMvcHttpPort: port externally exposed for the WebMVC app
  49. - webSpaHttpPort: port externally exposed for the WebSPA app
  50. - webStatusHttpPort: port externally exposed for the WebStatus app
  51. - IdSrvHttpRule: port externally exposed for the Identity app
  52. ## Deploy the template
  53. Once parameter file is edited you can deploy it using [create-resources script](../readme.md).
  54. ```
  55. create-resources.cmd servicefabric\WindowsContainers\servicefabricdeploysecured newResourceGroup -c westus
  56. ```
  57. ## Deploy eShopOnServiceFabric with Visual Studio.
  58. Modify the cloud.xml file of each Service Fabric application in PublishProfile directory and set your certificate settings to be able to deploy eshopOnContainers in the secured cluster:
  59. <img src="../../../../img/sf/cloud_publishProfile.PNG">