From 3e2c63f4a22e1c0de3243d4cb03fb247a5d87386 Mon Sep 17 00:00:00 2001
From: Ravi Srinivasan <rsriniva@redhat.com>
Date: Tue, 18 Dec 2018 06:50:12 +0100
Subject: [PATCH] Draft BYOD instructions for Mac, Windows and Linux

---
 exercises/index.html  |    4 
 exercises/_sidebar.md |    2 
 exercises/README.md   |  155 +++++++++++++++++++++++++++++++++++++++++++++++----
 3 files changed, 145 insertions(+), 16 deletions(-)

diff --git a/exercises/README.md b/exercises/README.md
index 450ae20..d807e99 100644
--- a/exercises/README.md
+++ b/exercises/README.md
@@ -1,26 +1,28 @@
 # DevOps Culture & Practice
-> Red Hat Open Innovation Labs Enablement Material. Preparing Engineers, consultants and TSMs with all the cultural and engineering practices for life in a Residency.
+<!-- > Red Hat Open Innovation Labs Enablement Material. Preparing Engineers, consultants and TSMs with all the cultural and engineering practices for life in a Residency.
 
 ![jenkins-crio-ocp-star-wars-kubes](./images/jenkins-crio-ocp-star-wars-kubes.png)
 
-This is a collection of practices and exercises to take a learner through a four day simulated residency experience. Learners can expect to be exposed to labs practices such as [Event Storming](https://rht-labs.github.io/practice-library/practices/event-storming/), [Social Contract](https://rht-labs.github.io/practice-library/practices/social-contract/) and [Impact Mapping](https://rht-labs.github.io/practice-library/practices/impact-mapping/) among many more which can be found in our [Practice Library](https://rht-labs.github.io/practice-library/). Learners will also be exposed to `Labs CI/CD` - how we use OpenShift & Ansible in conjunction with Jenkins to automate build and deploy of a sample todolist application and its required infrastructure.
+This is a collection of practices and exercises to take a learner through a four day simulated residency experience. Learners can expect to be exposed to labs practices such as [Event Storming](https://rht-labs.github.io/practice-library/practices/event-storming/), [Social Contract](https://rht-labs.github.io/practice-library/practices/social-contract/) and [Impact Mapping](https://rht-labs.github.io/practice-library/practices/impact-mapping/) among many more which can be found in our [Practice Library](https://rht-labs.github.io/practice-library/). Learners will also be exposed to `Labs CI/CD` - how we use OpenShift & Ansible in conjunction with Jenkins to automate build and deploy of a sample todolist application and its required infrastructure. -->
 
 ## Learner Outcomes
-1. Prepare participants to *jointly* deliver on upcoming Labs Residencies - specifically: senior consultants, architects, and agile PMs
-2. Explore all principle practices used in a residency through a hands on real life experience
-3. Enable countries and regions to run the session independently
+* Provide an immersive experience for students through practical application of DevOps culture using modern software development practices.
+
+* Allow students to experience the cultural shift they need to make in order to begin a successful DevOps journey.
 
 ## Cluster Information
 
-An OpenShift Cluster is required to complete the Enablement exercises. Learners will receive by email (and by the instructors onsite) the following information regarding the OpenShift Platform:
- - <CLUSTER_URL> -- Openshift Webconsole/API url
- - <APPS_URL> -- Wildcard subdomain for the exposed applications deployed in the Cluster
+An OpenShift Cluster is required to complete the lab exercises. Students will receive by email (and by the instructors on site) the following information regarding the OpenShift cluster:
+ - <**CLUSTER_URL**> -- Openshift Webconsole/API Server URL
+ - <**APPS_URL**> -- Wildcard subdomain for the exposed applications deployed in the Cluster
 
-## Learner pre-requisites
+## Learner Pre-requisites
+The following table lists the software requirements for running the lab exercises:
+
  | Software | Version | Check |
  | -------- | ------- | ----- |
  | OCP CLI | v3.11 | $ oc version &#124; grep -i --color oc  <br><span style="color:red">oc </span> v3.11.0+0cbc58b |
- | Ansible | => v2.6 | $ ansible --version &#124; grep -i --color ansible <br> <span style="color:red">ansible</span> 2.7.2 <br> .... <br>| 
+ | Ansible | => v2.6 | $ ansible --version &#124; grep -i --color ansible <br> <span style="color:red">ansible</span> 2.7.2 <br> .... <br>|
  | NodeJS | v8.x | $ node -v <br> v8.11.3|
  | Git Installed | | $ git --version <br> git version 2.17.1|
  | Google Chrome Web Browser | (>59) | click [here](chrome://version/) if Google Chrome is your default browser else copy the link `chrome://version/` in your Chome |
@@ -29,14 +31,141 @@
  | Access to an OpenShift cluster | | `oc login -u <username> -p <password> <CLUSTER_URL>` |
  | Text editor such as Atom, IntelliJ or Visual Studio Code <br><br> (The exercises were created using `VSCode`, so the screenshots will match its layout and colour schemes) | - | - |
 
+The lab exercises have been tested on the following operating systems
+ * Fedora 29 64-bit
+ * Microsoft Windows 10 Pro 64-bit
+ * macOS 10.14 "Mojave"
+
+ **NOTE**
+ > You will need administrator or super user level access on your system to install the prerequisite software for all the three operating systems.
+ Locked down systems with restricted accounts are not supported.
+
+### Linux
+
+1. Download and Install Node.js version 8.x LTS
+```bash
+wget https://nodejs.org/dist/latest-v8.x/node-v8.14.0-linux-x64.tar.gz
+tar -xvzf node-v8.14.0-linux-x64.tar.gz -C /usr/local/
+```
+Edit your ***.bashrc*** file and add the ***node*** binary to your ***PATH*** environment variable
+```bash
+echo 'export PATH=/usr/local/node-v8.14.0/bin:$PATH' >> $HOME/.bashrc
+```
+
+2. Install OpenJDK version 1.8
+```bash
+dnf install java-1.8.0-openjdk-devel
+```
+
+3. Install Google Chrome version 70 or higher by downloading and running the the 64-bit RPM installer from https://google.com/chrome
+```bash
+dnf install google-chrome-stable_current_x86_64.rpm
+```
+4. Install Docker, Git and Ansible
+```bash
+dnf install git ansible docker
+systemctl enable docker
+systemctl start docker
+```
+5. Download and uncompress the OpenShift 3.11 client binary archive. Copy the ***oc*** binary to ***/usr/local/bin*** folder on your system
+```bash
+wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
+tar -xvzf openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
+cp openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit/oc /usr/local/bin/
+chmod +x /usr/local/bin/oc
+```
+6. Download and install Atom text editor RPM installer from https://atom.io/download/rpm, or the Visual Studio Code RPM installer from https://code.visualstudio.com/docs/?dv=linux64_rpm
+```bash
+dnf install <rpm_name>
+```
+
+### macOS
+1. Install HomeBrew for macOS by following the installation instructions at https://brew.sh/
+
+2. Install Node.js version 8.x LTS using the brew command, and follow the instructions to add the **node** binary to the **PATH** environment variable.
+```bash
+brew install node@8
+```
+3. Install JDK version 1.8 for MacOS by using the installer from the Oracle website at https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
+
+4. Install Google Chrome version 70 or higher by downloading it from https://google.com/chrome
+
+5. Install Docker for Mac by following the instructions from https://store.docker.com/editions/community/docker-ce-desktop-mac
+
+6. Install Git using brew
+```bash
+brew install git
+```
+
+7. Install Ansible using brew
+```bash
+brew install ansible
+```
+8. Download and install Atom text editor from https://atom.io/download/mac, or Visual Studio Code from https://code.visualstudio.com/docs/?dv=osx
+
+9. Download and uncompress the OpenShift 3.11 client binary archive. Copy the ***oc*** binary to ***/usr/local/bin*** folder on your system
+```bash
+wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-mac.zip
+unzip openshift-origin-client-tools-v3.11.0-0cbc58b-mac.zip
+cp openshift-origin-client-tools-v3.11.0-0cbc58b-mac/oc /usr/local/bin/
+chmod +x /usr/local/bin/oc
+```
+
+### Microsoft Windows
+
+1. Download the 64-bit Node.js 8.x LTS Windows binary archive file from https://nodejs.org/dist/latest-v8.x/node-v8.14.0-win-x64.zip.
+
+Extract the zip file archive under a suitable folder in the ***C:\*** drive. Make sure that your directory name does not have any spaces in it.
+
+Add the directory where you uncompressed the zip file to the ***PATH*** environment variable, so that the ***node.exe*** and ***npm.cmd*** executable files are available in the system path.
+
+2. Install JDK version 1.8 for Windows 64-bit by using the installer from the Oracle website at https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
+
+Ensure that you install the JDK into a directory which has no spaces in its name. Add the ***JAVA_HOME\bin*** directory to the ***PATH*** environment variable, so that the ***java.exe*** and ***javac.exe*** executable files are available in the system path.
+
+3. Install Google Chrome version 70 or higher by downloading it from https://google.com/chrome
+
+4. Install Docker for Windows by following the instructions from https://hub.docker.com/editions/community/docker-ce-desktop-windows
+
+5. Download and install Git for Windows by using the 64-bit installer from https://github.com/git-for-windows/git/releases/download/v2.20.0.windows.1/Git-2.20.0-64-bit.exe.
+
+Follow the instructions at https://www.atlassian.com/git/tutorials/install-git#windows to install and verify your Git installation.
+
+6. Download and install Atom text editor from https://github.com/atom/atom/releases/download/v1.33.0/AtomSetup-x64.exe, or Visual Studio Code from https://code.visualstudio.com/docs/?dv=win64
+
+7. You will use a custom container image for running OpenShift client commands, and Ansible playbooks. You will map a directory on your local Windows system containing Ansible playbooks to a directory inside the container, and run the Ansible playbooks from within the container.
+
+Execute the following commands to run Ansible playbooks on Windows systems:
+
+* Pull the container image containing the tools and utilities that are required for running Ansible playbooks:
+```bash
+docker pull quay.io/redhat-training/do500-toolbox
+```
+
+* Launch the container:
+```bash
+docker run -it -v C:/do500-workspace:/home/tool-box/workarea:Z -p 8080:8080 -p 9000:9000 do500-toolbox /bin/bash
+```
+
+The ***C:/do500-workspace*** directory on your Windows system contains the lab files and Ansible playbooks for the lab exercises.
+
+* Once you are inside the container, you can log in to the OpenShift cluster using the OpenShift ***oc*** command-line client, and launch the playbooks:
+```bash
+bash-4.4$ oc login -u <username> -p <password> <CLUSTER_URL>
+bash-4.4$ cd workarea/enablement-ci-cd
+bash-4.4$ ansible-playbook playbook.yml ...
+```
+
+<!-- 7. Download and uncompress the OpenShift 3.11 client binary archive from https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-windows.zip, and extract it under the ***C:\*** drive. Add the directory where you uncompressed the zip file to the ***PATH*** environment variable, so that the ***oc.exe*** executable files is available in the system path. -->
+
 ## Git and Containers 101
  - Git tutorial covering the basics - https://try.github.io/
  - Handy guide for those new to containers - https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction/
 
 ## Setup your IDE
-If you are using VSCode, Atom, Eclipse, IntelliJ or some other IDE that supports Plugins; some handy ones that will make the labs easier are:
+The following plug-ins are useful for providing syntax highlighting for various lab files:
  - YAML Syntax Highlighter
- - Autosave
  - JavaScript Syntax Highlighter
  - Vue.js
- - Eslint
+ - ESlint
+ - Jenkinsfile
diff --git a/exercises/_sidebar.md b/exercises/_sidebar.md
index d778d59..1c517a0 100644
--- a/exercises/_sidebar.md
+++ b/exercises/_sidebar.md
@@ -1,5 +1,5 @@
 * [Home](/)
-* [The Practices](the-practices/README.md)
+<!-- * [The Practices](the-practices/README.md) -->
 * [1. The Manual Menace](1-the-manual-menace/README.md)
 * [2. Attack of the Pipelines](2-attack-of-the-pipelines/README.md)
 * [3. Revenge of the Automated Testing](3-revenge-of-the-automated-testing/README.md)
diff --git a/exercises/index.html b/exercises/index.html
index 1eccc72..2f63f90 100644
--- a/exercises/index.html
+++ b/exercises/index.html
@@ -3,7 +3,7 @@
 
 <head>
   <meta charset="UTF-8">
-  <title>Residency Readiness</title>
+  <title>DevOps Culture & Practice</title>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
   <meta name="description" content="Training material for the Red Hat Open Innovation Labs">
   <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
@@ -15,7 +15,7 @@
   <div id="app"></div>
   <script>
     window.$docsify = {
-      name: 'Red Hat Open Innovation Labs Exercises',
+      name: 'DevOps Culture & Practice Lab Exercises',
       repo: 'https://github.com/rht-labs/enablement-docs',
       loadSidebar: true,
       subMaxLevel: 5,

--
Gitblit v1.9.3