Skip to content

Commit

Permalink
Merge pull request #239 from aconley245/appworld-2025
Browse files Browse the repository at this point in the history
Appworld 2025
  • Loading branch information
lesleycw authored Dec 30, 2024
2 parents dae4ec6 + 7c18614 commit 2421836
Show file tree
Hide file tree
Showing 28 changed files with 379 additions and 28 deletions.
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.
Binary file added docs/class8/_static/lab3-Terraform_Destroy.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class8/_static/lab3-Terraform_Destroy2.png
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.
Binary file added docs/class8/_static/lab3-Terraform_Tfvars.png
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.
Binary file added docs/class8/_static/lab3-XcAudit_Firefox_Url.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class8/_static/lab3-XcAudit_Token.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class8/_static/lab3-XcAudit_Token_Ok.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class8/_static/lab3-XcAudit_WafAudit.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class8/_static/lab3-XcAudit_WafAudit_Lb.png
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.
15 changes: 8 additions & 7 deletions docs/class8/class8.rst
Original file line number Diff line number Diff line change
@@ -1,30 +1,31 @@
F5 Distributed Cloud: Automating Build & Operations
===================================================================
===================================================

Welcome
-------

This lab explores F5 Distributed Cloud's (XC) API-first framework and the automation of operational controls. The following
key concepts will be covered:​

- Leveraging the Developer Portal
- Leveraging Terraform
- Standardizing and Operationalizing delivery controls
- Standardizing and Operationalizing security controls
- Audit and Standard compliance

Outcomes:
-----------
Outcomes
--------

- Understanding of API-first framework
- Practical use cases to automate and walk away with
- Operationalizing (day-to-day controls) configuration management


Lab & Tasks:
------------
Lab & Tasks
-----------

The next page (Introduction) will cover the lab environment, access, and lab variables. The lab utilizes the Distributed Cloud
SaaS Console, Visual Studio Code, and Terraform to demonostrate:
SaaS Console, Visual Studio Code, and Terraform to demonstrate:

- Automated Creation of HTTP Health Checks
- Automated Creation of Cloud Origin Pools
Expand All @@ -33,7 +34,7 @@ SaaS Console, Visual Studio Code, and Terraform to demonostrate:
- Automated Creation and Deployment of Cloud Service Policies
- Automated Audits of Deployed Configurations

During the lab exercises we will explore different methods of protecting and exposing applications/webservers
During the lab exercises, we will explore different methods of protecting and exposing applications/webservers
that are included in the lab.

A Git Repository of the configurations used in this lab is available at https://github.com/f5devcentral/appworld-f5xc-automation
Expand Down
15 changes: 8 additions & 7 deletions docs/class8/intro.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Task 1: Lab Environment
| |
| will be configured as a SaaS Edge delivery and security service tier to a publicly hosted web|
| |
| application. Key elements lab attendees will interact with are as follows: |
| application. The key elements that lab attendees will interact with are as follows: |
| |
| * **F5 Distributed Cloud Console** |
| * **F5 Distributed Cloud API** |
Expand All @@ -37,14 +37,15 @@ The following will guide you through the initial Lab environment access within t
F5 Distributed Cloud Console. You should have received an email with an invitation to
access a F5 Distributed Cloud Tenant. The email will come from **[email protected]**.

The name of the F5 Distributed Cloud tenant that we will be using is **f5-xc-lab-app**
The name of the F5 Distributed Cloud tenant that we will be using is **f5-xc-lab-app**.
Additionally, the following are important elements of this lab and will be used throughout the
lab tasks that follow.
lab tasks that follow:

* F5 Distributed Cloud Console: **https://f5-xc-lab-app.console.ves.volterra.io/**
* Delegated Domain: **lab-app.f5demos.com**

After following the invitation email's to **Update Password**, proceed to the first step below.
After following the invitation email's to **Update Password** link, proceed to the first step
below.

+----------------------------------------------------------------------------------------------+
| 1. Please log into F5 Distributed Cloud Lab Tenant with your user ID (email) and password. |
Expand Down Expand Up @@ -84,7 +85,7 @@ After following the invitation email's to **Update Password**, proceed to the fi
| other administrative functions. |
| |
| .. note:: |
| *For the purposes of this lab, permissions have been restricted to lab operations. As a* |
| *For the purposes of this lab, permissions have been restricted to lab operations. As* |
| |
| *some menus will be locked and not visible.* |
+----------------------------------------------------------------------------------------------+
Expand All @@ -100,15 +101,15 @@ After following the invitation email's to **Update Password**, proceed to the fi
| |
| Console. For the purposes of this lab, each lab attendee has been provided a unique |
| |
| **namespace** which you will defaulted to (in terms of GUI navigation) for all tasks |
| **namespace** which you will be defaulted to (in terms of GUI navigation) for all tasks |
| |
| performed through the course of this lab. |
| |
| 9. Click on the **Select Service** in the left-hand navigation. In the resulting fly out |
| |
| navigation, click **Web App & API Protection**. |
| |
| 10. In the **Web App & API Protection** configuration screen observe the URL. In the URI |
| 10. In the **Web App & API Protection** configuration screen, observe the URL. In the URI |
| |
| path, locate the **<adjective-animal>** namespace that you have been assigned. It will be|
| |
Expand Down
2 changes: 1 addition & 1 deletion docs/class8/lab1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ utilizing the Developer Portal.
| |
| |lab1-Account_Settings| |
+---------------------------------------------------------------------------------------------------------------+
| 3. In the resulting screen, click **Credentials** under the Peronal Management Heading on the left. |
| 3. In the resulting screen, click **Credentials** under the **Personal Management** Heading on the left. |
| |
| |lab1-Credentials| |
+---------------------------------------------------------------------------------------------------------------+
Expand Down
32 changes: 19 additions & 13 deletions docs/class8/lab2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Lab 2: Leveraging Terraform

