LPI DevOps Tools Engineer Certification

Course

Intro Video

Photo of Travis Thomsen

Travis Thomsen

Course Development Director in Content

I have over 17 years of experience in all phases of the software development life cycle, which includes software analysis, design, development, testing, implementation, debugging, maintenance and documentation. I am passionate about learning new technologies, methodologies, languages and automation.

Length

33:14:25

Difficulty

Advanced

Course Details

The DevOps movement has entered the maturity stage in Information Technology. The philosophy behind DevOps is well understood at this point, and more and more tools are being developed to enable the implementation of that philosophy.

This course will prepare the prospective engineer for the LPIC DevOps Tools Engineer Certification exam. We'll take a broad look at a large number of tools that are commonly used in DevOps environments and gain a better understanding of how they enable DevOps in any enterprise environment.

Syllabus

Introduction

Introduction

Important Information about LPI Exam Discount Vouchers for 2019

00:01:24

Lesson Description:

Please view the following video for important information regarding LPI exam vouchers for 2019.

About This Course

00:02:24

Lesson Description:

In this video, you will learn about the LPI DevOps Tools Engineer Certification and what this course covers.

About The Instructor

00:01:04

Lesson Description:

Before we get started on the course, let's learn a little about who is teaching it!

How to Use the Linux Academy Cloud Playground for this Course

00:06:10

Lesson Description:

This video provides an initial walkthrough on how to access and use Linux Academy's new Cloud Playground. The new service has replaced our now deprecated "Cloud Servers" platform. It is important to note that some videos in this course may use/refer to the old "Cloud Servers" platform, so here are a few important notes to remember and use: 1) If you see the instructor using (and/or telling you to use) login credentials such as "user" or "linuxacademy" AND the password "123456" - they will no longer work. Use the specific credentials provided to you (for the server you are using) in the new Cloud Playground user interface.2) You cannot log into the Cloud Playground servers as the root user. However, you can access the root shell by using the command sudo -i. NOTE: In this course, you may see the instructor running commands as the root user. In order to follow along with those commands, you must run the sudo -i command first. Otherwise, you will get a permissions error.3) To access the servers GUI (if you provisioned a distribution that has one), you need to select "Actions" then "Graphical Shell" for your server in the Cloud Playground. NOTE: You cannot access the GUI via VNC Viewer as port 5901 is blocked. Detailed documentation on the new Cloud Playground can be found here: https://support.linuxacademy.com/hc/en-us/articles/360019096651-Cloud-Playground-FAQ

Machine Deployment

Vagrant

What is Vagrant?

00:03:04

Lesson Description:

Vagrant is a great way to ensure Dev/Prod parity. This means you will have an easier time replicating production issues in dev because they are similar environments. In this lesson, we will go over what Vagrant is, what you can use it for, as well as some of the basic commands you will be using.

Installing Vagrant

00:03:40

Lesson Description:

In this lesson, we will go through the process of installing Vagrant on CentOS 7 and Mac OS. You can find the URLs to download below: CentOS Mac OS

Vagrant Commands Part 1

00:09:56

Lesson Description:

Knowing the commands is fundamental to learning any new technology. In this lesson, we will explore the commands that you will use to manage a Vagrant environment. You will learn how to generate a Vagrantfile, bring the environment online by using vagrant up as well as how do destroy the environment when you are done with it.

Vagrant Commands Part 2

00:03:39

Lesson Description:

Building on what we learned in Vagrant Commands Part 1, we will use the same commands to manage a Vagrant Docker environment.

Vagrantfiles Part 1

00:06:10

Lesson Description:

In this lesson, we will cover the purpose of the Vagrantfile as well as the basic syntax. We will then create a Vagrantfile that will be used to create a Docker Ghost blog environment.

Vagrantfiles Part 2

00:03:43

Lesson Description:

We've already looked at how to use a Vagrantfile to create a Docker environment. In this lesson, we will take what we've learned previously and use it to create an environment with VirtualBox.

Accessing Vagrant VMs

