Ravi Srinivasan
2019-03-12 0200ec32bf98f468cd161b28cfdb71c030e49720
commit | author | age
664135 1 # DevOps Culture & Practice
D 2
3 ## Learner Outcomes
3e2c63 4 * Provide an immersive experience for students through practical application of DevOps culture using modern software development practices.
RS 5
6 * Allow students to experience the cultural shift they need to make in order to begin a successful DevOps journey.
664135 7
530a25 8 ## Cluster Information
ME 9
3e2c63 10 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 11  - <**CLUSTER_URL**> -- Openshift Webconsole/API Server URL
12  - <**APPS_URL**> -- Wildcard subdomain for the exposed applications deployed in the Cluster
5d0992 13
3e2c63 14 ## Learner Pre-requisites
1cbea9 15 The following are the minimal hardware requirements for running the lab exercises in this course
RS 16 * 64-bit Intel Core i5/i7 CPU or equivalent with virtualization extensions enabled
17 * 4GB memory
18 * 80GB hard disk
2bd7ed 19
3e2c63 20 The lab exercises have been tested on the following operating systems
RS 21  * Fedora 29 64-bit
22  * Microsoft Windows 10 Pro 64-bit
23  * macOS 10.14 "Mojave"
24
1cbea9 25 The following table lists the software requirements for running the lab exercises:
RS 26
27  | Software | Version | Check |
28  | -------- | ------- | ----- |
29  | OCP CLI | v3.11 | $ oc version &#124; grep -i --color oc |
30  | Ansible | => v2.5 | $ ansible --version &#124; grep -i --color ansible |
31  | NodeJS | v8.x LTS | $ node -v |
32  | Git Installed | | $ git --version |
33  | Google Chrome Web Browser | (>60) | click [here](chrome://version/) if Google Chrome is your default browser else copy the link `chrome://version/` in your Chome |
34  | Docker latest | Community Edition | $ docker --version |
35  | JDK | v1.8 | $ java -version |
36  | Access to an OpenShift cluster | | `oc login -u <username> -p <password> <CLUSTER_URL>` |
37  | Text editor such as Atom or Visual Studio Code <br><br> (The exercises were created using `VSCode`, so the screenshots will match its layout and color schemes) | - | - |
38
39
40
41  <b><span style="color:red">NOTE</span></b>
42
3e2c63 43  > You will need administrator or super user level access on your system to install the prerequisite software for all the three operating systems.
RS 44  Locked down systems with restricted accounts are not supported.
d34eea 45
RS 46  > 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.
3e2c63 47
RS 48 ### Linux
49
16e153 50 1. Download the Node.js 8.x LTS Linux 64-bit binary archive file from https://nodejs.org/dist/latest-v8.x/. The binary will be named as ***node-v8.x.y-linux-x64.tar.gz***, where 'x' and 'y' indicates the major and minor version of the latest Node.js 8 LTS release.
3e2c63 51 ```bash
16e153 52 tar -xvzf node-v8.x.y-linux-x64.tar.gz -C /usr/local/
3e2c63 53 ```
16e153 54 Replace 'x' and 'y' with the version you downloaded in the above step.
RS 55
56 2. Edit your ***.bashrc*** file and add the ***node*** binary to your ***PATH*** environment variable
3e2c63 57 ```bash
16e153 58 echo 'export PATH=/usr/local/node-v8.x.y/bin:$PATH' >> $HOME/.bashrc
3e2c63 59 ```
RS 60
16e153 61 3. Install OpenJDK version 1.8
3e2c63 62 ```bash
RS 63 dnf install java-1.8.0-openjdk-devel
64 ```
65
16e153 66 4. Install Google Chrome version 70 or higher by downloading and running the the 64-bit RPM installer from https://google.com/chrome
3e2c63 67 ```bash
RS 68 dnf install google-chrome-stable_current_x86_64.rpm
69 ```
16e153 70 5. Install Docker, Git and Ansible
3e2c63 71 ```bash
RS 72 dnf install git ansible docker
73 systemctl enable docker
74 systemctl start docker
75 ```
16e153 76 6. Download and uncompress the OpenShift 3.11 client binary archive. Copy the ***oc*** binary to ***/usr/local/bin*** folder on your system
3e2c63 77 ```bash
RS 78 wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
79 tar -xvzf openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
80 cp openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit/oc /usr/local/bin/
81 chmod +x /usr/local/bin/oc
82 ```
16e153 83 7. 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
3e2c63 84 ```bash
RS 85 dnf install <rpm_name>
86 ```
87
88 ### macOS
89 1. Install HomeBrew for macOS by following the installation instructions at https://brew.sh/
90
91 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.
92 ```bash
93 brew install node@8
94 ```
95 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
96
97 4. Install Google Chrome version 70 or higher by downloading it from https://google.com/chrome
98
99 5. Install Docker for Mac by following the instructions from https://store.docker.com/editions/community/docker-ce-desktop-mac
100
101 6. Install Git using brew
102 ```bash
103 brew install git
104 ```
105
d34eea 106 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
3e2c63 107 ```bash
RS 108 brew install ansible
109 ```
110 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
111
112 9. Download and uncompress the OpenShift 3.11 client binary archive. Copy the ***oc*** binary to ***/usr/local/bin*** folder on your system
113 ```bash
d34eea 114 curl -L -O https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-mac.zip
3e2c63 115 unzip openshift-origin-client-tools-v3.11.0-0cbc58b-mac.zip
0200ec 116 cp oc /usr/local/bin/
3e2c63 117 chmod +x /usr/local/bin/oc
RS 118 ```
119
120 ### Microsoft Windows
121
d3d465 122 You will be adding several directories to the ***PATH*** environment variable. Follow the instructions at https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/ to edit the ***PATH*** environment variable on Windows 10.
RS 123
16e153 124 1. Download the Node.js 8.x LTS Windows 64-bit binary archive file from https://nodejs.org/dist/latest-v8.x/. The binary will be named as ***node-v8.x.y-win-x64.zip***, where 'x' and 'y' indicates the major and minor version of the latest Node.js 8 LTS release.
3e2c63 125
16e153 126 Extract the zip file archive under a suitable folder in the ***C:\*** drive, for example ***C:\nodejs***. Make sure that your directory name does not have any spaces in it.
3e2c63 127
RS 128 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.
129
130 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
131
16e153 132 Ensure that you install the JDK into a directory which has no spaces in its name, for example ***C:\Java***. Add a new environment variable called ***JAVA_HOME*** which points to the top level directory where you installed the JDK.
RS 133
134 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.
3e2c63 135
RS 136 3. Install Google Chrome version 70 or higher by downloading it from https://google.com/chrome
137
16e153 138 4. Install Docker for Windows by following the instructions from https://hub.docker.com/editions/community/docker-ce-desktop-windows. Before downloading, you will be asked to create an account. Register and download Docker for Windows.
RS 139
140 Ensure that you install Docker into a directory which has no spaces in its name, for example ***C:\Docker***. You will be prompted to enable Hyper-V during installation.
141
142 Windows will restart a couple of times after enabling Hyper-V and continue with the Docker installation. Follow the instructions provided in the link above to test and verify your Docker installation.
3e2c63 143
RS 144 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.
145
16e153 146 Follow the instructions at https://www.atlassian.com/git/tutorials/install-git#windows to install and verify your Git installation. Ensure that you install Git into a directory which has no spaces in its name, for example ***C:\Git***.
3e2c63 147
1cbea9 148 <b><span style="color:red">NOTE</span></b>
RS 149
150 > Ensure that the ***Git Bash*** component is selected during installation. You will need this to run bash shell scripts during the execution of lab exercises.
151
3e2c63 152 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
RS 153
154 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.
155
1cbea9 156 Execute the following commands in the ***Windows Command Prompt*** to run Ansible playbooks on Windows systems:
3e2c63 157
RS 158 * Pull the container image containing the tools and utilities that are required for running Ansible playbooks:
159 ```bash
313b88 160 docker pull quay.io/redhat/do500-toolbox
3e2c63 161 ```
16e153 162 * Create a working directory under your ***C:\*** drive to store the lab exercise files and Ansible playbooks
RS 163 ```bash
164 mkdir C:\do500-workspace
165 ```
3e2c63 166
d3d465 167 * Launch the container and run a quick test:
3e2c63 168 ```bash
313b88 169 docker run -it -v C:/do500-workspace:/home/tool-box/workarea:Z quay.io/redhat/do500-toolbox /bin/bash
3e2c63 170 ```
RS 171
1cbea9 172 <b><span style="color:red">NOTE</span></b>
RS 173 > When you launch the container for the very first time, you will be prompted by Docker, as well as the Windows security subsystem to allow read and write access to the ***C:\do500-workspace*** directory. Allow read and write access to this directory by entering your Windows username and password when prompted.
174
d3d465 175 * Once you are inside the container, you can log in to the OpenShift cluster using the OpenShift ***oc*** command-line client, and verify that Ansible is installed:
3e2c63 176 ```bash
RS 177 bash-4.4$ oc login -u <username> -p <password> <CLUSTER_URL>
d3d465 178 bash-4.4$ oc version
RS 179 bash-4.4$ ansible --version
180 bash-4.4$ exit
3e2c63 181 ```
RS 182
d3d465 183 Your instructor will provide the ***username*** and ***password*** information for the OpenShift cluster when you are ready to run the lab exercises.
3e2c63 184
664135 185 ## Git and Containers 101
D 186  - Git tutorial covering the basics - https://try.github.io/
187  - Handy guide for those new to containers - https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction/
c951f7 188
64c594 189 ## Setup your IDE
3e2c63 190 The following plug-ins are useful for providing syntax highlighting for various lab files:
64c594 191  - YAML Syntax Highlighter
D 192  - JavaScript Syntax Highlighter
193  - Vue.js
3e2c63 194  - ESlint
RS 195  - Jenkinsfile