Update devops projects

pull/7005/head
Kamran Ahmed 3 months ago
parent a92ea779b8
commit 4ac4fcfba0
  1. 36
      src/data/projects/basic-github-actions.md
  2. 42
      src/data/projects/basic-iac-with-terraform.md
  3. 39
      src/data/projects/docker-webserver.md
  4. 57
      src/data/projects/local-monitoring-stack.md

@ -1,36 +0,0 @@
---
title: 'Github Actions Workflow'
description: 'Write GitHub Actions workflow to deploy a simple GitHub Pages site.'
isNew: true
sort: 3
difficulty: 'beginner'
nature: 'CI/CD'
skills:
- 'devops'
- 'github actions'
- 'ci/cd'
seo:
title: 'Github Actions Workflow'
description: 'Write GitHub Actions workflow to deploy a simple GitHub Pages site.'
keywords:
- 'basic ci/cd'
- 'devops'
- 'devops projects'
roadmapIds:
- 'git-github'
- 'devops'
---
In this project, you will write a basic HTML file and setup a GitHub Actions workflow to test, build & deploy it to GitHub Pages.
## Requirements
- Create a simple HTML file (the content is up to you)
- Create a GitHub Actions workflow that will test, build & deploy the website to [GitHub Pages](https://pages.github.com/).
- Failures in the workflow should be clearly indicated and failures will halt the workflow
- The workflow should be in the `.github/workflows` directory
- The workflow file should be named `main.yml`
<hr />
If you are looking to build a more advanced version of this project, you can either create a more advanced Astro website or you can build a more advanced GitHub Actions workflow.

@ -1,42 +0,0 @@
---
title: 'Basic Infrastructure as Code with Terraform'
description: 'Provision a simple cloud infrastructure using Terraform'
isNew: false
sort: 4
difficulty: 'beginner'
nature: 'CLI'
skills:
- 'terraform'
- 'devops'
- 'iac'
- 'cloud'
seo:
title: 'Basic Infrastructure as Code with Terraform'
description: 'Learn to provision cloud resources using Terraform'
keywords:
- 'terraform'
- 'infrastructure as code'
- 'cloud provisioning'
- 'devops'
roadmapIds:
- 'devops'
- 'terraform'
- 'aws'
---
In this project, you will use Terraform to provision a virtual machine in AWS.
## Requirements
- Install Terraform on your local machine.
- Set up an account with a AWS and obtain necessary credentials.
- Create a `main.tf` file in the root directory of your project.
- Write Terraform configuration to provision a basic resource (e.g., an EC2 instance on AWS or a VM on Azure).
- Use Terraform commands to initialize, plan, apply, and destroy your infrastructure.
- The provisioned resource should be accessible and verifiable in your cloud provider's console.
You can learn more about Terraform basics [here](https://learn.hashicorp.com/terraform).
<hr />
For a more advanced version of this project, consider adding multiple resources, using variables and outputs, or implementing a modular structure for your Terraform configuration.

@ -1,39 +0,0 @@
---
title: 'Docker Web Server'
description: 'Create a Web Server using Docker & NGINX'
isNew: false
sort: 3
difficulty: 'beginner'
nature: 'CLI'
skills:
- 'docker'
- 'devops'
- 'nginx'
- 'web'
seo:
title: 'Docker Web Server'
description: 'Create a Web Server using Docker & NGINX'
keywords:
- 'docker web server'
- 'docker'
- 'system administration'
- 'web server'
roadmapIds:
- 'devops'
- 'docker'
---
In this project, you will create an NGINX web server that will serve a simple HTML page using Docker.
## Requirements
- The Dockerfile should be named `Dockerfile`.
- The Dockerfile should be in the root directory of the project.
- The build process will add a local HTML file to the container, which will be accessible to NGINX.
- The simple HTML page will be accessible to you from `localhost:8080`
You can learn more about writing a Dockerfile [here](https://docs.docker.com/engine/reference/builder/).
<hr />
If you are looking to build a more advanced version of this project, you can consider using the `alpine:latest` image and setting up NGINX yourself rather than using the official NGINX image.

@ -1,57 +0,0 @@
---
title: 'Local Monitoring System with Docker'
description: 'Set up a local monitoring system using Docker with Grafana and Prometheus'
isNew: false
sort: 1
difficulty: 'intermediate'
nature: 'CLI'
skills:
- 'docker'
- 'devops'
- 'monitoring'
- 'grafana'
- 'prometheus'
seo:
title: 'Local Monitoring System with Docker, Grafana, and Prometheus'
description: 'Learn to set up a local monitoring system using Docker with Grafana and Prometheus'
keywords:
- 'docker'
- 'monitoring'
- 'grafana'
- 'prometheus'
- 'devops'
roadmapIds:
- 'devops'
- 'docker'
---
In this project, you will set up a local monitoring system using Docker, Grafana, and Prometheus. This setup will allow you to collect metrics and visualize them in a dashboard.
## Requirements
- Docker and Docker Compose installed on your local machine.
- Create a `docker-compose.yml` file in the root directory of your project.
- Set up Prometheus as the metrics collection system.
- Configure Grafana as the visualization tool.
- Create a simple dashboard in Grafana to display system metrics.
- Add a sample application to monitor, such as a simple web server.
Your `docker-compose.yml` file should define services for:
1. Prometheus
2. Grafana
3. A sample application to monitor
## Steps
1. Create the `docker-compose.yml` file with services for Prometheus and Grafana.
2. Configure Prometheus to scrape metrics (you'll need a `prometheus.yml` configuration file).
3. Set up Grafana to use Prometheus as a data source.
4. Create a simple dashboard in Grafana to display metrics.
5. Use `docker-compose up` to start your monitoring stack.
6. Access Grafana through your web browser and verify that metrics are being collected and displayed.
You can learn more about Prometheus [here](https://prometheus.io/docs/introduction/overview/) and Grafana [here](https://grafana.com/docs/grafana/latest/).
<hr />
For a more advanced version of this project, consider adding alerting rules in Prometheus, setting up additional exporters to collect more diverse metrics, or monitoring a multi-container application.
Loading…
Cancel
Save