Skip to content

Dev > Master #193

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 20 commits into from
Aug 13, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
*.sublime-*
pdf/*
docs/.vscode/settings.json
python*
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
sudo: false
language: python
notifications:
webhooks: https://outlook.office.com/webhook/99876b97-a307-42ec-b360-d754cfc63814@dd3dfd2f-6a3b-40d1-9be0-bf8327d81c50/TravisCI/65593d1ff6954fc6b380d291e5fccdb9/752b8607-8117-4f4e-84aa-a041d208eba7
before_install:
- sudo apt-get -qq update
- sudo apt-get install -y graphviz enchant
Expand Down
2 changes: 1 addition & 1 deletion containthedocs-image
Original file line number Diff line number Diff line change
@@ -1 +1 @@
: ${DOC_IMG:=0xhiteshpatel/containthedocs:2.7}
: ${DOC_IMG:=f5devcentral/containthedocs:1.0.4_agility}
39 changes: 0 additions & 39 deletions containthedocs-pdf-perclass.sh

This file was deleted.

11 changes: 0 additions & 11 deletions containthedocs-pdf.sh

This file was deleted.

1 change: 1 addition & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
_build/*
python/*
Binary file removed docs/_static/back_cover.png
Binary file not shown.
13 changes: 13 additions & 0 deletions docs/_static/css/f5_agility_theme.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
div[class^='highlight'] pre, div[class~='docutils'], code, .code.descname {
background: lightgrey !important;
}

img {
/* max-width: 100%;
height: auto;*/
margin-bottom: 12px;
}

table {
margin-bottom: 12px;
}
Binary file removed docs/_static/front_cover.png
Binary file not shown.
22 changes: 11 additions & 11 deletions docs/class1/bigipbasics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ BIG-IP Basics (optional)
------------------------

Just in case you're new to the F5 BIG-IP platform (or need a refresher) we've
included some links and videos below that will help get you started.
included some links and videos below that will help get you started.

What is BIG-IP
^^^^^^^^^^^^^^

.. raw:: html

<iframe width="600" height="315" src="http://www.youtube.com/embed/D6J_j7HdkV8?rel=0" frameborder="0" gesture="media" allowfullscreen></iframe>
<iframe width="600" height="315" src="https://www.youtube.com/embed/D6J_j7HdkV8?rel=0" frameborder="0" gesture="media" allowfullscreen></iframe>

*Source: https://devcentral.f5.com/articles/lightboard-lessons-what-is-big-ip-26793*

Expand Down Expand Up @@ -56,7 +56,7 @@ HA Proxy to BIG-IP Quick Start
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

If you're already familiar with HA Proxy, learning F5 BIG-IP is straightforward
once you learn the associated F5 terminology.
once you learn the associated F5 terminology.

Here is a list of common HA Proxy configuration terminology and its F5 equivalent:

Expand Down Expand Up @@ -84,13 +84,13 @@ NGINX to BIG-IP Quick Start
If you are already familiar with NGINX, learning F5 BIG-IP will be
straightforward once you learn the F5 terminology.

NGINX administrators usually use multiple files and leverage the include
command in their config to break down the config and make it easier to
NGINX administrators usually use multiple files and leverage the include
command in their config to break down the config and make it easier to
manage. F5 leverages *Profiles* which can be applied to a *Virtual Server*.

NGINX uses in-band (passive) health monitors which can be enabled on F5 through
the creation of an *inband monitor*. BIG-IP also supports the use of active
health monitors, which will poll the pool member periodically. Both can be
NGINX uses in-band (passive) health monitors which can be enabled on F5 through
the creation of an *inband monitor*. BIG-IP also supports the use of active
health monitors, which will poll the pool member periodically. Both can be
used together for better monitoring of your services.

F5 BIG-IP supports control-plane and data-plane programmability with:
Expand All @@ -99,13 +99,13 @@ F5 BIG-IP supports control-plane and data-plane programmability with:

- TCL through the use of iRules and iApp Templates

A lot of the manual configuration and scripting steps that are required with NGINX
A lot of the manual configuration and scripting steps that are required with NGINX
are supported more easily through various config parameters and profiles in BIG-IP.
By leveraging the control-plane programmability features this class covers you can
achieve full automation of your services with the BIG-IP platform.

