Ravi Srinivasan
2018-12-19 a069580026fa2447be477267f1aeb2d8f3659fde
commit | author | age
1a8071 1 # DevOps Culture & Practice
4ba1c2 2 <!-- > Red Hat Open Innovation Labs Enablement Material. Preparing Engineers, consultants and TSMs with all the cultural and engineering practices for life in a Residency.
d98f40 3
059af1 4 ![jenkins-crio-ocp-star-wars-kubes](./images/jenkins-crio-ocp-star-wars-kubes.png)
d98f40 5
4ba1c2 6 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. -->
1a8071 7
D 8 ## Learner Outcomes
4ba1c2 9 * Provide an immersive experience for students through practical application of DevOps culture using modern software development practices.
RS 10
11 * Allow students to experience the cultural shift they need to make in order to begin a successful DevOps journey.
1a8071 12
6c5da4 13 ## Cluster Information
ME 14
4ba1c2 15 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:
RS 16  - <**CLUSTER_URL**> -- Openshift Webconsole/API Server URL
17  - <**APPS_URL**> -- Wildcard subdomain for the exposed applications deployed in the Cluster
74d1f1 18
4ba1c2 19 ## Learner Pre-requisites
RS 20 The following table lists the software requirements for running the lab exercises:
21
dea1fe 22  | Software | Version | Check |
RR 23  | -------- | ------- | ----- |
145763 24  | OCP CLI | v3.11 | $ oc version &#124; grep -i --color oc  <br><span style="color:red">oc </span> v3.11.0+0cbc58b |
a06958 25  | Ansible | => v2.5 | $ ansible --version &#124; grep -i --color ansible <br> <span style="color:red">ansible</span> 2.7.2 <br> .... <br>|
RS 26  | NodeJS | v8.x LTS | $ node -v <br> v8.11.3|
dea1fe 27  | Git Installed | | $ git --version <br> git version 2.17.1|
RR 28  | 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 |
a06958 29  | Docker latest | Community Edition | $ docker --version <br> Docker version 18.05.0-ce, build f150324|
RS 30  | JDK | v1.8 | $ java -version <br>java version "1.8.0_131"<br>Java(TM) SE Runtime Environment (build 1.8.0_131-b11)<br>Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)|
6c5da4 31  | Access to an OpenShift cluster | | `oc login -u <username> -p <password> <CLUSTER_URL>` |
a06958 32  | 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 color schemes) | - | - |
dea1fe 33
4ba1c2 34 The lab exercises have been tested on the following operating systems
RS 35  * Fedora 29 64-bit
36  * Microsoft Windows 10 Pro 64-bit
37  * macOS 10.14 "Mojave"
38
39  **NOTE**
40  > You will need administrator or super user level access on your system to install the prerequisite software for all the three operating systems.
41  Locked down systems with restricted accounts are not supported.
a06958 42
RS 43  > You can use any text editor to edit lab files. Using an editor that provides syntax highlighting and automatic indentation is helpful. We recommend ***Atom*** or ***Visual Studio Code***  for this course.
4ba1c2 44
RS 45 ### Linux
46
47 1. Download and Install Node.js version 8.x LTS
48 ```bash
49 wget https://nodejs.org/dist/latest-v8.x/node-v8.14.0-linux-x64.tar.gz
50 tar -xvzf node-v8.14.0-linux-x64.tar.gz -C /usr/local/
51 ```
52 Edit your ***.bashrc*** file and add the ***node*** binary to your ***PATH*** environment variable
53 ```bash
54 echo 'export PATH=/usr/local/node-v8.14.0/bin:$PATH' >> $HOME/.bashrc
55 ```
56
57 2. Install OpenJDK version 1.8
58 ```bash
59 dnf install java-1.8.0-openjdk-devel
60 ```
61
62 3. Install Google Chrome version 70 or higher by downloading and running the the 64-bit RPM installer from https://google.com/chrome
63 ```bash
64 dnf install google-chrome-stable_current_x86_64.rpm
65 ```
66 4. Install Docker, Git and Ansible
67 ```bash
68 dnf install git ansible docker
69 systemctl enable docker
70 systemctl start docker
71 ```
72 5. Download and uncompress the OpenShift 3.11 client binary archive. Copy the ***oc*** binary to ***/usr/local/bin*** folder on your system
73 ```bash
74 wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
75 tar -xvzf openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
76 cp openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit/oc /usr/local/bin/
77 chmod +x /usr/local/bin/oc
78 ```
79 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
80 ```bash
81 dnf install <rpm_name>
82 ```
83
84 ### macOS
85 1. Install HomeBrew for macOS by following the installation instructions at https://brew.sh/
86
87 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.
88 ```bash
89 brew install node@8
90 ```
91 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
92
93 4. Install Google Chrome version 70 or higher by downloading it from https://google.com/chrome
94
95 5. Install Docker for Mac by following the instructions from https://store.docker.com/editions/community/docker-ce-desktop-mac
96
97 6. Install Git using brew
98 ```bash
99 brew install git
100 ```
101
a06958 102 7. You need Ansible version 2.5 or greater to run the exercise playbooks. If you have not installed Ansible, or have an older version, install or upgrade it using brew
4ba1c2 103 ```bash
RS 104 brew install ansible
105 ```
106 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
107
108 9. Download and uncompress the OpenShift 3.11 client binary archive. Copy the ***oc*** binary to ***/usr/local/bin*** folder on your system
109 ```bash
a06958 110 curl -L -O https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-mac.zip
4ba1c2 111 unzip openshift-origin-client-tools-v3.11.0-0cbc58b-mac.zip
RS 112 cp openshift-origin-client-tools-v3.11.0-0cbc58b-mac/oc /usr/local/bin/
113 chmod +x /usr/local/bin/oc
114 ```
115
116 ### Microsoft Windows
117
118 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.
119
120 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.
121
122 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.
123
124 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
125
126 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.
127
128 3. Install Google Chrome version 70 or higher by downloading it from https://google.com/chrome
129
130 4. Install Docker for Windows by following the instructions from https://hub.docker.com/editions/community/docker-ce-desktop-windows
131
132 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.
133
134 Follow the instructions at https://www.atlassian.com/git/tutorials/install-git#windows to install and verify your Git installation.
135
136 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
137
138 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.
139
140 Execute the following commands to run Ansible playbooks on Windows systems:
141
142 * Pull the container image containing the tools and utilities that are required for running Ansible playbooks:
143 ```bash
144 docker pull quay.io/redhat-training/do500-toolbox
145 ```
146
147 * Launch the container:
148 ```bash
149 docker run -it -v C:/do500-workspace:/home/tool-box/workarea:Z -p 8080:8080 -p 9000:9000 do500-toolbox /bin/bash
150 ```
151
152 The ***C:/do500-workspace*** directory on your Windows system contains the lab files and Ansible playbooks for the lab exercises.
153
154 * 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:
155 ```bash
156 bash-4.4$ oc login -u <username> -p <password> <CLUSTER_URL>
157 bash-4.4$ cd workarea/enablement-ci-cd
158 bash-4.4$ ansible-playbook playbook.yml ...
159 ```
160
161 <!-- 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. -->
162
1a8071 163 ## Git and Containers 101
D 164  - Git tutorial covering the basics - https://try.github.io/
165  - Handy guide for those new to containers - https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction/
0f4d08 166
b66742 167 ## Setup your IDE
4ba1c2 168 The following plug-ins are useful for providing syntax highlighting for various lab files:
b66742 169  - YAML Syntax Highlighter
D 170  - JavaScript Syntax Highlighter
171  - Vue.js
4ba1c2 172  - ESlint
RS 173  - Jenkinsfile