Skip to content

Commit

Permalink
Doc for 11494 "Build MultiCloud Devops using Azure CI/CD Pipelines wi…
Browse files Browse the repository at this point in the history
…th Oracle Database Cloud Services" (#262)

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* oracle-ai-for-sustainable-dev init

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* init for oracle-health-ai-open-source "Develop with Oracle AI and Database Services: Healthcare (Open Source Version)" workshop WMSID 11485

* update author names for WMSID 11421 "Develop with Oracle AI and Database Services: Gen, Vision, Speech, Language, and OML"

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* Add files via upload

* Update download.html

* Delete MLH.jpg

* Add files via upload

* Delete MLH.jpg

* Add files via upload

* Add files via upload

* Update download.html

* Add files via upload

* Update download.html

* Update download.html

* Update download.html

* Update download.html

* Delete MLH.jpg

* Update download.html

* Add files via upload

* Create downloaddevweek.html

* Update download.html

* Add files via upload

* Add files via upload

* Update downloaddevweek.html

* Update downloaddevweek.html

* Update downloaddevweek.html

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Building Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init "Build Azure Devops CI/CD Pipelines with Oracle Database Cloud Services" workshop

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init

* init
  • Loading branch information
paulparkinson authored Mar 8, 2024
1 parent c27a0a4 commit 9996bcd
Show file tree
Hide file tree
Showing 181 changed files with 1,221 additions and 0 deletions.
151 changes: 151 additions & 0 deletions multicloud-azuredevops-oracledb/configurevault/configurevault.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
# Application Registration, Configure Azure Vault, and App Config

## Introduction

In this lab, we will set up Azure Vault and Azure Config access to it for microservices/applications.
We will add the vault secrets and config that will be used by the microservice(s) in AKE to make application s connections to the Oracle Database in OCI.

*Estimated Time:* 15 minutes

### Objectives

* Create an Application Registration and obtain values for AZURE\_TENANT\_ID, AZURE\_CLIENT\_ID, and AZURE\_CLIENT\_SECRET
* Create and Configure Azure Vault.
* Add secrets for password and wallet to the vault.
* Setup App Config access to the vault.


### Prerequisites

This lab assumes you have completed previous labs.

## Task 1: Create and Configure Application Registration and obtain values for access

Azure Application Registrations are part of Azure Active Directory.
When you register an application in Azure AD, you're creating an identity configuration for your application so that it can authenticate and communicate securely with other services that use Azure AD for authentication.
Application Registrations allow your application to obtain tokens from Azure AD, enabling it to authenticate and access resources that are secured by Azure AD.

1. Click `New Registration`

![New App Registration](images/newappregistration.png)

2. Create a new registration (Eg `multicloud app`)

![Create a new registration](images/registerapp.png)


3. Note the value of the `Application (client) ID` (that will be used as the value for `AZURE_CLIENT_ID` later) and the `Directory (tenant) ID` (that will be used as the value for `AZURE_TENANT_ID` later)

![App registration](images/appregistration.png)

4. Create a client secret for the app registration by clicking `Certificates & Secrets` on the left sidebar menu, then `+ New client secret`

![App registration secret](images/appregistrationsecret.png)

5. Note the value (not the ID) of the client secret.
This will be used as the value for `AZURE_TENANT_ID` and, along with the `AZURE_CLIENT_ID` and `AZURE_TENANT_ID` values noted earlier, will be used by the Kubernetes microservice(s) to access to the Application Config and Azure Vault in order obtain information to connect to the Oracle Database on OCI.



## Task 2: Create Azure Vault and Secrets For Wallet and Password

1. From the home screen, click `Key Vaults` and `Create`

![Create Key Vault](images/keyvaultsfromhomepage.png)

2. Select the correct resource group, provide a name, and create the vault. (this is the equivalent of issuing the command `az keyvault create --name multicloudvault --resource-group myapp-rg`)

![Create Vault](images/createkeyvaultdetail.png)

3. Select `Secrets` on the sidebar menu of the vault created in the previous step and then click `Generate/Import`

![Select Secrets](images/createkeyvaultdetail.png)

