https://github.com/sherrywahla/labs_devops
The following repository is in conjuction with devops lab practicals done for school work projects
https://github.com/sherrywahla/labs_devops
aws-ec2 aws-s3 cd ci containerization continuous-deployment devops docker monitoring monitoring-automation
Last synced: about 1 year ago
JSON representation
The following repository is in conjuction with devops lab practicals done for school work projects
- Host: GitHub
- URL: https://github.com/sherrywahla/labs_devops
- Owner: Sherrywahla
- License: mit
- Created: 2024-11-30T13:02:08.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-01T23:50:54.000Z (over 1 year ago)
- Last Synced: 2025-01-30T09:41:49.111Z (over 1 year ago)
- Topics: aws-ec2, aws-s3, cd, ci, containerization, continuous-deployment, devops, docker, monitoring, monitoring-automation
- Homepage:
- Size: 26.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DevOps Labs
This repository contains the materials, configurations, and scripts associated with the **DevOps Lab Practical** exercises completed as part of school work projects. These practicals focus on core DevOps principles such as version control, CI/CD pipelines, and containerization, using various tools like GitHub, GitLab, and Docker.
## Table of Contents
- [Overview](#overview)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Configuration](#configuration)
- [Lab Exercises](#lab-exercises)
- [Lab 1: Version Control with GitHub](#lab-1-version-control-with-github)
- [Lab 2: CI/CD with GitHub Actions](#lab-2-cicd-with-github-actions)
- [Lab 3: CI/CD with GitLab](#lab-3-cicd-with-gitlab)
- [Lab 4: Docker](#lab-4-docker)
- [Technologies Used](#technologies-used)
- [Contributing](#contributing)
- [License](#license)
## Overview
This repository contains various practical exercises designed to demonstrate and implement essential DevOps workflows. The labs include practical exercises focused on **version control**, **CI/CD pipelines**, and **containerization**, utilizing tools like **GitHub**, **GitLab**, and **Docker**. By completing these labs, students can gain hands-on experience with DevOps practices in modern software development environments.
## Getting Started
To get started with the labs, you need to have the following tools installed on your local machine.
### Prerequisites
Before starting with the practical labs, ensure you have the following software installed:
- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) (for version control)
- [Docker](https://www.docker.com/get-started) (for containerization)
- [GitHub Account](https://github.com/) (for GitHub Actions)
- [GitLab Account](https://about.gitlab.com/) (for GitLab CI/CD)
### Installation
Clone the repository to your local machine:
```bash
git clone https://github.com/Sherrywahla/labs_devops.git
cd devops-labs
```
Follow the setup instructions in each lab's respective folder for specific setup steps.
### Configuration
Each lab folder contains configuration files (e.g., `.github/`, `.gitlab-ci.yml`, `Dockerfile`, etc.) that you may need to adjust based on your environment. Pay attention to any `.env` or configuration files for environment-specific variables.
## Lab Exercises
Here’s an overview of the labs included in this repository:
### Lab 1: Version Control with GitHub
- **Objective:** Learn how to use Git for version control and collaborate using GitHub.
- **Key Steps:**
1. Set up a Git repository for your project.
2. Learn Git commands for version control: clone, commit, push, pull, etc.
3. Push your code to GitHub for collaboration and version tracking.
**Key Concepts Covered:**
- Version Control with Git
- Collaboration via GitHub
- Branching and Merging
### Lab 2: CI/CD with GitHub Actions
- **Objective:** Set up a Continuous Integration/Continuous Deployment (CI/CD) pipeline using GitHub Actions.
- **Key Steps:**
1. Create a `.github` directory and a `workflow` file.
2. Automate build, test, and deployment processes with GitHub Actions.
3. Trigger workflows based on GitHub events (e.g., push, pull requests).
**Key Concepts Covered:**
- CI/CD Pipeline with GitHub Actions
- Automation with Workflows
- Integration with GitHub Repositories
### Lab 3: CI/CD with GitLab
- **Objective:** Set up a CI/CD pipeline using GitLab's integrated CI/CD system.
- **Key Steps:**
1. Create a `.gitlab-ci.yml` file to define CI/CD jobs.
2. Automate build, test, and deployment processes on GitLab.
3. Integrate GitLab CI/CD with Docker containers.
**Key Concepts Covered:**
- CI/CD with GitLab CI
- Automating Tests, Builds, and Deployments
- GitLab Pipelines and Runners
### Lab 4: Docker
- **Objective:** Learn how to containerize applications using Docker.
- **Key Steps:**
1. Write a `Dockerfile` to containerize your application.
2. Build and run Docker images locally.
3. Push the Docker image to a container registry (e.g., Docker Hub).
**Key Concepts Covered:**
- Docker and Containerization
- Writing Dockerfiles
- Building and Running Docker Containers
- Docker Hub for Image Distribution
## Technologies Used
- **Git:** Distributed version control system for tracking code changes.
- **GitHub:** Web-based platform for version control and collaboration, utilizing Git.
- **GitLab:** Web-based DevOps platform that provides Git repositories, CI/CD pipelines, and more.
- **GitHub Actions:** CI/CD automation service integrated into GitHub.
- **GitLab CI:** GitLab’s built-in CI/CD system for automating workflows.
- **Docker:** Containerization platform for packaging applications into portable containers.
## Contributing
Contributions to this repository are welcome. If you would like to contribute, please follow these steps:
1. Fork the repository.
2. Create a new branch (`git checkout -b feature-branch`).
3. Commit your changes (`git commit -am 'Add new feature'`).
4. Push to the branch (`git push origin feature-branch`).
5. Create a new pull request.
Please make sure to follow the [code of conduct](CODE_OF_CONDUCT.md) and [contribution guidelines](CONTRIBUTING.md).
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.