00:02:35

Lesson Description:

In this lesson, we will look at an alternative way to access a Vagrant VM other than using vagrant ssh.

Defining Multiple Machines in Vagrant

00:02:27

Lesson Description:

Previously, we learned how to use a Vagrantfile to create a single guest machine. In this lesson, we will learn how to create multiple VMs to build out a more realistic local dev environment.

Vagrant Provisioning

00:10:02

Lesson Description:

In this lesson, we will take a look at provisioners and how to use them in our Vagrantfile. Provisioners are the easiest way to configure your guest machines to build out the environment that best suits your needs.

QUIZ: Vagrant

00:30:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Vagrant Boxes

What are Vagrant Boxes?

00:04:38

Lesson Description:

In this lesson, we will discuss Vagrant Boxes and the commands that you will use to manage Vagrant Boxes.

Creating a Base Box

00:14:12

Lesson Description:

There may be times when you need to create your own custom box file to suit the needs of your team. In this lesson, we will go through the process of creating a custom box file and then create a Vagrant environment using it. Links are provided for both: MinimalCD Vagrant.pub

Vagrant Box Commands

00:04:47

Lesson Description:

In this lesson, we will talk about the commands to manage your Vagrant Boxes. You will learn how to list your boxes, update them when they are out of date, and how to prune out older versions.

Box File Format

00:02:12

Lesson Description:

In this lesson, we will untar a box file and take a look a the contents.

QUIZ: Vagrant Boxes

00:30:00

Packer and Cloud Init

What is Packer?

00:09:10

Lesson Description:

Packer is an awesome tool for automating the creation of machine images. In this lesson, we will learn the basics of Packer, the commands you will use, and the components of a Packer template.

Installing Packer

00:01:17

Lesson Description:

Packer is a great tool that can be used to automate the creation of machine and container images. In this lesson, we will go through the steps of installing Packer on CentOS 7. Packer Download Page

Creating a Packer Template

00:11:10

Lesson Description:

In this lesson, we will automate the creation of a Docker image using Packer by creating a Packer template. We will pass in two variables using the Docker builder, configure it with some shell commands, and then tag the image when Packer completes. Note: if you are using an updated packer or node version, use the following to run the image - docker run -dt -p 80:3000 --entrypoint "/usr/local/bin/node" la/express:0.0.1 /var/code/bin/www

QUIZ: Packer and Cloud Init

00:30:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Configuration Management

Configuration Management with Ansible, Puppet, and Chef

What is Configuration Management?

00:05:19

Lesson Description:

Before we jump into talking about Ansible, Puppet, and Chef, it's a good idea to explore the concept of Configuration Management and the problems it is trying to solve. In this lesson, you will learn the basic concepts of Configuration management and why you should use it. We will also have a top-level comparison of Ansible, Puppet, and Chef.

What is Puppet?

00:04:00

Lesson Description:

This lesson is a high-level overview of Puppet. You will learn the basic concepts of Puppet.

Chef

00:09:28

Lesson Description:

This lesson is a high-level overview of Chef. You will learn the basic concepts of Chef.

What is Ansible?

00:04:17

Lesson Description:

In this lesson, we will take a high-level look at Ansible. You will learn the basics of Ansible and its commands.

Ansible Vault

00:02:26

Lesson Description:

You never want to leave passwords or API keys unencrypted. This is where solutions like Ansible Vault come in. In this lesson, we will take a high-level overview of Ansible Vault.

QUIZ: Configuration Management

01:00:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Container Management

Docker and Kubernetes

What is Docker?

00:04:39

Lesson Description:

Containerization has become a very important tool in the DevOps space. In this lesson, we will go over the basics of Docker, what it is, and how it works.

Docker Images

00:05:31

Lesson Description:

In this lesson, well will start working with Docker images. You will learn the basics of how they work, and we will move on to building an image using a Dockerfile.

Docker Volumes

00:07:45

Lesson Description:

Because of the disposable nature of containers, we don’t want to store data in them. In this lesson, we will learn about how to use volumes for persistent storage and how to use them with our containers.

