Duration:

10 Days

Code:

TMGKAD

Audience:

Employees of federal, state & local governments; and businesses working with the government.

Prerequisites:

Basic working knowledge of the Linux command line

Course Description:

This custom-built course was designed for DoD personnel and their potential use-cases. By design and implementation, it is nearly 100% hands-on with lab exercises used to practice and reinforce brief lectures. The course culminates in a final practical lab exercise that forces participants to integrate and utilize all of the tools and concepts practices during the course.

Tmux:

  • Installation & starting sessions
  • Detaching and attaching sessions
  • Renaming sessions
  • Adding windows & navigating
  • Window naming
  • Working with multiple sessions
  • Using panes; creating, splitting, navigating, managing, closing
  • Nested sessions, creating, using and navigating (key bindings)
  • Customizing tmux using configuration files; key bindings, mouse behavior, color schemes Markdown:
  • Common markdown syntax and usage

Git & GitLab: 

  • Overview of version control & source code management.
  • Basic git command syntax – Setting/Managing git variables
  • Creating repositories, cloning repositories (local and remote)
  • Adding and removing files to/from a repository
  • Checking status and commiting staged files
  • Viewing changes between working directory and staging area
  • Creating, managing, and merging branches
  • Understanding git logging to track changes
  • Undoing/reverting changes
  • Tagging
  • Using GPG to digitally sign and validate changes (tags & commits)
  • GitLab account setup and
  • Configuring GitLab for SSH access
  • Configuring GitLab for GPG signing
  • GitLab use and navigation:
  • Creating projects and managing project members
  • Using groups to manage project permissions
  • Forking Projects
  • Creating Branches
  • Adding Files
  • Merging and Rebasing
  • Blame, history

Ansible:

  • Overview of Ansible, its terminology and its use-cases.
  • Review of YAML and formatting
  • Building/installing an Ansible control machine
  • Working with Ansible inventories
  • Running ad-hoc command using Ansible
  • Creating and using Ansible Playbooks
  • Integrating Roles with Playbooks
  • Ansible vault
  • Working with variables
  • Jinja2 templating

Docker:

  • Overview of containerization & Docker Architecture
  • Installing Docker – Configuring the Docker daemon
  • Managing Containers (creating, listing, stopping, starting, removing)
  • Interacting with Containers (running commands)
  • Managing Docker Images (searching, listing, downloading, deleting)
  • Creating Images with Dockerfile
  • Docker Volumes (creating, managing, removing, using external volumes)
  • Mapping devices
  • Docker Compose
  • Docker Networking
  • Configuring, using, and managing Docker networks

Kubernetes:

  • Overview of Kubernetes, its purpose, and how it relates to containers
  • Kubernetes components (Master/Slave Nodes, Pods, Service, Ingress, Volumes, Secret, ConfigMap)
  • Using kubectl for Kubernetes management
  • Kubernetes minikube
  • Creating Deployments and Services using kubectl and (YAML) configuration files
  • Mapping ports to Service and Pods
  • Configuring containers
  • Configuring and managing Volumes (local/PVC)
  • Using ConfigMaps and Secret to configure deployments
  • Using k9s to manage clusters
  • Using kubectl to troubleshoot/debug Pods, Services
  • Using kubectl to access a shell/run commands on a running container