330 lines
12 KiB
Markdown
330 lines
12 KiB
Markdown
---
|
||
tags:
|
||
- upnote-import
|
||
---
|
||
|
||
# Koogle-Deployment auf Azure
|
||
|
||
[https://KoogleWeb20251231130827.azurewebsites.net](https://KoogleWeb20251231130827.azurewebsites.net)
|
||
|
||
Diagnose: [https://koogleweb20251231130827-hdf7bmewhka0hsdd.scm.westeurope-01.azurewebsites.net/detectors](https://koogleweb20251231130827-hdf7bmewhka0hsdd.scm.westeurope-01.azurewebsites.net/detectors)
|
||
|
||
Web-Tools: [Azure App Service](https://koogleweb20251231130827-hdf7bmewhka0hsdd.scm.westeurope-01.azurewebsites.net/newui)
|
||
|
||
# Subscription-ID:
|
||
|
||
<br>
|
||
|
||
f1332eb1-392f-4b16-9ede-7905848ef248
|
||
|
||
admin-d-chrka als Contributor eingerichtet
|
||
|
||
<br>
|
||
|
||
```
|
||
az ad signed-in-user show
|
||
```
|
||
|
||
> {
|
||
> ["@odata.context":](mailto:"@odata.context":) "[https://graph.microsoft.com/v1.0/$metadata#users/$entity](https://graph.microsoft.com/v1.0/$metadata#users/$entity)",
|
||
> "businessPhones": \[\],
|
||
> "displayName": "Admin D-Chrka",
|
||
> "givenName": "Admin",
|
||
> "id": "70f83097-e12a-48a6-96b4-15760268c994",
|
||
> "jobTitle": null,
|
||
> "mail": null,
|
||
> "mobilePhone": null,
|
||
> "officeLocation": null,
|
||
> "preferredLanguage": null,
|
||
> "surname": "D-Chrka",
|
||
> "userPrincipalName": ["Admin-D-Chrka@krah-gruppe.de"](mailto:"Admin-D-Chrka@krah-gruppe.de")
|
||
> }
|
||
|
||
Azure CLI installieren, [Installieren der Azure CLI unter Windows | Microsoft Learn](https://learn.microsoft.com/de-de/cli/azure/install-azure-cli-windows?view=azure-cli-latest&pivots=msi-powershell)
|
||
|
||
Resource group:
|
||
|
||
> {
|
||
> "id": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourceGroups/rg-koogle-prod",
|
||
> "location": "westeurope",
|
||
> "managedBy": null,
|
||
> "name": "rg-koogle-prod",
|
||
> "properties": {
|
||
> "provisioningState": "Succeeded"
|
||
> },
|
||
> "tags": null,
|
||
> "type": "Microsoft.Resources/resourceGroups"
|
||
> }
|
||
|
||
App Service Plan (Linux, B1 reicht meist für wenige User)
|
||
|
||
> {
|
||
> "asyncScalingEnabled": false,
|
||
> "elasticScaleEnabled": false,
|
||
> "freeOfferExpirationTime": "2026-01-30T11:45:50.8",
|
||
> "geoRegion": "West Europe",
|
||
> "hyperV": false,
|
||
> "id": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourceGroups/rg-koogle-prod/providers/Microsoft.Web/serverfarms/asp-koogle-prod",
|
||
> "isCustomMode": false,
|
||
> "isSpot": false,
|
||
> "isXenon": false,
|
||
> "kind": "linux",
|
||
> "location": "westeurope",
|
||
> "maximumElasticWorkerCount": 1,
|
||
> "maximumNumberOfWorkers": 0,
|
||
> "name": "asp-koogle-prod",
|
||
> "numberOfSites": 0,
|
||
> "numberOfWorkers": 1,
|
||
> "perSiteScaling": false,
|
||
> "provisioningState": "Succeeded",
|
||
> "reserved": true,
|
||
> "resourceGroup": "rg-koogle-prod",
|
||
> "sku": {
|
||
> "capacity": 1,
|
||
> "family": "B",
|
||
> "name": "B1",
|
||
> "size": "B1",
|
||
> "tier": "Basic"
|
||
> },
|
||
> "status": "Ready",
|
||
> "subscription": "f1332eb1-392f-4b16-9ede-7905848ef248",
|
||
> "targetWorkerCount": 0,
|
||
> "targetWorkerSizeId": 0,
|
||
> "type": "Microsoft.Web/serverfarms",
|
||
> "zoneRedundant": false
|
||
> }
|
||
|
||
az webapp identity assign -g $RgName -n $WebAppName
|
||
|
||
$principalId = az webapp show -g $RgName -n $WebAppName --query identity.principalId -o tsv
|
||
|
||
> {
|
||
>
|
||
> "principalId": "bebabb0b-1f5e-4917-bdde-7bbb70139248",
|
||
> "tenantId": "94cf90d7-e9ff-49a1-bc3b-a5b94d3cc8ca",
|
||
> "type": "SystemAssigned",
|
||
> "userAssignedIdentities": null
|
||
> }
|
||
|
||
## SQL-Server
|
||
|
||
az sql server create -g $RgName -n $SqlServerName -l $Location -u "sqladmin" -p (New-Guid).Guid
|
||
|
||
> {
|
||
> "administratorLogin": "sqladmin",
|
||
> "administratorLoginPassword": null,
|
||
> "administrators": null,
|
||
> "createMode": null,
|
||
> "externalGovernanceStatus": "Disabled",
|
||
> "federatedClientId": null,
|
||
> "fullyQualifiedDomainName": "sql-koogle-prod.database.windows.net",
|
||
> "id": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourceGroups/rg-koogle-prod/providers/Microsoft.Sql/servers/sql-koogle-prod",
|
||
> "identity": null,
|
||
> "isIPv6Enabled": null,
|
||
> "keyId": null,
|
||
> "kind": "v12.0",
|
||
> "location": "westeurope",
|
||
> "minimalTlsVersion": "1.2",
|
||
> "name": "sql-koogle-prod",
|
||
> "primaryUserAssignedIdentityId": null,
|
||
> "privateEndpointConnections": \[\],
|
||
> "publicNetworkAccess": "Enabled",
|
||
> "resourceGroup": "rg-koogle-prod",
|
||
> "restrictOutboundNetworkAccess": "Disabled",
|
||
> "retentionDays": -1,
|
||
> "state": "Ready",
|
||
> "tags": null,
|
||
> "type": "Microsoft.Sql/servers",
|
||
> "version": "12.0",
|
||
> "workspaceFeature": null
|
||
> }
|
||
|
||
```
|
||
az sql server update `
|
||
-g $RgName `
|
||
-n $SqlServerName `
|
||
--admin-password "Magister7000#"
|
||
```
|
||
|
||
Anmeldung im Azure-Portal muss als admin-d-chrka erfolgen
|
||
|
||
dann User per SQL anlegen:
|
||
|
||
```
|
||
CREATE USER [KoogleWeb20251231130827] FROM EXTERNAL PROVIDER;
|
||
ALTER ROLE db_datareader ADD MEMBER [KoogleWeb20251231130827];
|
||
ALTER ROLE db_datawriter ADD MEMBER [KoogleWeb20251231130827];
|
||
```
|
||
|
||
## SQL-DB
|
||
|
||
az sql db create -g $RgName -s $SqlServerName -n $SqlDbName --service-objective S0
|
||
|
||
> {
|
||
> "autoPauseDelay": null,
|
||
> "availabilityZone": "NoPreference",
|
||
> "catalogCollation": "SQL\_Latin1\_General\_CP1\_CI\_AS",
|
||
> "collation": "SQL\_Latin1\_General\_CP1\_CI\_AS",
|
||
> "createMode": null,
|
||
> "creationDate": "2025-12-31T12:42:38+00:00",
|
||
> "currentBackupStorageRedundancy": "Geo",
|
||
> "currentServiceObjectiveName": "S0",
|
||
> "currentSku": {
|
||
> "capacity": 10,
|
||
> "family": null,
|
||
> "name": "Standard",
|
||
> "size": null,
|
||
> "tier": "Standard"
|
||
> },
|
||
> "databaseId": "f3dcbbb9-8a40-4e02-b40c-a8fc4991c04b",
|
||
> "defaultSecondaryLocation": "northeurope",
|
||
> "earliestRestoreDate": null,
|
||
> "edition": "Standard",
|
||
> "elasticPoolId": null,
|
||
> "elasticPoolName": null,
|
||
> "encryptionProtector": null,
|
||
> "encryptionProtectorAutoRotation": null,
|
||
> "failoverGroupId": null,
|
||
> "federatedClientId": null,
|
||
> "freeLimitExhaustionBehavior": null,
|
||
> "highAvailabilityReplicaCount": null,
|
||
> "id": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourceGroups/rg-koogle-prod/providers/Microsoft.Sql/servers/sql-koogle-prod/databases/db-koogle",
|
||
> "identity": null,
|
||
> "isInfraEncryptionEnabled": false,
|
||
> "keys": null,
|
||
> "kind": "v12.0,user",
|
||
> "ledgerOn": false,
|
||
> "licenseType": null,
|
||
> "location": "westeurope",
|
||
> "longTermRetentionBackupResourceId": null,
|
||
> "maintenanceConfigurationId": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL\_Default",
|
||
> "managedBy": null,
|
||
> "manualCutover": null,
|
||
> "maxLogSizeBytes": null,
|
||
> "maxSizeBytes": 268435456000,
|
||
> "minCapacity": null,
|
||
> "name": "db-koogle",
|
||
> "pausedDate": null,
|
||
> "performCutover": null,
|
||
> "preferredEnclaveType": null,
|
||
> "readScale": "Disabled",
|
||
> "recoverableDatabaseId": null,
|
||
> "recoveryServicesRecoveryPointId": null,
|
||
> "requestedBackupStorageRedundancy": "Geo",
|
||
> "requestedServiceObjectiveName": "S0",
|
||
> "resourceGroup": "rg-koogle-prod",
|
||
> "restorableDroppedDatabaseId": null,
|
||
> "restorePointInTime": null,
|
||
> "resumedDate": null,
|
||
> "sampleName": null,
|
||
> "secondaryType": null,
|
||
> "sku": {
|
||
> "capacity": 10,
|
||
> "family": null,
|
||
> "name": "Standard",
|
||
> "size": null,
|
||
> "tier": "Standard"
|
||
> },
|
||
> "sourceDatabaseDeletionDate": null,
|
||
> "sourceDatabaseId": null,
|
||
> "sourceResourceId": null,
|
||
> "status": "Online",
|
||
> "tags": null,
|
||
> "type": "Microsoft.Sql/servers/databases",
|
||
> "useFreeLimit": null,
|
||
> "zoneRedundant": false
|
||
> }
|
||
|
||
### SQL-Admin
|
||
|
||
az sql server ad-admin create \`
|
||
|
||
-g $RgName -s $SqlServerName \`
|
||
|
||
--display-name $AadAdminDisplay \`
|
||
|
||
--object-id $AadAdminObjectId
|
||
|
||
> {
|
||
> "administratorType": "ActiveDirectory",
|
||
> "azureAdOnlyAuthentication": null,
|
||
> "id": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourceGroups/rg-koogle-prod/providers/Microsoft.Sql/servers/sql-koogle-prod/administrators/ActiveDirectory",
|
||
> "login": "Admin D-Chrka",
|
||
> "name": "ActiveDirectory",
|
||
> "resourceGroup": "rg-koogle-prod",
|
||
> "sid": "70f83097-e12a-48a6-96b4-15760268c994",
|
||
> "tenantId": "94cf90d7-e9ff-49a1-bc3b-a5b94d3cc8ca",
|
||
> "type": "Microsoft.Sql/servers"
|
||
> }
|
||
|
||
### Zugriff auf SQL vom NB erlauben
|
||
|
||
```
|
||
# Firewall-Regel für dein Notebook (lokaler Zugriff/Tools wie DataGrip)
|
||
$myIp = (Invoke-RestMethod -Uri "https://api.ipify.org")
|
||
az sql server firewall-rule create -g $RgName -s $SqlServerName -n "allow-notebook" --start-ip-address $myIp --end-ip-address $myIp
|
||
```
|
||
|
||
> {
|
||
> "endIpAddress": "91.63.233.49",
|
||
> "id": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourceGroups/rg-koogle-prod/providers/Microsoft.Sql/servers/sql-koogle-prod/firewallRules/allow-notebook",
|
||
> "name": "allow-notebook",
|
||
> "resourceGroup": "rg-koogle-prod",
|
||
> "startIpAddress": "91.63.233.49",
|
||
> "type": "Microsoft.Sql/servers/firewallRules"
|
||
> }
|
||
|
||
[https://portal.azure.com/#@krahgruppe.onmicrosoft.com/resource/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourcegroups/rg-koogle-prod/providers/microsoft.sql/servers/sql-koogle-prod/networking](https://portal.azure.com/#@krahgruppe.onmicrosoft.com/resource/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourcegroups/rg-koogle-prod/providers/microsoft.sql/servers/sql-koogle-prod/networking)
|
||
|
||
<br>
|
||
|
||
## App Insights
|
||
|
||
az monitor app-insights component create -g $RgName -l $Location -a $AppInsightsName
|
||
|
||
> {- Installing ..
|
||
> "appId": "0490e6aa-f192-4fe9-aefb-0ad9ff66d08c",
|
||
> "applicationId": "ai-koogle-prod",
|
||
> "applicationType": "web",
|
||
> "connectionString": "InstrumentationKey=b3f53de2-82d7-4149-a468-dbdc486b919c;IngestionEndpoint=[https://westeurope-5.in.applicationinsights.azure.com/;LiveEndpoint=https://westeurope.livediagnostics.monitor.azure.com/;ApplicationId=0490e6aa-f192-4fe9-aefb-0ad9ff66d08c](https://westeurope-5.in.applicationinsights.azure.com/;LiveEndpoint=https://westeurope.livediagnostics.monitor.azure.com/;ApplicationId=0490e6aa-f192-4fe9-aefb-0ad9ff66d08c)",
|
||
> "creationDate": "2025-12-31T12:47:36.840819+00:00",
|
||
> "disableIpMasking": null,
|
||
> "etag": "\\"a402a9ef-0000-0200-0000-69551b6e0000\\"",
|
||
> "flowType": "Bluefield",
|
||
> "hockeyAppId": null,
|
||
> "hockeyAppToken": null,
|
||
> "id": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourceGroups/rg-koogle-prod/providers/microsoft.insights/components/ai-koogle-prod",
|
||
> "immediatePurgeDataOn30Days": null,
|
||
> "ingestionMode": "LogAnalytics",
|
||
> "instrumentationKey": "b3f53de2-82d7-4149-a468-dbdc486b919c",
|
||
> "kind": "web",
|
||
> "location": "westeurope",
|
||
> "name": "ai-koogle-prod",
|
||
> "privateLinkScopedResources": null,
|
||
> "provisioningState": "Succeeded",
|
||
> "publicNetworkAccessForIngestion": "Enabled",
|
||
> "publicNetworkAccessForQuery": "Enabled",
|
||
> "requestSource": "rest",
|
||
> "resourceGroup": "rg-koogle-prod",
|
||
> "retentionInDays": 90,
|
||
> "samplingPercentage": null,
|
||
> "tags": {},
|
||
> "tenantId": "f1332eb1-392f-4b16-9ede-7905848ef248",
|
||
> "type": "microsoft.insights/components"
|
||
> }
|
||
|
||
```
|
||
$ikey = az monitor app-insights component show -g $RgName -a $AppInsightsName --query instrumentationKey -o tsv
|
||
```
|
||
|
||
KEY: b3f53de2-82d7-4149-a468-dbdc486b919c
|
||
|
||
### Settings Web-App
|
||
|
||
```
|
||
az webapp config appsettings set -g $RgName -n $WebAppName --settings `
|
||
ASPNETCORE_ENVIRONMENT=Production `
|
||
APPINSIGHTS_INSTRUMENTATIONKEY=$ikey `
|
||
WEBSITE_RUN_FROM_PACKAGE=1
|
||
```
|