4. If a wallet is not used (eg with Exadata), proceed to next step, otherwise name the secret `wallet` and provide the base64 value of the contents of cwallet.sso in the wallet zip as the secret value.
You can issue the following command to get this value:
```bash
<copy>
base64 -i /Users/pparkins/Downloads/Wallet_IndADW/cwallet.sso`
</copy>
```

(this is the equivalent of issuing the command `az keyvault secret set --name wallet --vault-name multicloudvault --value "[base64walletcontents]"`

![Create Wallet Secret](images/walletvaultsecret.png)

5. Repeat the same for `password`

6. Add `Key Vault Administrator` and `Key Vault Secrets User` roles to the app registration created earlier.

![Add Key Vault Admin](images/vaultaddroleassignment.png)

![Add Key Vault Admin](images/vaultaddroleassignmentreviewandassign.png)

![Add Key Vault Secrets User](images/vaultaddroleassignmentreviewandassign.png)

7. Click `Access Policies` on the sidebar menu of the Vault screen and 'Create an access policy' and select all or applicable permissions and click `Next`

![Access Policies](images/vaultaccesspolicy.png)

Under `Principal` search for and select the app registration created earlier. Choose remaining defaults and create the access policy.

![Principal](images/vaultaccesspolicyprincipal.png)

Verify the creation of the access policy.

![Verify the creation of the access policy](images/vaultaccesspolicyverify.png)

## Task 3: Create Application Config with Access Roles

1. Click `New Registration`

![New Registration](images/createappconfig.png)

![New Registration](images/createappconfigsuccess.png)

![New Registration](images/createappconfigoverview.png)


2. Click `Access Control (IAM)` and click `Add role assignment`

![Access Control (IAM)](images/createappconfigiam.png)

Search for and add App Config ownership/access roles. Then click `Next`.
![Search for and add App Config roles](images/addroleassignmentaddrole.png)

Search for and add your user as a member. Then click `Next`.
![Search for and add members](images/addroleassignmentmembers.png)

View Conditions. Then click `Next` and `Review + assign`.
![View Conditions](images/addroleassignmentconditions.png)

Click `Check access` to verify access for user`.
![Check access](images/checkroleassignment.png)
## Task 4: Create App Config Secrets
1. From the application configuration page click `Create` and then `Key Vault reference`
![Create App Config](images/appconfigcreate.png)
2. Create the reference using the appropriate `Key`, `Key Vault`, and `Secret` value as shown here for the `wallet_location`.
![Create App Config Success](images/appconfigcreatedetail.png)
3. Do the same for the `password`
4. Do the same for the `connect_descriptor` and `user` except select `Key-value` when creating rather than `Key Vault reference`
This concludes this lab. You can **proceed now to the next lab**.
## Acknowledgements
* **Author** - Paul Parkinson, Architect and Developer Advocate, Oracle Database
* **Last Updated By/Date** - Paul Parkinson, 2024.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
84 changes: 84 additions & 0 deletions multicloud-azuredevops-oracledb/createake/createake.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Create Resource Group, AKE Kubernetes Cluster, and Container Registry

## Introduction

In this lab, we will create an Azure Kubernetes cluster and look at a few options to access it.
We will also create an Azure Container Registry

*Estimated Time:* 5 minutes

### Objectives

* Create Azure Kubernetes cluster.
* Access the cluster and issue kubectl commands.

### Prerequisites

This lab assumes you have completed previous labs.

## Task 1: Create Resource Group

This task can be skipped if an existing Resource Group will be used.

In Azure, a Resource Group is a fundamental organizational block within which resources like Azure Application Registrations, Azure App Configuration, Azure Key Vault, and many other Azure services are deployed and managed. A resource group is essentially a container that holds related resources for an Azure solution. The primary purpose of a resource group is to help organize and manage resources that share a common lifecycle, permissions, and policies.

1. Click `New Registration Group`

![New Registration Group](images/newregistrationgroup.png)

2. Provide a `Resource group` name

![Registration Group Name](images/resourcegroupcreate.png)

3. Once, created Make sure your user is explicitly owner of the resource group by clicking `Access control (IAM)` and `Add role assignment`. Then search on and select `Owner`.

![Create Resource Config](images/resourcegrouprole.png)

4. Search on and add your user as member and click `next`.

![Create App Config](images/resourcegroupaddmembers.png)

5. Select `Review + assign` on the Conditions page and complete the assignment.

![Create App Config](images/resourcegroupaddconditions.png)


## Task 2: Create Azure Kubernetes cluster

1. Search for and select `Kubernetes services` in Azure console.

![New App Registration](images/kubernetessearch.png)

2. Click `Create a Kuberenetes cluster`

![New App Registration](images/kubernetescreate.png)

3. Click `Name and create the cluster`

![New App Registration](images/kubernetesname.png)

4. Verify connectivity by navigating to the Kubernetes service and the cluster that was created and selecting one of the techniques to connect (Cloud Shell, Azure CLI, or Run Command)

![OraOperator Install](images/searchforaks.png)
![OraOperator Install](images/connectbuttonforaks.png)
![OraOperator Install](images/connecttoakeoptions.png)

## Task 3: Create Azure Container Registry

1. Similar to creating the Kubernetes cluster, simply search on `Container registries` and create a container registry by providing a name (Eg `multicloud` or `mycontainerregistry`).

![New App Registration](images/createcontainerregistry.png)



This concludes this lab. You can **proceed now to the next lab**.

## Learn More

