Skip to content

Commit b32e777

Browse files
Merge pull request #138 from blackboard/20241119vmdktoami
20241119vmdktoami
2 parents e5164c8 + c2480b5 commit b32e777

File tree

6 files changed

+164
-20
lines changed

6 files changed

+164
-20
lines changed

docs/developer-ami.md

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,41 +6,38 @@ published: "2018-07-04"
66
edited: "2024-07-26"
77
---
88

9-
### AMI Availability
10-
:::danger AMI availability
9+
### Blackboard Developer AMI
1110

12-
Starting October 20th, 2024, access to Blackboard AMIs will be changing due to new AWS requirements. If you have an existing site, the AMI will continue to function until October 20. After that, Blackboard AMIs will not function.
11+
This document outlines the process of setting up and using the Learn REST and LTI Developer AMI. Previously available through the Amazon AWS Marketplace, this AMI is now distributed as a downloadable VMDK file. Developers can upload the VMDK file to their AWS account to create and manage their own AMI instances.
1312

14-
To support you in the meantime, we can offer discounts to our shared or dedicated SaaS Learn instances. Please contact [email protected] and he can prioritize getting you set up with a SaaS instance.
13+
For detailed instructions on converting the VMDK file to an AMI, refer to the [Blackboard AMI From VMDK guide](/docs/developer-amifromvmdk.md).
1514

