Course Overview
Course Content
- Introduction to Linux
- Open Source Philosophy
- Distributions
- Embedded Systems
- Command Line Basics
- Basic Shell
- Command Line Syntax – ls
- Command Line Syntax – $PATH, Case Sensitivity
- Command Line Syntax – Basic Commands
- Command Line Syntax – uname
- Command Line Syntax – Command History, Command Completion
- Command Line Syntax – cd and pwd
- Shell Configuration Files
- Variables – Environment / System Variables
- Variables – User Defined
- Globbing
- Quoting
- Formatting Commands
- Working with Options
- Using the Command Line to Get Help
- Man
- Info
- locate, find, whereis, and using /usr/share/doc/
- Exercise: Man Page Walkthrough
- Exercise: Basic Command Line
- Using Directories and Listing Files
- The Linux File System
- Files and Directories
- Hidden Files and Directories
- Home
- Absolute and Relative Paths
- Exercise: Maneuvering the Linux File System
- Creating, Moving and Deleting Files
- Case Sensitivity
- Simple Globbing and Quoting
- The Power of the Command Line
- Archiving Files on the Command Line
- Archives, Compression
- Searching and Extracting Data from Files
- Commands (Revisited)
- Command Line Pipes
- I/O Redirection
- Regular Expressions
- Exercise: Practicing with Pipes and Grep
- Turning Commands into a Script
- Basic Text Editing
- Basic Shell Scripting
- Basic Shell Scripting, Continued
- Exercise: Using the vi Text Editor
- The Linux Operating System
- Choosing an Operating System
- Windows, Mac, and Linux Differences
- Distribution Life Cycle Management
- Understanding Computer Hardware
- Hardware
- Where Data is Stored
- Kernel
- Processes
- syslog, klog, dmesg
- /lib, /usr/lib, /etc, /var/log
- Your Computer on the Network
- Internet, Network, Routers
- Domain Name Service and the Default Gateway (Network Router)
- Network Configuration
- Security and File Permissions
- Basic Security and Identifying User Types
- Root and Standard Users
- System Users
- Creating Users and Groups
- User IDs
- User Commands
- Group Commands
- Exercise: Managing User Accounts
- Exercise: Creating User Groups
- Managing File Permissions and Ownership
- File/Directory Permissions and Owners
- Special Directories and Files
- Symbolic Links
- System files, Special Files, and Sticky Bits
- Hands-On
- Amazon EC2
- Amazon Elastic Load Balancer
- Amazon Route 53
- Amazon VPC
- Amazon Simple Storage Service (Amazon S3)
- Amazon Elastic Block Store (Amazon EBS)
- Amazon Content Delivery Network (Amazon CloudFront)
- Amazon Relational Database Service (Amazon RDS)
- Amazon DynamoDB
- Amazon ElastiCache
- Amazon Simple Notification Service (SNS)
- Amazon CloudWatch
- Amazon CloudTrail
- Amazon Simple Email Service (Amazon SES)
- AWS Identity and Access Management (IAM)
- Amazon Command Line Interface API
- S3-Browser
- Hands-On
- Knowing about Version control
- Git – A CLI
- Essentials of GIT in industry
- Installing Git
- First-Time Git Setup
- Getting a Git Repository
- Working with various commands in GIT
- Recording Changes to the Repository
- How to check the Status of Your Files
- How to track New Files
- Staging our modified files
- Ignoring Files from GIT
- Viewing Your Unstaged and Staged Changes
- How to commit Your Changes
- Skipping the Staging Area and commit
- Removing Files from GIT
- Viewing the Commit History
- Limiting Log Output
- Using a GUI to Visualize History
- Undoing Things
- Changing Your Last Commit
- Unstaging a Staged File
- Unmodifying a Modified File
- Working with Remotes
- Showing Your Remotes
- Adding Remote Repositories
- Fetching and Pulling from Your Remotes
- Pushing to Your Remotes
- Inspecting a Remote
- Removing and Renaming Remotes
- Branching and Merging in Git
- What a Branch Is
- Basic in Branching and Merging
- Branch Management in GIT
- Branching Workflows and its usage
- Remote Branches – create and delete
- Rebasing
- Git workflows
- Git cheat sheet
- Hands-On
- Essentials of Continuous Integration
- An example scenario where CI is used
- Know about Jenkins and its architecture in detail
- Jenkins tool Management in detail
- Installing Jenkins
- Post-installation setup wizard
- Unlocking Jenkins
- Customizing Jenkins with plugins
- Creating the first administrator user
- Know about User management in Jenkins
- Authentication
- Jenkins own database user creation
- Options to enable integration with LDAP
- Authorization
- Matrix based authorization
- Project based authorization
- Overview of Maven
- Maven project structure
- Maven plugins
- Project Object Model (POM) – the fundamental unit of work in Maven project
- Maven build lifecycle
- Adding external dependencies to maven pom.xml
- Maven build and test project
- Creating jobs and automatic build settings
- What is Jenkins Pipeline?
- Why Pipeline?
- Integration with GIT
- How to enable project-based authorization for a job
- Source code management while creating jobs
- Triggering automated build
- Maven job setup
- Know about post-build options for jobs like notifications, trigger another build, publishing reports, etc.
- Adding a slave node to Jenkins
- Building Delivery Pipeline
- Notification settings in Jenkins
- Plugin management in Jenkins
- Hands-On
- Introduction to Docker
- Real-world Shipping Transportation Challenges
- Introducing Docker and its technology
- Understanding of Docker images and containers
- Working with container
- How to Share and copy a container
- Container Life Cycle
- How to use Base Image and customize
- Creation of Docker File
- How to Publish Image on Docker Hub
- Introduction to Docker Networking
- Network Types in docker technology
- Docker Container Networking
- Docker Compose – An introduction
- Docker Swarm – An introduction
- Use Docker Compose to create PHP, WordPress, and MySQL
- How to Start Containers on a Cluster with Docker Swarm
- Creating and Scaling an application in Docker swarm
- Hands-On
- Introducing Ansible – A configuration management tool
- Basics / What Will Be Installed
- Understanding Ansible architecture
- Control Machine Requirements
- Managed Node Requirements
- Inventory
- Hosts and Groups
- Host Variables
- Group Variables
- Learn various ansible Modules
- How to use ad hoc commands
- Parallelism and Shell Commands
- File Transfer
- Managing Packages
- Users and Groups
- Deploying From Source Control
- Managing Services
- Introduction to YAML script
- Introduction to Playbooks
- Playbook Language Example – YAML
- How to Write Playbooks
- Tasks in Playbooks
- Understanding about various tasks in playbook
- Introduction to Handlers and variables
- Learn about using handlers, variables in the playbook
- Become (Privilege Escalation)
- Role Directory Structure
- Using Roles
- Role Duplication and Execution
- Role Default Variables
- Role Dependencies
- Role Search Path
- Ansible Galaxy
- Including and Importing
- Includes vs. Imports
- Importing Playbooks
- Including and Importing Task Files
- Including and Importing Roles
- Writing a playbook to install and configure web servers and deploy an application
- How to create Ansible Role and use it
- Using an ansible role in playbook
- How to use Ansible Galaxy to download roles.
- Example – Install and use Jenkins roles from ansible galaxy
- Hands-On