You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Tutorial: Discover Spring Boot applications running in your datacenter (preview)
13
13
14
-
> [!CAUTION]
15
-
> This article references CentOS, a Linux distribution that is nearing End Of Life (EOL) status. Please consider your use and planning accordingly.
16
-
17
14
This article describes how to discover Spring Boot applications running on servers in your datacenter, using Azure Migrate: Discovery and assessment tool. The discovery process is completely agentless; no agents are installed on the target servers.
18
15
19
16
In this tutorial, you learn how to:
@@ -49,6 +46,7 @@ If you don't have an Azure subscription, create a [free account](https://azure.m
- Ensure that you have performed software inventory by providing the server credentials on the appliance configuration manager. [Learn more](how-to-discover-applications.md).
49
+
- Only Migrate projects created with Public endpoint connectivity are supported. Private endpoint projects are not supported.
52
50
53
51
## Set up Kubernetes-based appliance
54
52
@@ -68,20 +66,44 @@ After you have performed server discovery and software inventory using the Azure
68
66
> [!Note]
69
67
> We recommend you choose a Kubernetes cluster with disk encryption for its services. [Learn more](#encryption-at-rest) about encrypting data at rest in Kubernetes.
6. In **Choose an appliance**, you can select one from the following options:
70
+
71
+
- **Install appliance using packaged Kubernetes cluster** - This option is selected by default as it is the recommended approach where the users can use the installer script to download and install a Kubernetes cluster on a Linux server on-premises to set up the appliance.
72
+
- **Bring your own Kubernetes cluster** - You must bring your own Kubernetes cluster running on-premises, connect it to Azure Arc, and use the installer script to set up the appliance.
73
+
72
74
73
-
6. In Step 1: Set up an appliance, select **Bring your own Kubernetes cluster** - You must bring your own Kubernetes cluster running on-premises, connect it to Azure Arc and use the installer script to set up the appliance.
75
+
#### [Install appliance using packaged Kubernetes cluster (recommended)](#tab/K8-package)
74
76
75
-
#### Bring your own Kubernetes cluster
77
+
1. In **Provide appliance details for Azure Migrate**, the appliance name is pre-populated, but you can choose to provide your own friendly name to the appliance.
76
78
77
-
1. In **Step 2: Choose connected cluster**, you need to select an existing Azure Arc connected cluster from your subscription. If you do not have an existing connected cluster, you can Arc enable a Kubernetes cluster running on-premises by following the steps [here](../azure-arc/kubernetes/quickstart-connect-cluster.md?tabs=azure-cli).
79
+
:::image type="content" source="./media/tutorial-discover-spring-boot/packaged-cluster-inline.png" alt-text="Screenshot that shows the Install appliance using packaged Kubernetes cluster option selected." lightbox="./media/tutorial-discover-spring-boot/packaged-cluster-expanded.png":::
80
+
81
+
82
+
2. Select a Key Vault from the drop-down or **Create new** Key vault. This Key Vault is used to process the credentials provided in the project to start discovery of Spring Boot applications.
78
83
79
84
> [!Note]
80
-
> You can only select an existing connected cluster, deployed in the same region as that of your Azure Migrate project.
85
+
> The Key Vault can be chosen or created in the same subscription and region as that of the Azure Migrate Project. When creating/selecting KV, make sure it does not have purge protection enabled else there be issues in processing of credentials through the Key Vault.
86
+
87
+
3. After providing the appliance name and Key Vault, select **Generate script** to generate an installer script that you can copy and paste on a Linux server on-premises. Before executing the script, ensure that you meet the following prerequisites on the Linux server:
88
+
89
+
**Support** | **Details**
90
+
---- | ----
91
+
**Supported Linux OS** | Ubuntu 20.04, RHEL 9
92
+
**Hardware configuration required** | 8 GB RAM, with 30 GB storage, 4 Core CPU
93
+
**Network Requirements** | Access to the following endpoints: <br/><br/>*.docker.io <br/></br>*.docker.com <br/><br/>api.snapcraft.io <br/><br/> https://dc.services.visualstudio.com/v2/track <br/><br/> [Azure Arc-enabled Kubernetes network requirements](https://learn.microsoft.com/azure/azure-arc/kubernetes/network-requirements?tabs=azure-cloud) <br/><br/>[Azure CLI endpoints for proxy bypass](https://learn.microsoft.com/cli/azure/azure-cli-endpoints?tabs=azure-cloud)
94
+
95
+
After copying the script, you can go to your Linux server, save the script as *Deploy.sh* on the server.
96
+
97
+
#### [Bring your own Kubernetes cluster](#tab/K8-byoc)
98
+
99
+
1. In **Choose connected cluster**, you need to select an existing Azure Arc connected cluster from your subscription. If you don't have an existing connected cluster, you can Arc enable a Kubernetes cluster running on-premises by following the steps [here](../azure-arc/kubernetes/quickstart-connect-cluster.md?tabs=azure-cli).
100
+
101
+
> [!Note]
102
+
> You can only select an existing connected cluster that's deployed in the same region as your Azure Migrate project.
81
103
82
104
:::image type="content" source="./media/tutorial-discover-spring-boot/choose-cluster-inline.png" alt-text="Screenshot displays Choose cluster option in the Onboard Kubernetes appliance screen." lightbox="./media/tutorial-discover-spring-boot/choose-cluster-expanded.png":::
83
105
84
-
2. In Step 3: Provide appliance details for Azure Migrate, the appliance name is prepopulated, but you can choose to provide your own friendly name to the appliance.
106
+
2. In **Provide appliance details for Azure Migrate**, the appliance name is prepopulated, but you can choose to provide your own friendly name to the appliance.
85
107
86
108
3. You can select a Key Vault from the drop-down or **Create new** Key Vault. This Key Vault is used to process the credentials provided in the project to start discovery of Spring Boot applications.
87
109
@@ -94,13 +116,14 @@ After you have performed server discovery and software inventory using the Azure
94
116
---- | ----
95
117
**Supported Linux OS** | Ubuntu 20.04, RHEL 9
96
118
**Hardware configuration required** | 6 GB RAM, with 30 GB storage on root volume, 4 Core CPU
97
-
**Network Requirements** | Access to the following endpoints: <br/><br/> https://dc.services.visualstudio.com/v2/track <br/><br/> [Azure CLI endpoints for proxy bypass](/cli/azure/azure-cli-endpoints?tabs=azure-cloud)
119
+
**Network Requirements** | Access to the following endpoints: <br/><br/> https://dc.services.visualstudio.com/v2/track <br/><br/> [Azure CLI endpoints for proxy bypass](https://learn.microsoft.com/cli/azure/azure-cli-endpoints?tabs=azure-cloud)
98
120
99
121
5. After copying the script, go to your Linux server, save the script as *Deploy.sh* on the server.
122
+
---
100
123
101
-
####Connect using an outbound proxy server
124
+
### Connect using an outbound proxy server
102
125
If your machine is behind an outbound proxy server, requests must be routed via the outbound proxy server. Follow these steps to provide proxy settings:
103
-
1. Open the terminal on the server and execute the following command setup environment variables as a root user:
126
+
1. Open the terminal on the server and execute the following command to set up environment variables as a root user:
104
127
`sudo su -`
105
128
2. On the deployment machine, set the environment variables needed for `deploy.sh` to use the outbound proxy server:
106
129
```
@@ -114,9 +137,40 @@ If your machine is behind an outbound proxy server, requests must be routed via
114
137
> [!Note]
115
138
> The machine uses proxy details while installing the required prerequisites to run the `deploy.sh` script . It won't override the proxy settings of the Azure Arc-enabled Kubernetes cluster.
After you have saved the script on the Linux server, follow these steps:
144
+
After you save the script on the Linux server, follow these steps:
145
+
146
+
> [!Note]
147
+
> This script needs to be run after you connect to a Linux machine on its terminal that has met the networking pre-requisite and OS compatibility.
148
+
> Ensure that you have curl installed on the server. For Ubuntu, you can install it using the command `sudo apt-get install curl`, and for other OS (RHEL/Centos), you can use the command `yum install curl`.
149
+
150
+
> [!Important]
151
+
> Don't edit the script unless you want to clean up the setup.
152
+
153
+
1. Open the Terminal on the server and execute the following command to execute the script as a root user:
154
+
`sudo su -`
155
+
156
+
1. Change the directory to where you saved the script and execute the script using command: `bash deploy.sh`
157
+
158
+
1. Follow the instructions in the script and sign in with your Azure user account when prompted.
159
+
160
+
1. The script performs the following steps:
161
+
162
+
1. Installing required CLI extensions.
163
+
2. Registering Azure Resource Providers
164
+
3. Checking for prerequisites like connectivity to required endpoints
165
+
4. Setting up MicroK8s Kubernetes cluster
166
+
5. Installing the required operators on the cluster
167
+
6. Creating the required Migrate resources
168
+
169
+
1. After the script is executed successfully, configure the appliance through the portal.
170
+
171
+
#### [Bring your own cluster](#tab/K8-byoc)
172
+
173
+
After you save the script on the Linux server, follow these steps:
120
174
121
175
> [!Note]
122
176
> - This script needs to be run after you connect to a Linux machine on its terminal that meets the networking prerequisites and OS compatibility.
@@ -125,36 +179,41 @@ After you have saved the script on the Linux server, follow these steps:
125
179
> [!Important]
126
180
> Don't edit the script unless you want to clean up the setup.
127
181
128
-
129
182
1. Open the terminal on the server and execute the following command to execute the script as a root user:
130
183
`sudo su -`
131
-
2. Change directory to where you have saved the script and execute the script using the `bash deploy.sh` command.
132
-
3. Follow the instructions in the script and sign in with your Azure user account when prompted.
133
-
4. The script performs the following steps:
184
+
1. Navigate to the directory where you saved the script and execute the script using the `bash deploy.sh` command.
185
+
186
+
1. Follow the instructions in the script and sign in with your Azure user account when prompted.
187
+
188
+
1. The script performs the following steps:
189
+
134
190
1. Installing required CLI extensions.
135
191
2. Registering Azure Resource Providers.
136
192
3. Checking for prerequisites like connectivity to required endpoints.
137
193
5. Installing the required operators on the cluster.
138
194
6. Creating the required Migrate resources.
139
195
140
-
After the script is executed successfully, configure the appliance through the portal.
196
+
1. After the script is executed successfully, configure the appliance through the portal.
197
+
---
141
198
142
-
#####Reinstallation
199
+
### Reinstallation
143
200
144
-
If you encounter any issue during script execution, you need to run the script in *delete* mode by adding the following after line #19 in the `deploy.sh` script:
201
+
> [!NOTE]
202
+
> If you encounter any issue during script execution, you need to re-run the script and it would resume from last successful state. In case you want to perform a complete fresh install, see [cleanup of setup](#cleanup-of-setup) details before you re-run the script.
The *delete* mode helps to clean up any existing components installed on the server so that you can do a fresh installation. After running the script in *delete* mode, remove the line from the script and execute it again in the default mode.
208
+
As you are setting a packaged appliance, we would have shared responsibility to ensure that the secrets are secured.
209
+
- We recommend you choose a Linux VM with disk encryption for its services.
151
210
152
-
##Encryption at rest
211
+
#### [Bring your own Kubernetes cluster](#tab/encrypt-rest)
153
212
154
213
As you're bringing your own Kubernetes cluster, there's a shared responsibility to ensure that the secrets are secured.
155
214
- We recommend you choose a Kubernetes cluster with disk encryption for its services.
156
215
-[Learn more](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/) about encrypting data at rest in Kubernetes.
157
-
216
+
---
158
217
159
218
## Configure Kubernetes-based appliance
160
219
@@ -165,7 +224,7 @@ After successfully setting up the appliance using the installer script, you need
165
224
:::image type="content" source="./media/tutorial-discover-spring-boot/pending-action-inline.png" alt-text="Screenshot displays the Pending action option." lightbox="./media/tutorial-discover-spring-boot/pending-action-expanded.png":::
166
225
167
226
3. In **Overview** > **Manage** > **Appliances**, a filtered list of appliances appears with actions pending.
168
-
4. Find the Kubernetes-based appliance that you have set up and select **Credentials unavailable** status to configure the appliance.
227
+
4. Find the Kubernetes-based appliance that you set up and select **Credentials unavailable** status to configure the appliance.
169
228
170
229
:::image type="content" source="./media/tutorial-discover-spring-boot/appliances-inline.png" alt-text="Screenshot displays the details of the appliance." lightbox="./media/tutorial-discover-spring-boot/appliances-expanded.png":::
171
230
@@ -185,6 +244,14 @@ After the credentials have been successfully synced, wait for 24 hours before yo
185
244
> [!Note]
186
245
> You can add/update credentials any time by navigating to **Azure Migrate: Discovery and assessment** > **Overview** > **Manage** > **Appliances** page, selecting **Manage credentials** from the options available in the Kubernetes-based appliance.
187
246
247
+
## Cleanup of setup
248
+
249
+
To cleanup, run the following script in delete mode:
250
+
251
+
In the script generated by the portal, after all the user arguments (after line 19 in the following image), add `export DELETE= “true”` and run the same script again. This will clean up all existing components created during appliance creation.
[Azure Migrate](migrate-services-overview.md) helps you to discover, assess and migrate on-premises servers, apps, and data to the Microsoft Azure cloud. This article summarizes new releases and features in Azure Migrate.
16
16
17
+
## Update (March 2024)
18
+
19
+
- Public preview: Springboot Apps discovery and assessment is now available using Packaged solution to deploy Kubernetes appliance.
20
+
17
21
## Update (February 2024)
18
22
19
23
- Public preview: Envision savings with Azure Hybrid Benefits by bringing your existing Enterprise Linux subscriptions (RHEL and SLES) to Azure using Azure VM assessments and business case.
20
24
25
+
21
26
## Update (January 2024)
22
27
23
28
- Public preview: Using the RVTools XLSX, you can import an on-premises VMware environment's servers' configuration data into Azure Migrate and create a quick business case and also assess the cost of hosting these workloads on Azure and/or Azure VMware Solution (AVS) environments. [Learn more](migrate-support-matrix-vmware.md#import-servers-by-using-rvtools-xlsx-preview).
0 commit comments