Docker Networks

00:07:24

Lesson Description:

In this lesson, we will discuss Docker Networks. You will learn about the different network drivers and the purposes they serve. We will finish off the lesson with a demo on creating a user-defined network bridge.

Using Dockerfiles

00:05:14

Lesson Description:

In this lesson, we will go over the basics of how to build a Dockerfile. We will cover the various build instructions and what effect they have when building a Docker image.

What is Kubernetes?

00:02:32

Lesson Description:

In this lesson, we will look at Kubernetes —an open-source container-orchestration system for automating deployment—, scaling, and management of containerized applications.

Configuring Kubernetes

00:02:50

Lesson Description:

In this lesson, we will go and configure our Kubernetes' Cluster using a single master and an additional node. Init Kubernetes Node: kubeadm init --pod-network-cidr=10.244.0.0/16 Install Flannel: kubectl -n kube-system apply -f / https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml

Pod, ReplicaSets, and Deployments

00:09:34

Lesson Description:

In this lesson, you will learn about Pods, ReplicaSets, and Deployments and how to deploy them to your Kubernetes cluster.

QUIZ: Docker and Kubernetes

00:15:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Docker Compose

Installing Docker Compose

00:01:29

Lesson Description:

Docker Compose is a tool that helps deploy multi-container Docker applications. In this lesson, we will go and install Docker Compose on CentOS 7. curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

Docker Compose Commands

00:06:31

Lesson Description:

In this lesson, we will look at the commands used to manage our environments created by Docker Compose. You will learn how to start, stop, restart, create, and destroy containers managed by Docker Compose.

Creating A Docker Compose File

00:06:11

Lesson Description:

This lesson will be an overview of how to create a docker-compose.yml file. We will cover the more common uses cases such as creating services, linking containers, creating volumes, and networks.

QUIZ: Docker Compose

01:00:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Docker Swarm And Docker Machine

What is Docker Swarm?

00:08:30

Lesson Description:

Take your Docker knowledge to the next level. In this lesson, we will start looking into Docker Swarm. Docker Swarm is a clustering and scheduling tool for Docker containers. It allows you to establish and manage clusters of Docker nodes.

Docker Swarm Commands

00:06:30

Lesson Description:

Now that we know the fundamentals of Docker Swarm, we will start learning the command line basics of how to create and manage a swarm.

Creating a Docker Swarm Service

00:07:42

Lesson Description:

Now that we have a swarm setup, we will go and create a swarm service. docker volume create swarm-vol docker service create --name [NAME] -p 8080:80 --replicas 2 --mount source=swarm-vol,destination=/usr/share/nginx/html nginx:latest

What is Docker Machine?

00:03:42

Lesson Description:

Docker Machine is a tool that lets you install Docker Engine on a virtual host and manage the host with docker-machine commands.

Installing Docker Machine

00:02:54

Lesson Description:

In this lesson, you will learn how to install Docker Machine. Installing on MacOS: base=https://github.com/docker/machine/releases/download/v0.14.0 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine Installing on Linux: base=https://github.com/docker/machine/releases/download/v0.14.0 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine && sudo install /tmp/docker-machine /usr/local/bin/docker-machine Installing on Windows: base=https://github.com/docker/machine/releases/download/v0.14.0 && mkdir -p "$HOME/bin" && curl -L $base/docker-machine-Windows-x86_64.exe > "$HOME/bin/docker-machine.exe" && chmod +x "$HOME/bin/docker-machine.exe" Git CLI

Docker Machine Commands

00:07:03

Lesson Description:

In this lesson, we will take a look at some of the Docker Machine commands. We will create a Docker Engine on VirtualBox and deploy a container to it. docker-machine create --driver=virtualbox vbox-test eval $(docker-machine env vbox-test)

QUIZ: Docker Swarm and Docker Machine

01:00:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Software Engineering

Modern Software Development

RESTful APIs

00:09:11

Lesson Description:

