Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AzureMysqlDeploymentV1] Switch to Node16_225 build config #18635

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
dd4156b
Introduce Node16-225 for buildconfig
DmitriiBobreshev Jun 27, 2023
9cbc2cb
Introduce Node16-225 for buildconfig
DmitriiBobreshev Jun 27, 2023
ce9622b
Generated AzureMysqlDeploymentV1 with Node16_225 build config
aleksandrlevochkin Jul 13, 2023
e3e074c
Merge
aleksandrlevochkin Jul 17, 2023
788f1a1
Resolved merging conflicts
aleksandrlevochkin Jul 17, 2023
c75b524
Merge branch 'master' of https://github.com/microsoft/azure-pipelines…
aleksandrlevochkin Jul 19, 2023
8d5b2c4
Merge branch 'master' of https://github.com/microsoft/azure-pipelines…
aleksandrlevochkin Jul 19, 2023
0640807
Resolve conflicts
aleksandrlevochkin Jul 19, 2023
46360c5
Update build config
aleksandrlevochkin Jul 19, 2023
42679c8
Override make.json
aleksandrlevochkin Jul 19, 2023
2604ec9
Increase version
aleksandrlevochkin Jul 19, 2023
4c6f2bc
Add tasks to make-options to avoid potential conflicts
aleksandrlevochkin Jul 19, 2023
d27325b
Merge branch 'master' of https://github.com/microsoft/azure-pipelines…
aleksandrlevochkin Jul 19, 2023
c1e3293
Resolve conflicts and modify make-options file in order to avoid pote…
aleksandrlevochkin Jul 19, 2023
42d4c12
Merge branch 'master' of https://github.com/microsoft/azure-pipelines…
aleksandrlevochkin Jul 25, 2023
5663759
Merge branch 'master' into users/levochkin/migrate-azure-mysql-deploy…
aleksandrlevochkin Jul 25, 2023
9dfdb68
Fix agent base location in make.json
aleksandrlevochkin Jul 25, 2023
d4e6a1f
Updated version
aleksandrlevochkin Jul 25, 2023
d900c1e
Merge branch 'master' of https://github.com/microsoft/azure-pipelines…
aleksandrlevochkin Jul 26, 2023
ba5e183
Resolve conflicts
aleksandrlevochkin Jul 26, 2023
a6d6fe2
Merge branch 'master' into users/levochkin/migrate-azure-mysql-deploy…
aleksandrlevochkin Jul 27, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Place files overridden for this config in this directory
12 changes: 12 additions & 0 deletions Tasks/AzureMysqlDeploymentV1/_buildConfigs/Node16/make.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"rm": [
{
"items": [
"node_modules/azure-pipelines-tasks-azure-arm-rest/node_modules/azure-pipelines-task-lib",
"node_modules/azure-pipelines-tasks-webdeployment-common/node_modules/azure-pipelines-task-lib",
"node_modules/https-proxy-agent/node_modules/agent-base"
],
"options": "-Rf"
}
]
}
1,073 changes: 1,073 additions & 0 deletions Tasks/AzureMysqlDeploymentV1/_buildConfigs/Node16/package-lock.json

Large diffs are not rendered by default.

40 changes: 40 additions & 0 deletions Tasks/AzureMysqlDeploymentV1/_buildConfigs/Node16/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"name": "vsts-tasks-azuremysql",
"version": "1.0.3",
"description": "Azure Pipelines Azure MySQL",
"main": "azuremysqldeploy.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git"
},
"author": "Microsoft Corporation",
"license": "MIT",
"bugs": {
"url": "https://github.com/Microsoft/azure-pipelines-tasks/issues"
},
"homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme",
"dependencies": {
"@types/mocha": "^5.2.7",
"@types/node": "^16.11.39",
"@types/q": "1.0.7",
"agent-base": "^6.0.2",
"azure-pipelines-task-lib": "^4.4.0",
"azure-pipelines-tasks-azure-arm-rest": "^3.223.4",
"azure-pipelines-tasks-webdeployment-common": "^4.222.0",
"compress-commons": "1.1.0",
"crc32-stream": "1.0.0",
"moment": "^2.29.4",
"normalize-path": "2.0.1",
"q": "1.4.1",
"semver": "5.4.1",
"tar-stream": "1.5.2",
"winreg": "1.2.2",
"zip-stream": "1.1.0"
},
"devDependencies": {
"typescript": "4.0.2"
}
}
450 changes: 225 additions & 225 deletions Tasks/AzureMysqlDeploymentV1/task.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion Tasks/AzureMysqlDeploymentV1/task.loc.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
"Minor": 225,
"Minor": 226,
"Patch": 1
},
"demands": [],
Expand Down
2 changes: 2 additions & 0 deletions _generated/AzureMysqlDeploymentV1.versionmap.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Default|1.226.1
Node16-225|1.226.0
99 changes: 99 additions & 0 deletions _generated/AzureMysqlDeploymentV1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# Azure Database for MySQL Deployment