16-
We expect to have AMIs available again in the near future, but have yet to finalize a date and details. See also [Changes to Blackboard AMI Access](https://blackboard.my.site.com/Support/s/article/Changes-to-Blackboard-AMI-Access?language=en_US)
15+
Please note that AMI Blackboard licenses are not upgradable. You must download a newer release and migrate any content or tools prior to license expiration. Please review the Migration Cookbook - Recreating Data between AMIs section below.
1716

18-
We apologize for this disruption in your day-to-day support of Blackboard customers. We appreciate your continued partnership and patience as we work through this transition. Please reach out to [email protected] if you have any questions or Donovan ([email protected]) for support with a new SaaS instance.
19-
20-
21-
:::
22-
23-
This document outlines usage of the [Learn REST and LTI Developer AMI](https://aws.amazon.com/marketplace/pp/prodview-fdbvv2vvikoq4) made available via the Amazon AWS Marketplace.
24-
25-
Please note that AMI licenses are not upgradable. You must subscribe to a newer release and migrate any content or tools prior to license expiration. Please review the **Migration Cookbook - Recreating Data between AMIs** section below.
2617

2718
#### Overview
2819

29-
The Learn REST and LTI Developer Amazon Machine Image (“AMI”) is an image of a Learn server available in the Amazon Marketplace. The AMI allows a developer to spin up a copy of Learn for building applications that use the REST APIs and/or Learning Tool Interoperability (“LTI”) to integrate with Learn. This image is a standalone copy of the SaaS deployment of Learn that allows development and testing against the Ultra user experience. Once the developer spins up the copy of Learn, it lives in his or her AWS account and the developer has full control over the instance of Learn. All instances are pre-licensed with a developer license. New developer AMIs will be made available in the same cadence as SaaS releases. Please note that there is a potential delay of 1-2 days before the AMI is available due to AMI and AWS processing time.
20+
The Learn REST and LTI Developer Amazon Machine Image (“AMI”) is an image of a Learn server available in the Amazon Marketplace. The AMI allows a developer to spin up a copy of Learn for building applications that use the REST APIs and/or Learning Tool Interoperability (“LTI”) to integrate with Learn. This image is a standalone copy of the SaaS deployment of Learn that allows development and testing against the Ultra user experience. Once the developer spins up the copy of Learn, it lives in his or her AWS account and the developer has full control over the instance of Learn. All instances are pre-licensed with a developer license. New developer AMIs will be made available as a VMDK file within 90 days of the prior release of a VMDK with the then current version of Blackboard.
3021

3122
This program allows a developer to build an integration for Learn without a formal paid partnership. Anyone who wants to test the Ultra experience can create copy. Note that you cannot deploy a custom building block to this AMI. It is meant only for REST and LTI development.
3223

3324
**NOTE:** Building Block installation is NOT supported on the AMIs.
3425

35-
#### Get the Blackboard REST and LTI Developer AMI
26+
#### Getting the Blackboard REST and LTI Developer VMDK for an AMI
27+
Before you begin, you must have an Amazon AWS account. If you do not have an AWS account you will need to create one.
3628

37-
The easiest way to find the Developer AMI is by using the link above or searching the Amazon Marketplace for Learn. The results show all of the currently available AMIs. Given the cadence or releases, you should locate the Learn instance you want.
29+
1. Visit Anthology Support. If you have an account login.
30+
1. Click the button labeled "New Way to Access Blackboard AMI".
31+
1. Read the EULA and click the Accept button to accept.
32+
1. If you are logged in your download will begin.
33+
1. If not logged in, you will be asked to submit a form with your contact information, then your download will begin.
34+
1. The download is large and may take an hour or so. Have a good internet connection.
35+
1. Follow the [Blackboard AMI From VMDK guide](/docs/developer-amifromvmdk.md) to upload the VMDK file to your AWS account and convert it to an AMI.
3836

39-
#### Use the Blackboard REST and LTI Developer AMI
37+
### Use the Blackboard REST and LTI Developer AMI
4038

41-
Before you begin, you must have an Amazon AWS account. If you do not have an AWS account you will need to create one. The steps to set up an AMI are typically as follows.
39+
Once the VMDK file has been uploaded and converted into an AMI in your AWS account, the steps to set up an AMI are typically as follows.
4240

43-
- Subscribe to the AMI
4441
- Configure the specific instance
4542
- Spin it up and code!
4643
- When configuring the instance, it is completely up to you how you set up the server. We do have a few recommendations, however.
@@ -51,10 +48,11 @@ Before you begin, you must have an Amazon AWS account. If you do not have an AWS
5148

5249
- If you see 502 Gateway errors, you may need to increase the size of your AMI.
5350

54-
1. We recommend you adjust the security settings to allow:
51+
2. We recommend you adjust the security settings to allow:
5552

5653
- SSH from your IP only
5754
- Enable HTTPS access
55+
- Enable HTTP access (Let's Encrypt requries this)
5856

5957
3. You must configure VPC for the EC2 to properly function. You do this by going to the VPC Console from the AWS Console:
6058
4. Under Services open VPC under Networking and Content Delivery

docs/developer-amifromvmdk.md

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
---
2+
title: Blackboard AMI From VMDK
3+
id: developer-amifromvmdk
4+
author: Mark Kauffman
5+
published: "2014-11-19"
6+
edited: "2024-11-19"
7+
---
8+
9+
### VMDK Availability
10+
:::danger VMDK availability
11+
12+
NOTE: If you are on this page and have not yet downloaded the .vmdk file from support.anthology.com please visit that site. Login if you have an account and look for the button on the page titled [New Way to Access Blackboard AMI] and click it. You could also use the search tool to find the article "New Way to Access Blackboard AMI." If you do not have an account, that's OK!! In that case you will be required to fill out a form with contact informaiton prior to your download. The rest of this document explains what the .vmdk file is and how you use it to create a Blackboard AMI in your AWS account.
13+
14+
:::
15+
16+
#### Introduction and Prerequisites
17+
We've developed a means to distribute the Blackboard AMI without the use of the Amazon Marketplace, or managed access to our AWS S3 buckets. To do so we now publish a .vmdk file on our support portal for the Blackboard build that you download and then convert to an AMI in your AWS account. The curent .vmdk file, export-ami-41d97b8a1a2a1dc6t.vmdk, is for Blackboard Learn 3900.106.
18+
19+
This document explains how you take the .vmdk file you’ve downloaded and convert it into an AMI in your AWS account. The major prerequisite is that you will need to have your desktop/laptop configured to use the AWS Command Line Interface (CLI). Several steps only function using the CLI. Refer to https://aws.amazon.com/cli/ If you have any issues with the AWS CLI review the Amazon documentation and/or reach out to Amazon for support. Another prerequisite is a good, stable, internet connection. The file is large, close to 10GB, and can take an hour or so to upload @ 22MBPS.
20+
21+
You will need to download the .vmdk file from support.anthology.com before proceeding with the instructions in this document. If you've a support.anthology.com account login and then find the button on the home page titled [New Way to Access Blackboard AMI]. Click the button, on the page that comes up read and accept the terms, then at the bottom click the accept button. Your download will start. If you don't have a support.anthology.com account you can find the button and accept the terms, and you will have an additional step of filling out a form with your contact information. Once you've filled out the form your download will start. NOTE: THE DOWNLOAD CAN TAKE BETWEEN AN HOUR OR TWO. Have a good internet connection
22+
23+
#### Overview
24+
25+
An overview of the process that you will be doing, once you have the .vmdk file, is as follows. You will create an S3 bucket in your AWS account to which you will upload the .vmdk file. You will configure your AWS account policies so that you can use the CLI to convert the .vmdk file to a snapshot. You will create a configuration file on your desktop/laptop named containers.json that contains the JSON configuration for converting the .vmdk file in the S3 bucket into a Snapshot. You can then use the graphical dashboard to create an AMI associated with the Snapshot.
26+
27+
#### Steps to Convert the .vmdk File to an AMI
28+
29+
1. Configure the AWS CLI for your AWS account. See https://aws.amazon.com/cli/ The CLI MUST be used for some steps. This is not optional.
30+
2. Test that you can use the CLI to view your S3 buckets from your terminal:
31+
1. aws s3 ls
32+
2. Expected result: you get a list of S3 buckets.
33+
3. Use the GUI or CLI to create an S3 bucket, with all of the settings as the default, in your AWS account named learnexports.
34+
4. Upload the .vmdk file that will be used to create an AMI into the learnexports bucket. This will take some time, between an hour and a couple of hours depending on your network speed. You may continue here to configure your AWS account during the upload process.
35+
5. Once you have a learnexports bucket in S3, configure your AWS IAM as follows using the GUI:
36+
1. Select the IAM service to get the IAM > Dashboard
37+
1. Under Access management in the left nav, select policies
38+
1. Click [Create policy]
39+
1. On the Specify permissions page, click the [JSON] button.
40+
1. Using the JSON policy editor, input the following JSON:
41+
```
42+
{
43+
"Version": "2012-10-17",
44+
"Statement": [
45+
{
46+
"Effect": "Allow",
47+
"Action": [
48+
"s3:GetBucketLocation",
49+
"s3:GetObject",
50+
"s3:ListBucket",
51+
"s3:PutObject",
52+
"s3:GetBucketAcl"
53+
],
54+
"Resource": [
55+
"arn:aws:s3:::learnexports",
56+
"arn:aws:s3:::learnexports/*"
57+
]
58+
},
59+
{
60+
"Effect": "Allow",
61+
"Action": [
62+
"ec2:ModifySnapshotAttribute",
63+
"ec2:CopySnapshot",
64+
"ec2:RegisterImage",
65+
"ec2:Describe*"
66+
],
67+
"Resource": "*"
68+
}
69+
]
70+
}
71+
```
72+
6. Hit [Next] then on the Review and create page set the Policy Name to avmimportpolicy. Click [Create policy] at the bottom of the page.
73+
7. In the IAM left nav, under “Access management” click “Roles”.
74+
8. Click [Create role] in the upper right of the page.
75+
9. Trusted entity type is AWS service. See screenshot below.
76+
77+
![AWS Trusted Entity](/assets/img/AWSTrustedEntity.png)
78+
79+
10. In the Use case section, select the EC2 service. Click [Next].
80+
11. Now you are on the “Add permissions” page. Use the Search to find the avmimportpolicy you just created in steps 4 and 5. Check the box next to it. Then click [Next].
81+
12. Now you are on the “Name, review, and create” page.
82+
13. At the top, under Role details, YOU MUST NAME THE ROLE vmimport <- exactly this. Nothing else! Leave everything else as the default and scroll to the bottom of the page.
83+
14. Click [Create role] at the bottom right of the page.
84+
15. Now use the Search to find the vmimport role you just created. Click on its link.
85+
16. Click on the “Trust relationships” tab just to the right of “Permissions”
86+
17. Click the [Edit trust policy] button.
87+
18. Replace ALL of the JSON shown with the following JSON:
88+
```
89+
{
90+
"Version": "2012-10-17",
91+
"Statement": [
92+
{
93+
"Effect": "Allow",
94+
"Principal": {
95+
"Service": "ec2.amazonaws.com"
96+
},
97+
"Action": "sts:AssumeRole"
98+
},
99+
{
100+
"Effect": "Allow",
101+
"Principal": {
102+
"Service": "vmie.amazonaws.com"
103+
},
104+
"Action": "sts:AssumeRole",
105+
"Condition": {
106+
"StringEquals": {
107+
"sts:Externalid": "vmimport"
108+
}
109+
}
110+
}
111+
]
112+
}
113+
```
114+
19. At the bottom right of the page, click the [Update policy] button. You have finished configuring the necessary IAM policies and roles so you can convert a .vmdk file into a snapshot that can be used to create an AMI. Now proceed to do so.
115+
20. Create a containers.json file in a directory on your laptop/desktop computer. The file should contain the following JSON for the 3900.104 VMDK. You will replace the Description and the export-ami- lines with the current values for each release.
116+
```
117+
{
118+
"Description": "Learn3900104VMDK",
119+
"Format": "VMDK",
120+
"UserBucket": {
121+
"S3Bucket": "learnexports",
122+
"S3Key": "export-ami-0e0a6b40cd7b773ca.vmdk"
123+
}
124+
}
125+
```
126+
21. Use the CLI to convert the .vmdk into a Snapshot.
127+
1. aws ec2 import-snapshot --description "Learn3900100VM" --disk-container "file:///Users/mkauffman/work/bbami/3900.100.0/containers.json"
128+
1. See aws ec2 import-snapshot documentation. You need the full path to your containers.json file
129+
1. This will create a snapshot file for you.
130+
1. JSON output will include a line like: "ImportTaskId": "import-snap-084a4afb185bedc98" <- NOTE the taskId. You will use it in the next step.
131+
22. Use the CLI to monitor the conversion of the .vmdk to a snapshot.
132+
1. aws ec2 describe-import-snapshot-tasks --import-task-ids import-snap-084a4afb185bedc98
133+
1. Use the task Id you got from the prior step.
134+
1. Eventually,after a few minutes, you will get JSON output with “Status”: “completed” and, for example a “SnapshotId”: "snap-04465254a72c30c82"
135+
23. Look in the EC2 section of your AWS GUI for the Snaphshots link. You will see the snapshot you just created. Check the box next to it, then under the Actions menu select “Create image from snapshot.” See the following screenshot.
136+
137+
![AWS Create Image From Snapshot](/assets/img/AWSCreateImageFromSnapshot.png)
138+
139+
24. On the “Create image from snapshot” form give the image a meaningful Name, Ex: “3900.100 Blackboard REST AMI from Snap 04465254a72c30c82”, and a similar Description. Click the [Create image] button at the bottom of the page.
140+
25. You should see a message indicating that the AMI has been created. Under Images in the EC2 dashboard left navigation, click AMIs. You will find the AMI you just created from the snapshot. You can copy the AMI name to the Name field.
141+
142+
![AWS Created AMI Complete](/assets/img/AWSCreatedAMIComplete.png)
143+
144+
26. You can now Use the Blackboard REST and LTI Developer AMI as per [Use the Blackboard REST and LTI Developer AMI](docs/developer-ami.md#use-the-blackboard-rest-and-lti-developer-ami).
145+
27. NOTE: Make certain to have a security policy on your EC2 instance that allows HTTP and HTTPS traffic from anywhere. Let’s Encrypt will not function correctly without HTTP being open.

sidebar.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ const sidebars = {
185185
],
186186
},
187187
"developer-ami",
188+
"developer-amifromvmdk",
188189
],
189190
},
190191
// Student
48.4 KB
Loading
36.1 KB
Loading
19.7 KB
Loading

0 commit comments

Comments
 (0)