* [OCI Documentation](https://docs.oracle.com/en-us/iaas/Content/home.htm)

## Acknowledgements

* **Author** - Paul Parkinson, Architect and Developer Advocate, Oracle Database

* **Last Updated By/Date** - 2024.
87 changes: 87 additions & 0 deletions multicloud-azuredevops-oracledb/createdatabase/createdatabase.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Create an Oracle Database

## Introduction

In this lab, we will set up an Oracle Database and create a user and table.

Estimated time: 5 minutes

### Objectives

* Create the Oracle Database (if one does not exist already)
* Obtain the connection information (and wallet if applicable)
* Create a user and table

### Prerequisites

This lab assumes:

* You have an Oracle Cloud account.

## Task 1: Determine the Oracle Database Being Used

1. If using Oracle Autonomous Database you may follow the quick process outline in Task 2
2. If using Exadata the documentation can be found here: https://docs.oracle.com/en/engineered-systems/exadata-database-machine/

## Task 2: Create an Oracle Autonomous Database if necessary, download the connection information, and create user and table.

If you have a database instance already, you may skip this task.

1. From the OCI console select `Oracle Database` and then `Autonmous Transaction Processing`.
![select database](./images/databasesetup1.png " ")
2. Click the `Create Autonomous Database` button.
![select create button](./images/databasesetup2.png " ")
3. Select the appropriate compartment to place the database in and provide a database name (any name will suffice).
![select compartment](./images/databasesetup4.png " ")
4. Provide a password for the `ADMIN` user.
![provide password](./images/databasesetup5.png " ")
5. Click the `Create Autonomous Database` button. The database will begin provisioning.
![select create](./images/databasesetup6.png " " )
6. Click the `Database connection` button and then `Download wallet` to save the wallet.
![notice actions](./images/databaseconnectionbutton.png " ")
![notice actions](./images/downloadwallet.png " ")

## Task 3: Create user and table.

7. Click the `Database actions` button and the `SQL` item from the drop-down list. After a moment the SQL Worksheet will appear.
![click actions](./images/databasesetup9.png " ")
8. Copy and paste the following and replace `[Yourpassword]` with a password for the `AIUSER`.
You may use a user/name other than `AIUSER`. If so, be sure to use it consistently in the workshop and regardless note the password used.
```sql
<copy>
CREATE USER aiuser identified BY [Yourpassword];
GRANT CREATE session TO aiuser;
GRANT RESOURCE TO aiuser;
GRANT unlimited tablespace TO aiuser;
GRANT execute on DBMS_CLOUD to aiuser;
</copy>
```
9. Select the run script button to execute the SQL statements.
![select run](./images/runscriptbutton.png " ")
7. Select the drop-down menu in the upper right (which should currently show as `ADMIN`), and click `Sign Out`.
![select dropdown](./images/databaseinit6.png " ")
8. Now log back in as the `AIUSER`.
![log in as AIUSER](./images/databaseinit7.png " ")
9. Select `SQL` from the options on the screen.
![select SQL](./images/databaseinit8.png " ")
10. Copy and paste the following to create a test table you'll use in your microservice that is part of the CI/CD pipeline later.
```sql
<copy>
CREATE TABLE cicd_test_table (testvalue varchar2(64))
</copy>
```
11. Select the run script button to execute the SQL statements.
![select run script](./images/runscriptbutton.png " ")
13. Verify the SQL statements ran correctly.
This concludes this lab. You can **proceed now to the next lab**.
## Learn More
* [OCI Documentation](https://docs.oracle.com/en-us/iaas/Content/home.htm)
## Acknowledgements
* **Author** - Paul Parkinson, Architect and Developer Advocate, Oracle Database
* **Last Updated By/Date** - 2024.
33 changes: 33 additions & 0 deletions multicloud-azuredevops-oracledb/interconnect/interconnect.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Configure Oracle@Azure or Interconnect

## Introduction

In this lab, we will set up either Oracle@Azure or the Interconnect between Azure and OCI and Oracle Database.

Estimated time: 60 minutes

### Objectives

* Setup and Test Oracle@Azure or Interconnect between Azure and OCI and Oracle Database

### Prerequisites

This lab assumes you have an Azure account and in the case of Interconnect, an OCI account.

## Task 1: Choose between Oracle@Azure or the Interconnect between Azure and OCI and Oracle Database

1. If you choose to use the Interconnect, please refer to the Workshop found here for setup steps: https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/view-workshop?wid=3759

2. If you choose to use Oracle@Azure, please refer to https://www.oracle.com/cloud/azure/oracle-database-at-azure/ to connect with an Oracle Database@Azure specialist and view OnBoarding Documentation.

This concludes this lab. You can **proceed now to the next lab**.

## Learn More

* [Oracle@Azure Documentation](https://www.oracle.com/cloud/azure/oracle-database-at-azure/)

## Acknowledgements

* **Author** - Paul Parkinson, Architect and Developer Advocate, Oracle Database

* **Last Updated By/Date** - 2024.
Loading

0 comments on commit 9996bcd

Please sign in to comment.