Do you know what REST means? How about nouns and verbs of the web? In this lesson, you will learn about how RESTful APIs work.

Service Oriented Architecture

00:03:36

Lesson Description:

In this lesson, we will take a high-level overview of Service Oriented Architectures.

Microservices

00:06:03

Lesson Description:

In this lesson, you will learn about Microservices and why using them is a better option than a monolithic application.

Agile

00:03:55

Lesson Description:

In this lesson, we will take a look at a high-level overview of the Agile Development process. You will learn the fundamentals of what it means to be Agile.

Test Driven Development

00:09:44

Lesson Description:

In this lesson, we will take a look at the practice of Test Driven Development. Installing Node.JS: curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash - yum -y install nodejs yum -y install gcc-c++ make

QUIZ: Modern Software Development

01:00:00

CI/CD and Jenkins

What is Continuous Integration

00:03:30

Lesson Description:

This lesson covers the concept of continuous integration (CI). Continuous integration is a critical part of any DevOps pipeline. We will define continuous integration and talk about how it can benefit you. This lesson will give you a basic understanding of the concept of continuous integration.

Continuous Delivery and Continuous Deployment

00:03:31

Lesson Description:

In this lesson, continuous delivery and continuous deployment are introduced. Continuous delivery and continuous deployment are important parts of how code gets into production. We will define each of these terms, talk about the differences between them, and offer some insight into why you should use them. You should understand what continuous delivery and continuous deployment are after this lesson.

What is Jenkins?

00:05:24

Lesson Description:

In this lesson, we will go over what Jenkins its various uses.

Artifact Repositories

00:06:21

Lesson Description:

In this lesson, we will take a high level look at Artifact Repositories.

Installing Jenkins

00:03:04

Lesson Description:

In this lesson, we go over installing Jenkins. Install Jenkins yum install -y java wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key yum install -y java yum install -y jenkins service jenkins start chkconfig jenkins Get admin password: cat /var/lib/jenkins/secrets/initialAdminPassword

Jenkins Plugins

00:02:14

Lesson Description:

In this lesson, we will go and install AnsiColor, Copy Artifact Plugin, Docker Slave, Docker Pipeline Plugin, Docker Build and Publish plugin, Fingerprint Plugin, Git Plugin, and NodeJS Plugin.

Setting up a Jenkins Slave

00:08:09

Lesson Description:

In this lesson, we will create a Jenkins slave and add it to our environment. Download Packer onto your Jenkins slave: wget https://releases.hashicorp.com/packer/1.2.4/packer_1.2.4_linux_amd64.zip

Using Parameters in a Job

00:05:13

Lesson Description:

In this lesson, you will learn how to create a Jenkins job that will use a build slave. This job will execute Packer to build a Docker image. Give Jenkins access to Docker Sock. usermod -a -G docker jenkins content-lpic-ot-701-packer-docker repo

Creating a Build Job to Execute Tests

00:02:35

Lesson Description:

In this lesson, we will create a Jenkins build job that will execute a test for a Node.JS project. TDD Project

QUIZ: CI/CD and Jenkins

01:00:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Git

What is Git?

00:05:31

Lesson Description:

Git is one of the most popular version control systems on the market today. In this lesson, you will learn the basics of Git and how it handles storing data.

Git Commands Line Basics

00:10:30

Lesson Description:

In this lesson, you will learn all the basic commands necessary for managing files in Git. This will include adding and committing files, pushing and pulling files from a remote repository, how to view the logs, and differences in changes.

Managing Files with Git

00:13:47

Lesson Description:

In this lesson, we will go beyond the command line basics. You will learn how an amend commits if you leave something out, delete and move files using git before better logging, revert commits without losing the history of what was reverted, and how to stash changes and then add them in for later.

Branching and Merging

00:09:21

Lesson Description:

In this lesson, you will learn how to create a branch, make changes to a branch, and merge those changes into another branch. We will also dive into how to rebase branches.

Git Submodules

00:06:13

Lesson Description:

