We at thinkingmonster have a mission to embrace the pursuit of excellence both inside and outside the classroom. We encourage critical thinking and emphasize the learning process over rote memorization. 45 days course covers following modules.

Linux Basics

  • Introduction
  • Unix/Linux Essentials
  • User and group management
  • Handling files
  • Handling errors
  • Log management
  • Package management
  • Linux performance troubleshooting

Bash

  • Core Concepts
  • Bash Files - .bash_profile
  • Bash Files - .bashrc
  • Bash Files - .bash_history
  • Bash Files - .bash_logout
  • What Makes a File a Shell Script?
  • Displaying Environment Variables in a Script
  • Using Variables on the Command Line
  • Setting and Using Variables in Scripts
  • Comment Types and Structure
  • Command Substitution
  • Exit Status
  • Arithmetic Operations
  • Global and Local Environment Variables
  • Special Characters - Quotes and Escapes
  • Using /dev/null
  • The Read Statement
  • Shell Expansion
  • Types of Variables (Implicit vs. Explicit Definition)
  • Arrays
  • Conditional Statements
  • Passing Variables to Scripts at the Command Line
  • The If Statement
  • If/Then/Else
  • For Loop
  • Case Statement
  • While Loop
  • Execution Operators (&& and ||)
  • Input and Output
  • Reading Files
  • File Descriptors and Handles
  • IFS and Delimiting
  • Traps and Signals
  • Debugging Your Script
  • Error Handling
  • Functions
  • Simple Functions
  • Structure of Functions in a Script
  • Variable Scope in Functions
  • Functions with Parameters
  • Nested Functions
  • Function Return and Exit
  • Samples/Use Cases
  • Project: Advanced UI - Building a Menu System

Ansible

  • Introduction to Ansible
  • Setup and Configuration
  • Test Environment Setup
  • Download and Installation
  • Ansible Configuration File
  • Ansible Python Dependencies
  • The HOSTS File
  • Overriding the Default HOSTS File
  • Overriding the Default System Ansible.Cfg File
  • Overriding the Default Roles Path
  • Ansible Command Line
  • System Facts
  • System Facts: Common Values for Playbooks
  • Our First Playbook
  • Variables: Inclusion Types
  • Target Section
  • Variable Section
  • Task Section
  • Handler Section
  • Outlining Your Playbook
  • Create a Playbook from Our Outline
  • Optimizing Your Playbook
  • Taking Our Playbook for a Dry Run
  • Asynchronous Polling
  • Simple Variable Substitution
  • Lookups
  • RunOnce
  • Local Actions
  • Loops
  • Conditionals
  • Until
  • Notify
  • Vault
  • Prompt - Interactive Playbook
  • Basic Include Statements
  • Tags
  • Basic Error Handling
  • Includes - Breaking Your Playbook Into Discrete Plays
  • Starting At Task or Stepping Through All Tasks
  • Passing Variables Into Playbooks at the Command Line
  • Using Jinja2 Templates
  • LocalAction
  • DelegateTo
  • Roles - The Directory Structure
  • Role Based Tasks
  • Task Order - Pre and Post Tasks
  • Roles - Conditional Execution
  • Roles - Variable Substitution
  • Roles - Handlers
  • Roles - Using Notification
  • Roles - Configuring Alternate Roles Paths
  • Roles - Conditional Include Statements
  • Roles - Waiting For Events
  • Roles - Executing a Task Until
  • Roles - Using Tags
  • Roles - Breaking a Playbook Into a Role
  • Roles - Passing Variables from Command Line
  • Roles - Using Jinja2 Templates
  • Roles - DelegateTo
  • Roles - LocalAction
  • Use Cases
  • Project: Creating a Web Server Deployment

Git

  • GIT, GitHub/BitBucket:
  • Introduction to Git
  • Install and Configure Git
  • Introduction to GitHub/BitBucket, Repository administration
  • Branching/Tagging strategy
  • Merging, handling conflicts
  • Troubleshooting issues
  • Git Commands
  • Git GUI, Git Bash
  • Working with Tortoise Git
  • Working with Eclipse IDE
  • Working with projects
  • Best Practices