The following lab tasks will guide you through using Terraform to deploy and secure a Web based application.
Students will start by creating an authentication certificate within Distributed Cloud. Terraform will be
configured to utilize the certificate for authenticating the API calls. Next, a Tfvars file is created to
configured to utilize the certificate for authenticating the API calls. Next, a **tfvars** file is created to
customize the deployment to match the student's environment. Terraform will then be used to deploy an HTTP
Health Check, Origin Pool, and HTTP Load Balancer. Students will then modify and apply the Terraform
configuration to add a Web Application Firewall to their existing HTTP Load Balancer.
Expand All @@ -12,14 +12,20 @@ configuration to add a Web Application Firewall to their existing HTTP Load Bala

Task 1: Deploy a Web Application with Terraform
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In this task, you will create an API Certificate for Terraform to authneticate to the Distributed Cloud API. Next,
you will create a Tfvars file to specify environment variables unique to your environment. After the Tfvars file is
created, you will intialize Terraform and then deploy an HTTP Health Check, Origin Pool, and HTTP Load Balancer.
In this task, you will create an API Certificate for Terraform to authenticate to the Distributed Cloud API.
Next, you will create a **tfvars** file to specify environment variables unique to your environment. After the
**tfvars** file is created, you will **intialize** Terraform environment. You use the **initialize** command to
setup the local Terraform environment and download the correct version of any required modules. After the
environment is initialized, the **plan** command is used to perform a dry run of the terraform configuration.
Planning does not create any objects. Planning allows you to verify your syntax. The last step is to use
**apply** to actually create an HTTP Health Check, Origin Pool, and HTTP Load Balancer.

+---------------------------------------------------------------------------------------------------------------+
| **Clone the appworld-f5xc-automation repo** |
+===============================================================================================================+
| 1. Access VSCode server that is part of your UDF deployment. |
| 1. In your UDF deployment, click on the **VS CODE** Access method under the **Client** system. This will |
| |
| launch a tab in your web browser. |
+---------------------------------------------------------------------------------------------------------------+
| 2. From the VS Code Menu bar select **Terminal** and then **New Terminal**. |
| |
Expand All @@ -41,13 +47,13 @@ created, you will intialize Terraform and then deploy an HTTP Health Check, Orig
| |
| Console <https://https://f5-xc-lab-app.console.ves.volterra.io/> |
+---------------------------------------------------------------------------------------------------------------+
| 2. In the top right corner of the Distributed Cloud Console click the **User Icon** dropdown and select |
| 2. In the top right corner of the Distributed Cloud Console, click the **User Icon** dropdown and select |
| |
| **Account Settings**. |
| |
| |lab1-Account_Settings| |
+---------------------------------------------------------------------------------------------------------------+
| 3. In the resulting screen click **Credentials** under the Peronal Management Heading on the left. |
| 3. In the resulting screen click **Credentials** under the **Personal Management** Heading on the left. |
| |
| |lab1-Credentials| |
+---------------------------------------------------------------------------------------------------------------+
Expand Down Expand Up @@ -111,13 +117,13 @@ created, you will intialize Terraform and then deploy an HTTP Health Check, Orig
+---------------------------------------------------------------------------------------------------------------+
| **Create a tfvars File for Specifying Environment Specific Variables** |
+===============================================================================================================+
| 1. From the **EXPLORER** frame, right click the **Terraform** folder, and then select new file. Enter the |
| 1. From the **EXPLORER** panel, right click the **Terraform** folder, and then select new file. Enter the |
| |
| name **terraform.tfvars** for the new file that is created and press enter. |
| |
| |lab2-Terraform_Tfvars| |
+---------------------------------------------------------------------------------------------------------------+
| 2. This will open the **terraform.tfvars** file in the right frame of Visual Studio Code, enter the following |
| 2. This will open the **terraform.tfvars** file in the right panel of Visual Studio Code, enter the following |
| |
| values into the file: |
| |
Expand Down Expand Up @@ -213,7 +219,7 @@ objects within Distributed Cloud.
+---------------------------------------------------------------------------------------------------------------+
| **Edit Your Terraform Code to Create an Application Firewall and Add It to the Load Balancer** |
+===============================================================================================================+
| 1. From the Visual Studio Code Explorer frame, click **main.tf**, to open the Terraform configuration. |
| 1. From the Visual Studio Code Explorer panel, click **main.tf**, to open the Terraform configuration. |
| |
| |lab2-Terraform_AppFw| |
+---------------------------------------------------------------------------------------------------------------+
Expand Down Expand Up @@ -331,11 +337,11 @@ objects within Distributed Cloud.
+---------------------------------------------------------------------------------------------------------------+
| **End of Lab 2** |
+===============================================================================================================+
| This concludes Lab 2. In this lab, you learned how to setup Terraform to authenticate to to Distributed Cloud |
| This concludes Lab 2. In this lab, you learned how to set up Terraform to authenticate to the F5 Distributed |
| |
| utilizing an API Certificate. You then created a Tfvars file to customize the deployment to match your |
| Cloud API with an API Certificate. You then created a **tfvars** file to customize the deployment to match |
| |
| environment. After that, you used Terraform to deploy an HTTP Health Check, Origin Pool, and HTTP Load |
| your environment. After that, you used Terraform to deploy an HTTP Health Check, Origin Pool, and HTTP Load |
| |
| Balancer. The Terraform configuration was then modified to create a Web Application Firewall policy and apply |
| |
Expand Down
Loading

0 comments on commit 2421836

Please sign in to comment.