There are times when you need to include a vender library in your code. You can accomplish this with submodules. In this lesson, you will learn how to add and manage submodules in your Git project.

Dealing with Conflicts

00:03:19

Lesson Description:

When you work with other developers on the same project, there will be times when merge conflicts occur. This lesson will show you how to resolve merge conflicts in Git.

Tagging in Git

00:03:38

Lesson Description:

Tags are a fixed point in your repositories history and are a good way to deploy your code to production. In this lesson, you will learn how to create tags and push them to your remote repository.

QUIZ: Git

01:00:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Deploying Code to Production

Immutable Servers

00:03:58

Lesson Description:

Immutable Servers are a handy way to manage your cloud instances. In this lesson, you will learn about the concepts of immutable infrastructure and how it differs from configuration management.

Blue-Green Deployments

00:02:13

Lesson Description:

In this lesson, we will learn about Blue-Green Deployments and how you can use these techniques to achieve minimal disruption to your application when rolling out a newer version. If your organization requires as close to zero downtime as possible, then Blue-Green Deployments are for you.

Canary Deployments

00:01:58

Lesson Description:

In this lesson, you will learn about Canary Deployments and how you can use these techniques to achieve minimal disruption to your applications when deploying to production.

QUIZ: Deploying Code to Production

01:00:00

Standard Components and Platforms for Software

Content Delivery Network

00:03:54

Lesson Description:

Content Delivery Networks are responsible for serving up the majority of the Internet's content. In this lesson, you will learn the basics of how CDNs work and why you should use them.

Cloud Foundry

00:03:21

Lesson Description:

Cloud Foundry is an open source cloud platform as a service on which developers can build, deploy, and run their applications. In this lesson, we will take a thousand foot view of Cloud Foundry.

OpenStack

00:04:51

Lesson Description:

OpenStack is an open-source infrastructure-as-a-service (IaaS) for cloud computing. In this lesson, we will take a thousand foot view of OpenStack and its components.

QUIZ: Standard Components and Platforms for Software

01:00:00

Cross Site Scripting, ACID and CAP Theorem

Cross Site Scripting

00:05:07

Lesson Description:

Cross Site Scripting represents 47% of website vulnerabilities. In this lesson, you will learn about the types of vulnerabilities and how to prevent them.

CORS Headers

00:07:24

Lesson Description:

Cross-origin resource sharing (CORS) is a mechanism that allows restricted resources on a web page to be requested from another domain. In this lesson, you will learn about CORS headers and how to add them to a Node.JS application. CORS example code: git clone https://github.com/linuxacademy/content-lpic-ot-701-cors.git JS Bin

CSRF Tokens

00:04:39

Lesson Description:

In this lesson, we will learn about Cross-Site Request Forgery attacks and how we can try to stop them.

CAP Theorem

00:02:19

Lesson Description:

Consistency, Availability, and Partition tolerance; pick two. In this lesson, you will learn about CAP theorem and how distributed data store can only have two out of the three guarantees.

ACID and BASE

00:05:38

Lesson Description:

In this lesson, you will learn about ACID and BASE and how they pertain to relational and NO-SQL databases.

QUIZ: Cross Site Scripting, ACID and CAP Theorem

01:00:00

Service Operations

Prometheus and Logstash

What is Prometheus?

00:05:45

Lesson Description:

Monitoring your applications and systems is an important part of DevOps. In this lesson, you will learn about Prometheus; a systems and service monitoring tool.

What is Logstash?

00:07:15

Lesson Description:

Logstash is an open source tool for collecting, parsing, and storing logs for future use. In this lesson, you will learn about Logstash and the stages that make up the Logstash pipeline: input, filters, and outputs.

QUIZ: Understand Prometheus and Logstash

01:00:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

01:00:00

Next Steps

Conclusion

Conclusion

00:02:38

Lesson Description:

Congratulations, you are done! Here are some final words from the instructor. Get your LPI ID Register with Pearson Vue

DevOps Tools Engineer Certification

01:30:00