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
Copy file name to clipboardExpand all lines: README.md
+81-31Lines changed: 81 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,15 @@
1
1
# Bicep Framework for deploying CBS on Azure
2
2
3
+
The Bicep framework for CBS deployment comes with Bicep templates and bash scripts, combined from following modules:
4
+
5
+
-**Module #01 (Prerequisites)** - this module deploys all the resources required for CBS deployment, including Virtual Network, User-Managed Identity, Custom Role, and others.
6
+
7
+
-**Module #02 (CBS Managed App)** - this module deploys the CBS Managed App itself into the environment with all prerequisites met.
8
+
9
+
-**Module #03 (Test VM)** - This module provisions a test Virtual Machine (VM) of Windows Server 2019 with pre-installed MS SQL server and configures test volumes in CBS instance to mount them via iSCSI protocol.
10
+
11
+
-**Module #04 (E2E Demo Deployment) 🧪** - For hands-on/testing purposes, this module combines all modules #01-#03 (described above) and deploys all required resources, CBS Managed App and a test Virtual Machine in the single deployment script.
12
+
3
13
## Prerequisites
4
14
- bash
5
15
- Docker or Windows (**WSL recommended**) / Linux<sup>[1]</sup> / MacOS<sup>[2]</sup>
@@ -31,38 +41,23 @@ You can also run all commands in this repo on your computer or in container usin
1. Run the `00-setup-machine.sh` script to install all required tooling and log into Azure.
48
+
```bash
49
+
./00-setup-machine.sh
50
+
```
38
51
39
52
40
53
## Usage
41
54
42
-
### Option A - E2E DEMO Deployment
43
-
44
-
This repository contains a script `deploy-e2e-demo.sh` that combines all modules in the repository and enables easy testing and hands-on experience of the CBS (Pure Cloud Block Store) on Azure.
45
-
With just one script, you can quickly set up and run a test environment to explore the features and capabilities of the CBS.
46
-
47
-
The script includes all required CBS resources and sets up a test Windows SQL Server VM with mounted CBS volumes via iSCSI.
48
-
49
-