Maven

  • Introduction to Maven
  • Installing Maven, Running Maven
  • Eclipse IDE Integration
  • Understanding Archetypes and pom.xml
  • Maven Build Lifecycle
  • Maven Repositories
  • Maven configuration files
  • Maven Profiles
  • Maven Plugins and Goals
  • Packaging Types
  • Maven Dependencies, Dependency Scope, Finding Dependencies
  • Creating Java, Web, Java EE projects using Maven
  • Build and Deployment Automation
  • Introduction to Multi-Module Builds

Docker

  • Learning the Basics of Docker
  • Introduction to Docker
  • Containers Vs. Virtual Machines
  • Docker Architecture
  • The Docker Hub
  • Docker Installation
  • Creating Our First Image
  • Working With Multiple Images
  • Packaging A Customized Container
  • Running Container Commands With Docker
  • The Dockerfile, Builds and Network Configuration
  • Dockerfile Directives
  • Container Volume Management
  • Docker Network: List and Inspect
  • Docker Network: Create and Remove
  • Docker Network: Assign to Containers
  • Docker Commands and Structures
  • Inspect Container Processes
  • Previous Container Management
  • Controlling Port Exposure on Containers
  • Naming Our Containers
  • Docker Events
  • Managing and Removing Base Images
  • Saving and Loading Docker Images
  • Image History
  • Taking Control of Our Tags
  • Pushing to Docker Hub
  • Integration and Use Cases
  • Project: Building a Web Farm for Development and Testing

Jenkins

  • Introduction to Jenkins
  • CI/CD Concepts
  • Installing and Configuring Jenkins
  • The Dashboard
  • User Management and Security
  • Adding a Jenkins Slave
  • Setting Up Github
  • Plugin Manager
  • Freestyle Project Configuration
  • Source Code Management and the Git Plugin
  • Git Hooks and Other Build Triggers
  • Workspace Environment Variables
  • Parameterized Projects
  • Upstream/Downstream Projects and the Parameterized Trigger Plugin
  • Views
  • Pipelines
  • The Jenkinsfile
  • Configuring and Running a Pipeline
  • Artifacts and Fingerprints
  • Testing With Jenkins
  • Unit Testing with JUnit and Ant
  • Deploying to Apache
  • Functional Testing
  • Pipeline Enhancements
  • Multi-branch Pipelines and Code Promotion
  • Tagging
  • Notifications
  • Shared Pipeline Libraries
  • Advanced Jenkins Administration
  • The Jenkins CLI
  • The Jenkins REST API
  • Setting Up a Jenkins Master with Docker

AWS

  • Identity & Access Management (IAM)
  • IAM Initial Setup and Configuration
  • IAM Users and Policies
  • IAM Groups and Policies
  • IAM Roles
  • Virtual Private Cloud (VPC)
  • VPC Basics
  • Internet Gateways (IGW)
  • Route Tables (RTs)
  • Network Access Control List (NACLs)
  • Subnets
  • Availability Zones (VPC Specific)
  • Simple Storage Service (S3)
  • S3 Basics
  • Buckets & Objects
  • Storage Classes
  • Object Lifecycles
  • Permissions
  • Object Versioning
  • S3 Essentials
  • Elastic Compute Cloud (EC2)
  • EC2 Basics
  • Amazon Machine Images (AMIs)
  • Instance Types
  • Elastic Block Store (EBS)
  • Security Groups
  • IP Addressing
  • Launching and Using an EC2 Instance
  • RDS and DynamoDB Basics
  • Provisioning an RDS MySQL Database
  • Simple Notification Service (SNS)
  • CloudWatch
  • Elastic Load Balancer (ELB)
  • Auto Scaling
  • Route 53
  • Lambda
  • Project

Attachments