### Overview:

The task is used to deploy for deploying to Azure Database for MySQL – Azure’s MySQL DB as a service. There are two ways to deploy, either using a script file or writing the script in our inline editor.


### Contact Information

Please report a problem at [Developer Community Forum](https://developercommunity.visualstudio.com/spaces/21/index.html) if you are facing problems in making this task work. You can also share feedback about the task like, what more functionality should be added to the task, what other tasks you would like to have, at the same place.


### Pre-requisites for the task
The following pre-requisites need to be setup for the task to work properly.


##### Azure Subscription

To deploy to Azure Database for MySQL, an Azure subscription has to be linked to Team Foundation Server or to Azure DevOps using the Service connections tab in the settings section. Add the Azure subscription to use in the Build or Release Management definition by opening the Account Administration screen (gear icon on the top-right of the screen) and then click on the Services Tab.
Use 'Azure Resource Manager'([ARM](https://azure.microsoft.com/en-in/documentation/articles/resource-group-overview/)) endpoint type; for more details follow the steps listed in the link [here](https://go.microsoft.com/fwlink/?LinkID=623000&clcid=0x409).



##### Azure Database for MySQL resource
This tasks expects that the Azure resource for [Azure Database for MySQL](https://docs.microsoft.com/en-us/azure/mysql/overview) is already available in the [Azure portal](https://ms.portal.azure.com/?r=1#create/Microsoft.SQLDatabase.0.5.7-preview). The task can create a new database along with other MySQL commands but doesn't create the server.

##### MySQL Client in agent box
This task expects MySQL client must be in agent box
- **Window Agent:** Use this [script file](https://aka.ms/window-mysqlcli-installer) to install MySQL client.
- **Linux Agent:** Run command 'apt-get install mysql-client' to install MySQL client.

### Parameters of the task:
The parameters of the task are described in details, including examples, to show how to input the parameters. The parameters listed with a \* are required parameters for the task:


- **Display name\*:** Provide a name to identify the task among others in your pipeline.


- **Azure subscription\*:** Select the Azure Subscription to connect to the portal where the Azure resource is present.


**DB Details**


- **Host name\*:** Server name of “Azure DB for Mysql”.Example: fabrikam.mysql.database.azure.com. When you connect using MySQL Workbench, this is the same value that is used for "Hostname" in "Parameters".

- **Database name:** The name of database, if you already have one, on which the below script is needed to be run, else the script itself can be used to create the database.

- **Server admin login\*:** Azure Database for MySQL server supports native MySQL authentication. You can connect and authenticate to a server with the server's admin login. Example: bbo1@fabrikam.
When you connect using MySQL Workbench, this is the same value that is used for "Username" in "Parameters".


- **Password\*:** Administrator password for Azure DB for MySQL. In case you don’t recall the password you can change the password from [Azure portal](https://docs.microsoft.com/en-us/azure/mysql/howto-create-manage-server-portal).



**Deployment Package**


- **Type\*:** Select one of the options between Script File & Inline Script.


**Script file:** Use this option if you have a text file that has the necessary SQL statements to be executed on server.


- **Script path\*:** Full path of the script file on the automation agent or on a UNC path accessible to the automation agent like, \\BudgetIT\DeployBuilds\script.sql. Also, predefined [system variables](https://msdn.microsoft.com/Library/vs/alm/Build/scripts/variables) like, $(agent.releaseDirectory) can also be used here.


- **Additional MySQL options:** Additional options supported by MySQL simple SQL shell. These options will be applied when executing the given file on the Azure DB for MySQL.
Example: You can change to default tab separated output format to HTML or even XML format. Or if you have problems due to insufficient memory for large result sets, use the --quick option.


**Inline script:** Use this option for running the Inline Script against the server.


- **Inline script\*:** Enter the actuall Script to be run.


- **Additional MySQL options:** Additional options supported by MySQL simple SQL shell. These options will be applied when executing the given file on the Azure DB for MySQL.
Example: You can change to default tab separated output format to HTML or even XML format. Or if you have problems due to insufficient memory for large result sets, use the --quick option.



**Firewall**


- **Specify firewall rules using\*** : For successful execution of the task, we need to enable administrators to access the Azure Database for MySQL Server from the IP Address of the automation agent.
By selecting auto-detect you can automatically add firewall exception for range of possible IP Address of automation agent
or else you can specify the range explicitly.


- **Start IP address\*:** The starting IP Address of the automation agent machine pool like 196.21.30.50.


- **End IP address\*:** The ending IP Address of the automation agent machine pool like 196.21.30.65.


- **Delete rule after task ends\*:** If selected, the added exception for IP addresses of the automation agent will be removed for corresponding Azure Database for MySQL.
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
{
"loc.friendlyName": "Azure Database for MySQL-Bereitstellung",
"loc.helpMarkDown": "[Weitere Informationen zu dieser Aufgabe](https://aka.ms/mysqlazuredeployreadme)",
"loc.description": "Hiermit werden Skripts ausgeführt und Änderungen an Ihrer Azure Database for MySQL-Instanz vorgenommen.",
"loc.instanceNameFormat": "Azure MySQL ausführen: $(TaskNameSelector)",
"loc.group.displayName.target": "DB-Details",
"loc.group.displayName.taskDetails": "Bereitstellungspaket",
"loc.group.displayName.firewall": "Firewall",
"loc.input.label.ConnectedServiceName": "Azure-Abonnement",
"loc.input.help.ConnectedServiceName": "Dies ist erforderlich, um eine Verbindung mit Ihrem Azure-Konto herzustellen.<br>Wählen Sie zum Konfigurieren einer neuen Dienstverbindung das Azure-Abonnement aus der Liste aus, und klicken Sie auf \"Autorisieren\". <br>Wenn Ihr Abonnement nicht aufgeführt ist oder Sie einen vorhandenen Dienstprinzipal verwenden möchten, können Sie über die Schaltfläche \"Hinzufügen\" oder \"Verwalten\" eine Azure-Dienstverbindung einrichten.",
"loc.input.label.ServerName": "Hostname",
"loc.input.help.ServerName": "Der Servername von Azure Database for MySQL. Beispiel: fabrikam.mysql.database.azure.com. Beim Herstellen einer Verbindung mit MySQL Workbench ist dies der gleiche Wert, der unter \"Parameter\" für \"Hostname\" verwendet wird.",
"loc.input.label.DatabaseName": "Datenbankname",
"loc.input.help.DatabaseName": "Der Name der Datenbank (falls bereits vorhanden), für die das unten aufgeführte Skript ausgeführt werden soll. Andernfalls kann das Skript selbst zum Erstellen der Datenbank verwendet werden.",
"loc.input.label.SqlUsername": "Serveradministratoranmeldung",
"loc.input.help.SqlUsername": "Azure-Datenbank für MySQL-Server unterstützt native MySQL-Authentifizierung. Sie können mit der Administratoranmeldung des Servers eine Verbindung mit einem Server herstellen und sich authentifizieren. Beispiel: bbo1@fabrikam. Beim Herstellen einer Verbindung mit MySQL Workbench ist dies der gleiche Wert, der für \"Username\" in \"Parameters\" verwendet wird.",
"loc.input.label.SqlPassword": "Kennwort",
"loc.input.help.SqlPassword": "Das Administratorkennwort für Azure Database for MySQL. Wenn Sie das Kennwort vergessen haben, können Sie das Kennwort im [Azure-Portal](https://docs.microsoft.com/de-de/azure/mysql/howto-create-manage-server-portal) ändern.<br>Es kann als Variable in der Definition definiert werden. Beispiel: $(password).<br>Darüber hinaus können Sie den Variablentyp als \"secret\" markieren, um die Variable abzusichern.",
"loc.input.label.TaskNameSelector": "Typ",
"loc.input.help.TaskNameSelector": "Treffen Sie eine Auswahl zwischen \"Skriptdatei\" und \"Inlineskript\".",
"loc.input.label.SqlFile": "MySQL-Skript",
"loc.input.help.SqlFile": "Der vollständige Pfad der Skriptdatei für den Automations-Agent oder ein UNC-Pfad, auf den der Automations-Agent zugreifen kann, z. B. \\\\\\\\\\\\\\\\BudgetIT\\\\DeployBuilds\\\\script.sql. Hier können auch vordefinierte Systemvariablen wie $(agent.releaseDirectory) verwendet werden. Eine Datei mit SQL-Anweisungen kann hier ebenfalls verwendet werden.",
"loc.input.label.SqlInline": "MySQL-Inlineskript",
"loc.input.help.SqlInline": "Geben Sie das MySQL-Skript ein, das für die oben ausgewählte Datenbank ausgeführt werden soll.",
"loc.input.label.SqlAdditionalArguments": "Zusätzliche MySQL-Argumente",
"loc.input.help.SqlAdditionalArguments": "Zusätzliche Optionen werden von der einfachen SQL-Shell von MySQL unterstützt. Diese Optionen werden angewendet, wenn die angegebene Datei in der Azure Database for MySQL-Instanz ausgeführt wird. <br>Beispiel: Sie können zum separaten Ausgabeformat der Standardregisterkarte, zu HTML oder sogar zum XML-Format wechseln. Wenn aufgrund von unzureichendem Arbeitsspeicher für große Resultsets Probleme auftreten, können Sie auch die Option \"--quick\" verwenden.",
"loc.input.label.IpDetectionMethod": "Firewallregeln angeben mit",
"loc.input.help.IpDetectionMethod": "Damit die Aufgabe erfolgreich ausgeführt wird, müssen Administratoren über die IP-Adresse des Automation-Agents auf den Azure Database for MySQL-Server zugreifen können. <br>Durch Auswahl der automatischen Erkennung können Sie automatisch eine Firewallausnahme für einen Bereich möglicher IP-Adressen des Automation-Agents hinzufügen. Ansonsten können Sie den Bereich auch explizit angeben.",
"loc.input.label.StartIpAddress": "Start-IP-Adresse",
"loc.input.help.StartIpAddress": "Die IP-Startadresse des Computerpools des Automations-Agents, z. B. 196.21.30.50.",
"loc.input.label.EndIpAddress": "End-IP-Adresse",
"loc.input.help.EndIpAddress": "Die IP-Endadresse des Computerpools des Automations-Agents, z. B. 196.21.30.65.",
"loc.input.label.DeleteFirewallRule": "Regel nach Beendigung des Tasks löschen",
"loc.input.help.DeleteFirewallRule": "Ist die Option aktiviert, wird die hinzugefügte Ausnahme für IP-Adressen des Automation-Agents für die entsprechende Azure Database for MySQL-Instanz entfernt.",
"loc.messages.ARGD_ConstructorFailed": "Fehler beim Initialisieren der Aufgabe. Fehler: %s.",
"loc.messages.FirewallRuleNameCannotBeEmpty": "Der Name der Firewallregel darf nicht NULL sein.",
"loc.messages.FirewallAddressRangeCannotBeEmpty": "Die Firewalladresse darf nicht NULL sein.",
"loc.messages.StartIpAddressCannotBeEmpty": "Die IP-Startadresse der Firewallregel darf nicht NULL sein.",
"loc.messages.EndIpAddressCannotBeEmpty": "Die IP-Endadresse der Firewallregel darf nicht NULL sein.",
"loc.messages.MysqlServerNameCannotBeEmpty": "Der MySQL-Servername darf nicht NULL sein.",
"loc.messages.MysqlFullyQualifiedServerNameCannotBeEmpty": "Der vollständig qualifizierte MySQL-Servername darf nicht NULL sein.",
"loc.messages.ResourceGroupCannotBeEmpty": "Der Ressourcengruppenname darf nicht NULL sein.",
"loc.messages.NotAbleToAddFirewallRule": "Fehler beim Hinzufügen der Firewallregel zum MySQL-Server. Fehler: %s .",
"loc.messages.NotAbleToDeleteFirewallRule": "Fehler beim Löschen der Firewallregel vom MySQL-Server. Fehler: %s.",
"loc.messages.AgentIpAddressIsMissingInAddedFirewallRule": "Die Agent-IP-Adresse ist in der manuell hinzugefügten Firewallregel nicht vorhanden.",
"loc.messages.NotAbleToGetAllServers": "Fehler beim Abrufen aller MySQL-Server eines Abonnements. Fehler: %s.",
"loc.messages.EmptyOrNullServerList": "Die MySQL-Serverliste ist leer. Der MySQL-Serverhostname ist ungültig.",
"loc.messages.UnableToFindResourceGroupDueToNullId": "Die Ressourcengruppe wurde aufgrund einer NULL-ID nicht gefunden.",
"loc.messages.UnableToFindResourceGroupDueToInvalidId": "Die Ressourcengruppe wurde aufgrund einer ungültigen ID nicht gefunden.",
"loc.messages.NotAbleToGetInstalledLocationOfMysqlFromPath": "Der MySQL-Client ist auf dem Agent-Computer nicht vorhanden.",
"loc.messages.UnableToFindMysqlFromRegistryOnMachineError": "MySQL wurde anhand der Registrierung nicht auf dem Computer gefunden.",
"loc.messages.UnableToFindMysqlFromRegistry": "MySQL wurde anhand der Registrierung nicht gefunden. Fehler: %s.",
"loc.messages.UnableToFindTheLocationOfMysqlFromRegistryOnMachineError": "Der MySQL-Standort wurde anhand der Registrierung nicht auf dem Computer gefunden. Fehler: %s.",
"loc.messages.AzureMysqlTaskParameterCannotBeEmpty": "Der Azure MySQL-Aufgabenparameter darf nicht NULL sein.",
"loc.messages.ToolPathCannotBeNull": "Der Toolpfad darf nicht NULL sein.",
"loc.messages.SqlExecutionException": "Ausnahme bei der SQL-Ausführung. Überprüfen Sie das SQL-Skript. Fehler: %s.",
"loc.messages.AzureEndpointCannotBeNull": "Ungültiger Abonnementname. Die Azure-Dienstverbindung darf nicht NULL sein.",
"loc.messages.CallbackCannotBeNull": "Der Rückruf darf nicht NULL sein.",
"loc.messages.UnableToCreateDatabaseException": "Die Datenbank kann nicht erstellt werden.",
"loc.messages.WindowMysqlClientMissingError": "Der MySQL-Client ist auf dem Windows-Agent-Computer nicht vorhanden. Installieren Sie ihn durch Ausführen der Skriptdatei \"https://aka.ms/window-mysqlcli-installer\" des MySQL-Clientinstallers auf dem Agent-Computer.",
"loc.messages.LinuxMysqlClientMissingError": "Der MySQL-Client fehlt auf dem Linux-Agent-Computer. Installieren Sie ihn durch Ausführen von \"sudo apt-get install mysql-client\".",
"loc.messages.CouldNotFetchAccessTokenforAzureStatusCode": "Ein Zugriffstoken für Azure konnte nicht abgerufen werden. Statuscode: %s. Statusmeldung: %s",
"loc.messages.CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Für den verwalteten Dienstprinzipal konnte kein Zugriffstoken abgerufen werden. Konfigurieren Sie die verwaltete Dienstidentität (MSI) für die VM, siehe https://aka.ms/azure-msi-docs. Weisen Sie der erstellten MSI-Identität eine Rolle zu, siehe https://aka.ms/assign-role-msi. Statuscode: %s. Statusmeldung: %s",
"loc.messages.CouldNotFetchAccessTokenforMSIStatusCode": "Ein Zugriffstoken für den verwalteten Dienstprinzipal konnte nicht abgerufen werden. Statuscode: %s. Statusmeldung: %s",
"loc.messages.NotAbleToCreateFirewallRule": "Fehler beim Hinzufügen der Firewallregel zum Azure MySQL-Server. Fehler: %s",
"loc.messages.ExpiredServicePrincipal": "Das Zugriffstoken für Azure konnte nicht abgerufen werden. Stellen Sie sicher, dass der verwendete Dienstprinzipal gültig und nicht abgelaufen ist.",
"loc.messages.Nopackagefoundwithspecifiedpattern": "Keine Paketdatei mit dem angegebenen Muster gefunden."
}
Loading