50
-
51
-
To use this script:
52
-
1. rename the file `e2e-demo-params.sh.example` to `e2e-demo-params.sh`
53
-
1. enter the necessary values into the `e2e-demo-params.sh` file
54
-
1. execute the script `./deploy-e2e-demo.sh`
55
-
56
-
57
-
58
-
### Option B - Bicep Modules
59
-
60
-
The repository also contains 3 modules for deploying CBS on Azure using infrastructure-as-code [Bicep](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview?tabs=bicep) templates.
55
+
The repository contains 4 modules for deploying CBS on Azure using infrastructure-as-code [Bicep](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview?tabs=bicep) templates.
61
56
62
57
These modules can be customized and modified, for example, to be incorporated into your landing zone templates.
63
58
64
59
65
-
#### Module #01 - CBS Prerequisites
60
+
### Module #01 - CBS Prerequisites
66
61
67
62
The script `01-deploy-prerequisities.sh` (Bicep template file `prerequisities.bicep`) deploys all required resources for CBS.
1. enter the necessary values into the `01-prereq.bicepparam` file
80
-
1. execute the script `./01-deploy-prerequisities.sh`
78
+
79
+
1. execute the script
80
+
```bash
81
+
./01-deploy-prerequisities.sh
82
+
```
81
83
82
84
83
-
#### Module #02 - CBS Managed App
85
+
86
+
### Module #02 - CBS Managed App
84
87
85
88
The script `02-deploy-cbs.sh` (Bicep template file `cbs-managed-app.bicep`) deploys CBS managed application itself.
86
89
87
90
To use this module:
88
91
1. rename the file `02-cbs.bicepparam.example` to `02-cbs.bicepparam`
92
+
```bash
93
+
$ mv 02-cbs.bicepparam.example 02-cbs.bicepparam
94
+
```
89
95
90
96
1. enter the necessary values into the `02-cbs.bicepparam` file<br>
91
-
<em><small>Remember that these Bicep modules are separate from each other. If you want to run them one after the other, you'll need to pass some output values from the `01-deploy-prerequisities.sh` script into the `02-cbs.bicepparam` parameter file. </small></em>
97
+
<em><small>Remember that these Bicep modules are isolated from each other.<br>
98
+
If you want to run them one after the other, you'll need to pass some output values from the `01-deploy-prerequisities.sh` script into the `02-cbs.bicepparam` parameter file. </small></em>
99
+
100
+
1. execute the script
101
+
```bash
102
+
./02-deploy-cbs.sh
103
+
```
92
104
93
-
1. execute the script `./02-deploy-cbs.sh`
94
105
95
106
96
107
97
108
> [!NOTE]
98
109
> If you intend to use only a Bicep template for the programmatic deployment of CBS, you must also accept the Azure Marketplace license for the given product/plan. Since Azure does not support accepting licenses via Bicep templates, you must accept the license using PowerShell or Azure CLI before executing the Bicep deployment.
99
110
100
-
#### Module #03 - Test VM
111
+
### Module #03 - Test VM
101
112
102
113
The script `03-deploy-test-vm.sh` deploys a test Windows Server VM with MS SQL server installed.
103
114
104
115
It automatically creates 3 volumes in the CBS array, and mount them on the VM via iSCSI to be used by SQL server.
105
116
117
+
To use this module:
118
+
1. rename the file `03-test-vm.bicepparam.example` to `03-test-vm.bicepparam`
1. enter the necessary values into the `03-test-vm.bicepparam` file<br>
124
+
<em><small>Remember that these Bicep modules are isolated from each other.<br>
125
+
If you want to run them one after the other, you'll need to pass some output values from the `02-deploy-cbs.sh` script into the `03-test-vm.bicepparam` parameter file. </small></em>
126
+
127
+
1. execute the script
128
+
```bash
129
+
./03-deploy-test-vm.sh
130
+
```
131
+
132
+
#### Using the Test VM
108
133
109
134
The Test VM is configured to accept standard RDP connections from your public IP address.
110
135
111
-
In WSL, the deployment script should automatically open an RDP session to the VM.
136
+
In WSL, the deployment script should automatically open an RDP session to the VM.<br>
137
+
112
138
If not, use a command:
113
139
```bash
114
140
$ mstsc.exe /v:<<public IP address>>
@@ -123,13 +149,37 @@ Password: *pureuser*
123
149
124
150
**Please change these credentials immediately.**
125
151
152
+
<br><br>
153
+
154
+
### Module #04 - E2E DEMO Deployment
155
+
156
+
This repository contains a script `deploy-e2e-demo.sh` that combines all modules in the repository and enables easy testing and hands-on experience of the CBS (Pure Cloud Block Store) on Azure.
157
+
With just one script, you can quickly set up and run a test environment to explore the features and capabilities of the CBS.
158
+
159
+
The script includes all required CBS resources and sets up a test Windows SQL Server VM with mounted CBS volumes via iSCSI.
160
+
161
+

162
+
163
+
To use this script:
164
+
1. rename the file `e2e-demo-params.sh.example` to `e2e-demo-params.sh`
1. enter the necessary values into the `e2e-demo-params.sh` file
169
+
1. execute the script
170
+
```bash
171
+
$ ./deploy-e2e-demo.sh
172
+
```
173
+
174
+
175
+
126
176
127
177
## Limitations / Troubleshooting
128
178
129
179
130
180
### Common Deployment vNET
131
181
132
-
The prerequisites module only supports a single virtual network scenario where all required subnets are deployed within one common vNET, as this is considered best practice. The use of multiple vNETs that are peered with each other is not supported by this framework.
182
+
The prerequisites (Module #01) only supports a single virtual network scenario where all required subnets are deployed within one common vNET, as this is considered best practice. The use of multiple vNETs that are peered with each other is not supported by this framework.
133
183
134
184
However, the vNET does not have to be deployed within the same vNET. You can use the optional `vnetRGName` (for Module #02) parameter to specify the resource group for the vNET.
0 commit comments