
Meet your instructor, a DevOps engineer with extensive cloud experience, guiding you through the GitLab course toward mastery of AWS certifications, cloud architecture, deployment, and containerization.
Embark on a gitlab journey to master devops through source code management, pipelines, and automation across runners toward deployment, integrating gitlab with git, maven, sonarqube, docker, ansible, terraform, and kubernetes.
Navigate the GitLab CI/CD roadmap, master pipelines and UI, and implement automation with runners, artifacts, and third-party tools like sonar cube, Docker, Kubernetes, Terraform, and JIRA integrations.
Build a complete java-based web app from scratch to deployment on AWS using GitLab CI/CD, Maven, JUnit, SonarQube, Docker, and ECS with a load balancer.
Explore automation fundamentals by outlining code management, build tools, testing, and deployment, and present GitLab as an efficient, flexible, cost effective one stop solution that supports compliance management.
Explore GitLab as a web-based devops lifecycle tool that combines version control, CI/CD automation, issue tracking, and project management in a single platform.
Automates the full ci/cd workflow from code to deployment. Supports pipelines and tools like Maven, Gradle, JUnit, Node.js, Docker, Kubernetes, and Terraform.
Explore the benefits of GitLab as a complete CI/CD tool with centralized release management, automated pipelines, and scalable environments, while comparing alternatives like GitHub Actions and Jenkins.
Create a GitLab account using a personal email or sign in with Google, then verify your email and set up a project. Explore starting a free trial.
Explore the GitLab UI tour to navigate projects, groups, issues, milestones, epics, sprints, merge requests, snippets, and environments, while mastering CI/CD workflows, deployments, monitoring, and Jira or Confluence integrations.
Master git to manage code with a distributed version control system, enabling collaboration and tracking changes using commands like git init, git clone, git add, git commit, and git push.
learn to add files to a gitlab repository from any server or local machine by configuring git, generating ssh keys, and pushing changes via an aws ec2 setup.
Apply the web IDE to add files directly to a GitLab repository by editing in the browser, creating new files, and committing changes.
Move a repository from GitHub to GitLab by importing via repository URL, selecting mirror options, and configuring public or private access, with a hands-on lab demonstrating the migration.
Explore how GitLab pipelines guide automation to build, test, and deploy applications, and learn practical usage to reach goals efficiently.
Create a GitLab CI/CD pipeline file to automate build, test, and deploy steps triggered by code changes, with stages and jobs defined in a .gitlab-ci.yml.
Refresh your Docker skills by exploring containers, images, and essential commands, and learn how Docker's infrastructure-agnostic approach supports lightweight, scalable apps on a single host with Kubernetes or Docker Swarm.
Create your first basic GitLab CI/CD pipeline by adding a .gitlab-ci.yml file, defining a first job with a script, and triggering pipelines via commits.
Unlock the GitLab pipeline editor, visual drag-and-drop tool with autocompletion and real-time validation for editing YAML pipelines. See how it visualizes dependencies, stages, and templates to speed up CI/CD workflows.
Troubleshoot a failed pipeline using the GitLab pipeline editor in the browser, fix script syntax, validate changes, commit updates, and observe automatic triggering and live pipeline status.
Create multiple jobs in a single GitLab ci pipeline using the pipeline editor or web ide, edit the ci yaml, commit changes, and run them in parallel.
Explore how multi-job pipelines in GitLab CI run jobs in parallel, so a single failing job does not affect the others; learn to validate and edit pipelines in the editor.
Learn how to set job timeouts in GitLab CI/CD pipelines to prevent infinite loops. Use the timeout keyword to restrict jobs, with examples of minutes, seconds, and hours.
Understand how stages structure a GitLab CI/CD pipeline by using the stages keyword, executing jobs in parallel within each stage and progressing only after all jobs succeed.
Demonstrate stage by stage GitLab pipelines, showing how a failed job skips later stages and how to define four stages in the pipeline.
Learn to run parallel jobs within a stage in GitLab CI/CD, organizing builds into stages, visualizing pipelines, and handling failures to keep the workflow moving.
Understand the needs keyword in GitLab CI/CD to define job dependencies and run sequential, dependency-based pipelines, enabling faster, flexible workflows as dependencies are met.
Configure gitlab ci/cd pipelines by using needs to create dependencies between jobs, ensuring downstream jobs run after predecessors and parallel jobs execute unless a prerequisite fails.
Learn how to use stages and needs to orchestrate a GitLab CI pipeline, from init to build to deploy, with end-to-end workflow.
Discover how GitLab CI/CD jobs are structured with before script, script, and after script. Before script installs dependencies, script executes core tasks, and after script handles cleanup, logging, and notifications.
Explore how before script, script, and after script operate in a GitLab CI/CD job to manage dependencies, perform builds, and reveal final output.
Discover how to use Linux commands in a GitLab CI pipeline, edit the CI file, run ls and pwd, and verify pipeline execution.
Execute external scripts in the GitLab CI pipeline, resolve permission errors, and validate outputs like hello world through committed changes and pipeline runs.
Explore two methods to run multi-line commands in GitLab CI pipelines: using a pipe to group commands, or listing commands individually, and compare their parallel execution in two jobs.
Learn how to add single-line and multi-line comments in GitLab CI, including a hack for multi-line comments and using a dot prefix to disable a job in pipelines.
Understand artifacts as files or directories created during builds, such as binaries, logs, reports, or docker images, preserved for future use and shared between jobs in GitLab CI/CD.
Learn to create and manage artifacts in GitLab CI pipelines, enabling sharing between jobs and long-term access with configurable expiration (for example 30 days) and file path options.
Declare project-based variables in the GitLab project settings and configure protected, masked, and expanded types for pipeline values. Validate variable usage across jobs and logs in your CI/CD pipelines.
Discover how to use built-in variables in GitLab CI/CD pipelines, incorporate values like pipeline ID and job ID, and view runner details through the export and pipeline editor.
Learn to create and use file variables in GitLab CI/CD, access their path or contents, and apply them for private keys and large configuration data in pipelines.
Learn to parameterize GitLab CI jobs by dynamically providing variable values at runtime, and override the age variable during pipeline execution to affect outcomes.
Skip a GitLab CI/CD pipeline by adding skip ci or ci skip to your commit message, preventing automatic runs until you manually trigger again.
Learn to manually trigger GitLab CI/CD jobs by configuring a manual action in GitLab CI YAML, skipping automatic pipelines and executing specific jobs on demand.
Learn how rules supersede the deprecated only in GitLab CI/CD pipelines, enabling flexible branch-based conditions and advanced control over when jobs run, including if, when, and never.
Discover how the new rules keyword in gitlab ci/cd replaces deprecated only and accept, and restricts feature branches to qa or test environments instead of prod.
Centralize pipeline conditions with the workflow keyword in GitLab CI/CD, replacing per-job rules with a centralized workflow. Restrict the pipeline to the main branch to prevent runs on feature branches.
Learn how merge requests facilitate collaboration by proposing, reviewing, and approving code changes from a feature branch to the main branch, ensuring version control and code quality.
Explains how to use merge requests in GitLab to trigger pipelines on merge events or main commits, and how to create, review, and merge merge requests.
Learn to assign specific images to the GitLab shared runner, per job or for the whole pipeline, using Ubuntu, Debian, Node.js, and Ruby images.
Learn how to download packages into a GitLab CI pipeline using the ubuntu latest image, install git via before_script, and verify the git version.
Explore matrix and loop hands-on in GitLab CI/CD by implementing parallel loops with metrics, environment variables, and nested loops across dev, test, and prod to run multiple jobs.
Learn to schedule GitLab CI/CD jobs to run builds, tests, and deployments at specific times using cron syntax. Automate weekend purges and nightly maintenance without manual intervention.
Schedule a GitLab CI/CD pipeline using cron-based schedules, set descriptions, choose repetition (daily, weekly, monthly, or custom), minimum run interval of one hour, time zone, branches, and optional variables.
Learn to handle a failing job in a GitLab ci/cd pipeline by marking it as allowed to fail (allow_failure), so stage two still runs.
Explore multi-project pipelines and downstream pipelines in gitlab, learning how project one triggers project two, links across repositories, and enables modularized, sequential execution and dependency management for continuous delivery.
Trigger downstream pipelines to run a second pipeline from the first across two projects in GitLab CI/CD. Use the trigger keyword to invoke the downstream pipeline, showcasing multi-project execution.
Understand how GitLab runners and executors provide the execution environment for jobs, choosing shell, Docker, Kubernetes, or virtual machine executors based on dependencies, scalability, and isolation.
Learn how to disable the shared runner in GitLab CI/CD, explore where to manage runners in settings, and understand how pipelines behave when no active runner is available.
Learn to create a self-hosted runner in the cloud with the shell executor on AWS EC2, register it in GitLab, tag EC2 Ohio Shell, install Git, and run the pipeline.
Set up a self-hosted GitLab runner on macOS, register a macOS shell runner, configure tags and timeout, and verify pipeline execution.
Change the docker image for a self-managed runner in GitLab CI/CD by specifying a new image tag in the pipeline, switching from Ubuntu to Alpine and confirming via logs.
Explores using a single self-hosted runner to host both Docker and shell executors, registering multiple runners in GitLab CI/CD on EC2 instances for the use case.
Explore how GitLab runners execute pipeline jobs by using shared, self-managed, or group runners and how executors like Docker, shell, and Kubernetes provide the job environments.
Explore how GitLab's expert service integrates with tools like Git, AWS, Maven, Sonarqube, Docker, Ansible, Terraform and Kubernetes to streamline DevOps workflows.
Set up and integrate tools for a ci/cd pipeline, including Maven builds, artifact storage, Sonarqube quality checks, Docker, Kubernetes deployments, Terraform infrastructure as code, and Ansible configurations.
Learn how to push code from GitHub to an EC2 server, install git, clone and rename the project, remove .git to enable direct GitLab integration, and initialize the web app.
Maven refresher explains this free open source build tool for Java projects and walks through mvn clean, mvn compile, mvn test, and mvn package to create jar or war packages.
Navigate GitLab CI/CD pipelines and mvn compile by creating a .gitlab-ci.yml with a maven build stage, configuring a maven compile job, and running on a labeled runner.
Discover how to publish and visualize JUnit test reports in a Maven project using GitLab CI/CD. Learn to configure artifacts and dashboards to centralize unit test results from Surefire reports.
Discover GitLab package registry, a secure private registry that stores Maven, npm, Python, and NuGet in GitLab pipelines, offering multi-format support, granular access control, versioning, and automated dependency management.
Discover how to publish Maven, npm, Python, and Terraform packages to the GitLab package registry using settings.xml and pom.xml, with a dedicated package stage in CI/CD.
Integrate docker build into GitLab CI/CD to create, tag, and verify Docker images for a Tomcat-based Maven app, with a clean Dockerfile, port 8080 exposure, and pipeline stages.
Learn how Docker Hub serves as the central cloud-based registry for storing and sharing Docker images, with login, pull, push, search, and options for public or private repositories.
Integrate Docker Hub with the GitLab CI/CD pipeline to push built images, using docker login with variables and tagging images by the pipeline ID before pushing.
Explore GitLab container registry, a built-in, private, and secure alternative to Docker Hub that integrates with GitLab CI/CD to store, tag, version, and auto-clean Docker images across projects.
Push docker images to the GitLab container registry via a CI/CD pipeline, using docker build and push steps, docker login with predefined variables, and verify registry images.
Configure the AWS CLI in a GitLab pipeline by creating access keys and secret keys, setting variables, running aws configure, and listing S3 buckets to verify credentials.
Learn how to push docker images to AWS ECR using GitLab CI/CD, including creating an ECR repository, configuring a pipeline stage, and building, tagging, and pushing images.
Learn to integrate SonarQube with GitLab CI to enforce code quality and security gates before deployment, enabling early defect detection and continuous monitoring across languages.
Learn to set up a SonarQube server on AWS EC2, install Java, configure the sonar user, start the service on port 9000, and connect with GitLab for code quality analysis.
Integrate GitLab ci/cd with SonarQube to enable code analysis in the pipeline. Configure tokens and variables, adjust pom.xml, run the sonar job, and review quality gates.
Understand SAST, a free, built-in GitLab security service for static application security testing in pipelines, to detect static vulnerabilities in source code early and reduce remediation costs.
Enable SAST in a new GitLab project, generate the pipeline template with SAST stages, push code to trigger the pipeline, and review artifacts and test reports produced.
Learn to add SAST to an existing GitLab CI/CD project by creating a test stage, including the official template, and running a vulnerability assessment.
Refresh your understanding of Kubernetes, the open source orchestration tool for automating deployment, scaling, and management of containerized applications, and its integration with GitLab.
Set up kubernetes for gitlab ci using amazon web services eks by installing kubectl and eksctl, then start and configure an eks cluster through the aws console and verify versions.
Learn to integrate Kubernetes with GitLab CI/CD to deploy to an AWS EKS cluster, configure the kube config, run kubectl commands in a pipeline, and validate server versions.
discover Terraform, the platform-agnostic infrastructure as code tool from HashiCorp, to define and provision servers, networks, and databases with configurations; explore init, plan, destroy, and auto-approve workflows for CI provisioning.
Set up Terraform on a GitLab runner, install and verify Terraform on Amazon Linux, and integrate a Terraform stage in GitLab pipelines to provision AWS infrastructure.
Learn to provision AWS infrastructure with Terraform in a GitLab CI/CD pipeline, creating an EC2 instance via a main.tf file using terraform init, plan, and apply --auto-approve.
Learn to use a variables.tf file with GitLab CI/CD to provision multiple EC2 instances, using a variable for instance type and a Terraform pipeline.
Learn to integrate Terraform modules into a GitLab CI pipeline to provision EC2 instances efficiently in the workflow.
Navigate GitLab Terraform states to store and manage Terraform state files remotely within GitLab, enabling centralized, version-controlled infrastructure state for teams in CI/CD pipelines.
Discover storing Terraform state in GitLab by configuring an HTTP backend in main.tf, using the GitLab init command, and running CI/CD pipelines for centralized state.
Master a quick Ansible refresher covering open source automation, configuration management, and change management for servers. Learn ad hoc commands and playbooks for automated, scalable deployments, cloud provisioning, and orchestration.
Set up Ansible on the runner and validate its integration with GitLab CI/CD by installing Ansible on EC2, checking the version, and running a pipeline stage.
Execute Ansible ad-hoc commands in a GitLab CI/CD pipeline by building an inventory, disabling strict host key checking, and pinging a Terraform-provisioned EC2 web server using a private key variable.
Set up and run an Ansible playbook within a GitLab CI/CD pipeline to install git on an Amazon Linux server, using inventory, private key access, and a hosted playbook.
"GitLab Mastery: From Novice to DevOps Expert"
This comprehensive GitLab course takes you on a journey from beginner to expert level, covering all aspects of GitLab's powerful DevOps platform. Whether you're new to version control or an experienced developer looking to enhance your skills, this course provides in-depth knowledge and hands-on experience with GitLab's extensive features and integrations.
Course Outline:
Introduction to GitLab
Version control basics
GitLab overview and architecture
GitLab Fundamentals
Repository management
Branching and merging strategies
Code review process
Continuous Integration and Continuous Deployment (CI/CD)
GitLab CI/CD pipeline configuration
Building, testing, and deploying applications
GitLab DevOps Tools
Package Registry
Container Registry
Terraform state management
Integrations and Advanced Features
AWS integration
Docker and DockerHub
Kubernetes and EKS
Terraform
Ansible
SonarQube for code quality analysis
Collaboration and Project Management
Jira integration
Confluence integration
Telegram integration for notifications
Security and Compliance
GitLab security features
Implementing secure DevOps practices
GitLab Administration and Optimization
Instance management
Performance tuning
Scaling GitLab for enterprise use
Benefits of Taking This Course:
Comprehensive skill development: Gain expertise in GitLab's full suite of tools and features, from basic version control to advanced DevOps practices.
Enhanced career prospects: DevOps skills are in high demand, and GitLab proficiency can open doors to new job opportunities and career advancement.
Improved workflow efficiency: Learn best practices for streamlining development processes, reducing time-to-market, and increasing productivity.
Hands-on experience: Practice with real-world scenarios and integrate GitLab with popular tools and platforms used in modern software development.
Better collaboration: Master GitLab's features for team collaboration, project management, and communication.
Security focus: Learn to implement secure DevOps practices, ensuring your projects meet industry standards for security and compliance.
Scalable knowledge: Apply GitLab skills to projects of any size, from personal repositories to enterprise-level implementations.
Continuous learning: Stay updated with the latest DevOps trends and technologies through GitLab's evolving ecosystem.
By the end of this course, you'll have the skills and confidence to leverage GitLab's powerful features in your development workflow, implement efficient CI/CD pipelines, and contribute to a modern DevOps environment.