F5 BIG-IP is designed to be a full proxy by default. In most cases there is no
need to tune TCP & HTTP buffering like you would on NGINX (i.e. using
need to tune TCP & HTTP buffering like you would on NGINX (i.e. using
``proxy_buffering``). This is because the default settings have been optimized
and can adapt to most situations.

Expand Down Expand Up @@ -135,4 +135,4 @@ Here is a list of common NGINX configuration terminology and its F5 equivalent:
| location & proxy_pass | LTM HTTP Policy Option |
+----------------------------------+--------------------------------------------+
| Proxy Cache | Web Acceleration Policy |
+----------------------------------+--------------------------------------------+
+----------------------------------+--------------------------------------------+
4 changes: 2 additions & 2 deletions docs/class1/class1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ Class 1: Introduction to Automation & Orchestration
This introductory class covers the following topics:

- Imperative Automation using the F5 BIG-IP iControl REST API
- Service Abstraction and Automation using F5 iApp templates
- Building Declarative Interfaces with the F5 iWorkflow product
- Service Abstraction and Automation using F5 App Services 3 Extension (AS3)
- Building Declarative Interfaces with AS3 and Ansible Tower

Expected time to complete: **4 hours**

Expand Down
2 changes: 1 addition & 1 deletion docs/class1/conclusion.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Conclusion
label = "Class 1: Introduction to Automation & Orchestration"
bigip [label="BIG-IP"]
iapps [label="iApp Templates&#92;n& Deployments"]
iwf [label="iWorkflow Service&#92;nTemplates,&#92;nCatalog & Deployment"]
iwf [label="AS3 Templates & Deployment"]
{
rank=same
rest_basics [label="REST Basics"]
Expand Down
17 changes: 12 additions & 5 deletions docs/class1/labinfo/labinfo.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ traffic flow we can keep the data plane fairly simple. The following
components have been included in your lab environment:

- 2 x F5 BIG-IP VE (v12.1.x)
- 1 x F5 iWorkflow VE (v2.3)
- 1 x Ansible Tower Server
- 1 x Linux Server
- 1 x Linux Jumphost

Expand Down Expand Up @@ -75,12 +75,10 @@ components:
- ``admin/admin``

``root/default``
* - iWorkflow
* - Ansible Tower
- 10.1.1.12
- N/A
- ``admin/admin``

``root/default``
* - Linux Server
- 10.1.1.15
- **Internal:** 10.1.10.100-103
Expand All @@ -90,7 +88,16 @@ Lab Environments
----------------

In order to complete this class you will need to utilize a specific
**Lab Environment**. You can consume this training in a couple of
**Lab Environment**.

.. raw:: html

<iframe width="600" height="315" src="https://www.youtube.com/embed/DljGxqQzeAs" frameborder="0" gesture="media" allowfullscreen></iframe>

*Source: https://youtu.be/DljGxqQzeAs*


You can consume this training in a couple of
ways:

- Pre-built Environment using a Ravello Blueprint
Expand Down
2 changes: 1 addition & 1 deletion docs/class1/labinfo/labtopology.diag
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ nwdiag {
// label = "Management";
// color = "#27B331";
color = "#6CDB7A";
"iWorkflow" [address = "10.1.1.12"];
"Ansible Tower" [address = "10.1.1.12"];
"Linux\nJumphost" [address = "10.1.1.20"];
}

Expand Down
Binary file modified docs/class1/module1/images/lab-1-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/class1/module1/lab1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ all the correct attributes already populated.
guide by using the **Lab Guide** bookmark in Chrome.

#. Open Google Chrome and navigate to the following bookmarks: **BIG-IP
A GUI**, **BIG-IP B GUI** and **iWorkflow GUI**. Bypass any SSL errors that
A GUI**, and **BIG-IP B GUI**. Bypass any SSL errors that
appear and ensure you see the login screen for each bookmark.

.. WARNING:: Skipping this step will result in errors in subsequent steps
Expand Down
24 changes: 11 additions & 13 deletions docs/class1/module1/lab2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,11 @@ Lab 1.2: REST API Authentication & ‘example’ Templates
}

One of the many basic concepts related to interaction with REST API’s is
how a particular consumer is authenticated to the system. BIG-IP and
iWorkflow support two types of authentication: **HTTP BASIC** and
**Token-Based (TBA)**. It’s important to understand both of these authentication
mechanisms, as consumers of the API will often make use of both types
depending on the use case. This lab will demonstrate how to interact
with both types of authentication.
how a particular consumer is authenticated to the system. BIG-IP supports
two types of authentication: **HTTP BASIC** and **Token-Based (TBA)**. It’s
important to understand both of these authentication mechanisms, as consumers
of the API will often make use of both types depending on the use case.
This lab will demonstrate how to interact with both types of authentication.

Throughout this and other classes in the series we will make use of the Postman
REST API Client. You can find more information about Postman at
Expand Down Expand Up @@ -189,13 +188,12 @@ attack surface being exposed unnecessarily. As a result, **Token Based
Authentication (TBA)** is preferred in many cases. TBA only sends
the credentials once, on the first request. The system then responds
with a unique token for that session and the consumer then uses that
token for all subsequent requests. BIG-IP and iWorkflow support
token-based authentication that drops down to the underlying
authentication subsystems available in TMOS. As a result, the system can
be configured to support external authentication providers (Active Directory,
RADIUS, TACACS, etc) and those authentication methods can flow through to
the REST API. In this task we will demonstrate TBA using the local
authentication database, however, authentication to external providers
token for all subsequent requests. BIG-IP supports token-based authentication
that drops down to the underlying authentication subsystems available in TMOS.
As a result, the system can be configured to support external authentication
providers (Active Directory, RADIUS, TACACS, etc) and those authentication methods
can flow through to the REST API. In this task we will demonstrate TBA using the
local authentication database, however, authentication to external providers
is fully supported.

.. NOTE:: For more information about external authentication providers see the
Expand Down
4 changes: 2 additions & 2 deletions docs/class1/module1/lab3.rst
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ Perform the following steps to change the ``root`` user password:

|lab-3-5|

#. **Repeat the procedure above to change the password back to** ``default``
#. **Repeat the procedure above to change the password back to** ``default``.

Perform the following steps to change the **admin** user password:

Expand All @@ -209,7 +209,7 @@ Perform the following steps to change the **admin** user password:
#. You can verify the password has been changed by opening an SSH session
OR by logging into TMUI (HTTP GUI) to BIG-IP A in a Chrome browser tab.

#. **Repeat the procedure above to change the password back to** ``admin``
#. **Repeat the procedure above to change the password back to** ``admin``.

.. |lab-3-1| image:: images/lab-3-1.png
.. |lab-3-2| image:: images/lab-3-2.png
Expand Down
10 changes: 9 additions & 1 deletion docs/class1/module1/lab5.rst
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ Task 1 - Open and Run a Collection

#. Select the ``F5 Programmability: Class 1`` Collection then the
``Lab 1.5 - Building Imperative Workflows`` folder. Next, be sure the
environment is set to ``F5 Programmability: Class 1``:
environment is set to ``F5 Programmability: Class 1`` and ``Persist Variables``
is selected:

|lab-5-4|

Expand Down Expand Up @@ -114,6 +115,13 @@ Module 2 you will see the importance of leveraging **Abstraction**
and **Declarative Interfaces** to minimize the amount of time spent on building
Imperative Workflows.

.. raw:: html

<iframe width="600" height="315" src="https://www.youtube.com/embed/WxAirVNyo6I" frameborder="0" gesture="media" allowfullscreen></iframe>

*Source: https://youtu.be/WxAirVNyo6I*


.. |postman-runner-button| image:: /images/postman-runner-button.png
.. |lab-5-1| image:: images/lab-5-1.png
.. |lab-5-2| image:: images/lab-5-2.png
Expand Down
10 changes: 9 additions & 1 deletion docs/class1/module1/lab6.rst
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,8 @@ Perform the following steps to build the cluster:

#. Select the ``F5 Programmability: Class 1`` Collection then the
``Lab 1.6 - Build a Cluster`` folder. Next, be sure the
environment is set to ``F5 Programmability: Class 1``:
environment is set to ``F5 Programmability: Class 1`` and ``Persist Variables``
is selected:

|lab-6-1|

Expand All @@ -110,6 +111,13 @@ Perform the following steps to build the cluster:
If you are have an issue with your authentication token issue please return to
Lab 1.3, Step 8 in Postman to set your admin password to ``admin``.


.. raw:: html

<iframe width="600" height="315" src="https://www.youtube.com/embed/je1fCb1qBZE" frameborder="0" gesture="media" allowfullscreen></iframe>

*Source: https://youtu.be/je1fCb1qBZE*

Task 2 - Verify the Built Cluster in BIG-IP GUI
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down
9 changes: 3 additions & 6 deletions docs/class1/module1/module1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,14 @@ focus on demonstrating an **Imperative** approach to automation.
.. NOTE:: The Lab Deployment for this lab includes two BIG-IP devices.
For most of the labs, we will only be configuring the BIG-IP A
device (management IP configuration and licensing has been completed).
BIG-IP B will have some minimal configuration pre-loaded. In real-world
BIG-IP B will have some minimal configuration pre-loaded. In a real-world
scenario, it would be necessary to perform Device Onboarding functions
on ALL BIG-IP devices. In this lab exercise, we chose to perform it only
on a single device due to lab time allocation constraints.

.. NOTE:: In order to confirm the results of REST API calls made in this lab, it's
recommended to keep GUI/SSH sessions to BIG-IP and iWorkflow devices open.
By default, BIG-IP and iWorkflow will log all the REST API related events locally
recommended to keep GUI/SSH sessions to the BIG-IP devices open.
By default, BIG-IP will log all the REST API related events locally
to **restjavad.0.log** . These logs can also be directed to a remote syslog server
(see https://support.f5.com/csp/article/K13080). On a side note, the **ltm**
log files listed below contains log messages specific to BIG-IP local
Expand All @@ -59,9 +59,6 @@ focus on demonstrating an **Imperative** approach to automation.

- /var/log/restjavad.0.log

- iWorkflow:

- /var/log/restjavad.0.log

.. toctree::
:maxdepth: 1
Expand Down
Binary file modified docs/class1/module2/images/lab-1-1.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 modified docs/class1/module2/images/lab-1-2.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 modified docs/class1/module2/images/lab-2-1.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 modified docs/class1/module2/images/lab-2-2.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 modified docs/class1/module2/images/lab-2-3.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 modified docs/class1/module2/images/lab-2-4.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 modified docs/class1/module2/images/lab-2-5.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 modified docs/class1/module2/images/lab-2-6.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/class1/module2/images/lab-2-7.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/class1/module2/images/lab-2-8.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 modified docs/class1/module2/images/lab-3-1.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 modified docs/class1/module2/images/lab-3-10.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 modified docs/class1/module2/images/lab-3-11.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 modified docs/class1/module2/images/lab-3-12.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 modified docs/class1/module2/images/lab-3-13.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 modified docs/class1/module2/images/lab-3-14.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 modified docs/class1/module2/images/lab-3-15.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 modified docs/class1/module2/images/lab-3-16.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 modified docs/class1/module2/images/lab-3-17.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 modified docs/class1/module2/images/lab-3-18.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 modified docs/class1/module2/images/lab-3-19.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 modified docs/class1/module2/images/lab-3-2.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 modified docs/class1/module2/images/lab-3-20.png
Binary file modified docs/class1/module2/images/lab-3-21.png
Binary file modified docs/class1/module2/images/lab-3-22.png
Binary file modified docs/class1/module2/images/lab-3-23.png
Binary file modified docs/class1/module2/images/lab-3-24.png
Binary file modified docs/class1/module2/images/lab-3-25.png
Binary file modified docs/class1/module2/images/lab-3-26.png
Binary file modified docs/class1/module2/images/lab-3-27.png
Binary file modified docs/class1/module2/images/lab-3-28.png
Binary file modified docs/class1/module2/images/lab-3-29.png
Binary file modified docs/class1/module2/images/lab-3-3.png
Binary file modified docs/class1/module2/images/lab-3-30.png
Binary file modified docs/class1/module2/images/lab-3-31.png
Binary file modified docs/class1/module2/images/lab-3-32.png
Binary file modified docs/class1/module2/images/lab-3-4.png
Binary file modified docs/class1/module2/images/lab-3-5.png
Binary file modified docs/class1/module2/images/lab-3-6.png
Binary file modified docs/class1/module2/images/lab-3-7.png
Binary file modified docs/class1/module2/images/lab-3-8.png
Binary file modified docs/class1/module2/images/lab-3-9.png
Loading