# Linux Guru > Linux, Cloud, and DevOps Tutorials ## Posts - [How to Send PM2 (Node.js) Application Logs from EC2 to AWS CloudWatch](https://vishalvyas.com/how-to-send-pm2-node-js-application-logs-from-ec2-to-aws-cloudwatch/): If you’re running a Node.js application on an EC2 instance using PM2, one of the most important production requirements is centralized logging. By default, PM2 stores logs locally on the server: This can quickly lead to: In this guide, I’ll show you step-by-step how to send PM2 logs to AWS CloudWatch Logs. 🚀 Prerequisites Before we begin, make sure: 🔹 STEP 1: Install CloudWatch Agent (Ubuntu EC2) The default apt install method may not work on EC2 Ubuntu, so use the official package: For x86-64 systems: For ARM64 systems: Install the agent: 🔹 STEP 2: Attach IAM Role to EC2 ... Read more - [How to Install NVM on Ubuntu (Step-by-Step Guide)](https://vishalvyas.com/how-to-install-nvm-on-ubuntu-step-by-step-guide/): If you work with Node.js applications, you often need to switch between multiple Node versions for different projects. Installing Node.js globally can quickly become messy and restrictive. That’s where NVM (Node Version Manager) comes in. NVM allows you to: In this tutorial, you’ll learn how to install NVM on Ubuntu, install Node.js using NVM, and switch between Node versions efficiently. What is NVM? NVM (Node Version Manager) is a command-line tool that lets you install and manage multiple Node.js versions on a single machine. Each user gets their own isolated Node environment without affecting the system-wide setup. This is especially ... Read more - [Fix: “DEPRECATED: The legacy builder is deprecated” in Docker](https://vishalvyas.com/fix-deprecated-the-legacy-builder-is-deprecated-in-docker/): If you recently tried building a Docker image and saw this warning: Don’t worry — this isn’t a breaking error. It’s just Docker telling you that the old image builder is going away and you should start using BuildKit (docker buildx). In this post, I’ll explain why you’re seeing this message and how to fix it step by step. 🔎 Why am I seeing this warning? 🛠️ How to Resolve the Docker Legacy Builder Warning Follow these steps to fix the issue and start using BuildKit. Check if Buildx is Installed If you see a version number, Buildx is already ... Read more - [How to Give Amazon S3 Bucket Access to a Specific User Only](https://vishalvyas.com/how-to-give-amazon-s3-bucket-access-to-a-specific-user-only/): When working with Amazon S3, one of the most common security requirements is to restrict access so that only a specific IAM user can read and write data, while all other users are denied access. In this tutorial, I’ll walk you through how to set up an IAM user policy and a bucket policy to ensure only the intended user can access the bucket. Step 1: Create or Identify the IAM User First, make sure you have an IAM user created in your AWS account.For example, let’s say our user is named vishal. Step 2: Attach a User Policy for ... Read more - [Enable deletion protection for an existing EKS cluster](https://vishalvyas.com/enable-deletion-protection-for-an-existing-eks-cluster/): By default, new and existing EKS clusters do not have deletion protection enabled. You can switch it on when creating a cluster or activate it later at any point in time. Accidentally deleting an Amazon EKS cluster can be costly—resulting in downtime, lost configurations, and recovery headaches. To safeguard critical workloads, AWS recently introduced Deletion Protection for EKS clusters, a feature that ensures one must consciously disable protection before deletion is allowed How It Works When deletion protection is enabled, any attempt to delete the cluster will fail with an InvalidRequestException. To proceed, you must: Also note, IAM permissions must ... Read more - [How to Fix TLS 1.3 Connection Issues with AWS Load Balancer and ACM](https://vishalvyas.com/how-to-fix-tls-1-3-connection-issues-with-aws-load-balancer-and-acm/): Introduction Recently, while configuring an HTTPS setup for my web application hosted on AWS using a Load Balancer with an ACM certificate, I encountered an issue where TLS 1.3 connections were failing. The error was cryptic and pointed towards a problem with the SSL handshake. This blog will walk you through the issue, the investigation, and the final resolution step-by-step so you can avoid the same problem. Problem Statement After configuring HTTPS using an Application Load Balancer (ALB) and attaching an ACM certificate, I attempted to connect via TLS 1.3 but received the following error: Another similar error from libcurl ... Read more - [Automated Container Image Cleanup in Amazon ECR to Save Costs](https://vishalvyas.com/automated-container-image-cleanup-in-amazon-ecr-to-save-costs/): Amazon Elastic Container Registry (ECR) is a fully managed Docker container registry that makes storing, sharing, and deploying container images easy. However, unused or outdated images can pile up quickly, leading to unnecessary storage costs and cluttered repositories. In this guide, we’ll walk through automated image cleanup in ECR using lifecycle policies, helping you save on costs and stay organized. 🧠 Why Should You Clean Up ECR Images? Reduces ECR storage costs (charged per GB/month) Keeps repositories clean and manageable Avoids confusion with old or deprecated versions Enforces DevOps best practices in CI/CD 🛠️ Step-by-Step Guide: Automate ECR Image Cleanup ... Read more - [CKS Exam Update : No More Active CKA Requirement](https://vishalvyas.com/cks-exam-update-no-more-active-cka-requirementcks-exam-update/): The Linux Foundation and CNCF have officially rolled out a major update to the Certified Kubernetes Security Specialist (CKS) exam, effective October 15, 2024. If you’re planning to take the CKS exam or already preparing for it, this update is important — especially one significant change that candidates should be aware of: 🔥 Major Update: No More Active CKA Requirement! Until now, candidates needed to have an active Certified Kubernetes Administrator (CKA) certification to schedule the CKS exam. This rule has now been relaxed. ✅ New Rule (Effective Oct 15, 2024): Candidates must have passed the CKA exam at any ... Read more - [How to Create a Read-Only User in PostgreSQL](https://vishalvyas.com/how-to-create-a-read-only-user-in-postgresql/): Introduction When working with PostgreSQL, there are scenarios where you need to provide access to a database without granting modification rights. This is particularly useful for reporting, analytics, or when you want to expose data securely to external users or applications. In this article, we’ll walk through the process of creating a read-only user in PostgreSQL. We’ll also explain each command to ensure you understand what’s happening at each step. Steps to Create a Read-Only User in PostgreSQL 1. Create a New User This command creates a new PostgreSQL user named readonly_user with a specified password. Replace 'securepassword' with a ... Read more - [Reducing AWS S3 Costs: Strategies for Hosting Media on Your Website](https://vishalvyas.com/reducing-aws-s3-costs/): Reducing AWS S3 Costs: Strategies for Hosting Media on Your Website Reducing AWS S3 Costs: Strategies for Hosting Media on Your Website Hosting images and videos on AWS S3 can offer excellent scalability and reliability for your website. However, if not optimized, it can also lead to skyrocketing costs, especially with frequent GET requests and data transfer. In this guide, we’ll explore strategies to manage S3 costs effectively while maintaining performance. These tips are ideal for developers and businesses looking to optimize their AWS bills. 1. Leverage Amazon CloudFront Amazon CloudFront is a Content Delivery Network (CDN) that caches your ... Read more - [How to Fix "Job Failed: Execution Took Longer Than 10m0s" Error in GitLab Pipeline](https://vishalvyas.com/how-to-fix-job-failed-execution-took-longer-than-10m0s-error-in-gitlab-pipeline/): Introduction:  In the world of continuous integration and deployment, encountering timeout issues in GitLab pipelines can disrupt workflows, especially when dealing with large Docker images. Recently, I faced a similar issue where my GitLab pipeline failed during the image push step with the error: This error occurred because the Docker image was large, causing the upload to exceed the default GitLab Runner timeout of 10 minutes. In this article, I’ll walk you through how I resolved this error and successfully pushed the Docker image. The Problem: Timeout in GitLab Runner While running my pipeline, the Docker build step completed successfully. ... Read more - [The 4Cs of Kubernetes Security](https://vishalvyas.com/the-4cs-of-kubernetes-security/): The 4Cs of Kubernetes Security is a layered security approach designed to protect Kubernetes environments. The 4Cs stand for: These layers work together to provide a defense-in-depth strategy for securing Kubernetes workloads. - [How to Copy a Sanity Production Dataset to a Development Environment](https://vishalvyas.com/how-to-copy-a-sanity-production-dataset-to-a-development-environment/): Introduction When managing multiple environments in Sanity, it’s essential to have a separate development environment for testing without affecting production data. In this guide, we’ll walk through how to export a Sanity production dataset and import it into a development environment using the command line on an Ubuntu machine. Following these steps will ensure that your development environment mirrors production, allowing safe testing and debugging. Step-by-Step Guide to Copy a Sanity Dataset Step 1: Export the Production Dataset To create a backup of the production dataset, use the following command: This command will: Save it as a file named production-backup.tar.gz ... Read more - [Monitor Kubernetes Resources with kubectl top ](https://vishalvyas.com/monitor-kubernetes-resources-with-kubectl-top/): Monitoring Kubernetes resources is a critical task for maintaining cluster performance and ensuring efficient resource usage. Kubernetes provides a native tool, kubectl top, which allows you to monitor resource usage (CPU and memory) of nodes and pods in real-time. This guide explains how to use kubectl top effectively. Step 1: Prerequisites Before using the kubectl top command, ensure the following: Kubernetes requires the Metrics Server to collect and provide resource metrics. Check if Metrics Server is installed: Look for metrics-server in the output. If not installed, you can set it up by following the Metrics Server installation guide. 2. RBAC ... Read more - [Fuel Mileage calculator](https://vishalvyas.com/fuel-mileage-calculator/) - [Subnet mask cheat sheet](https://vishalvyas.com/subnet-mask-cheat-sheet/): Subnetting is a fundamental networking concept that helps to divide a larger network into smaller, more manageable subnetworks. Understanding subnetting is essential for controlling IP address allocation and improving network organization, whether you are working on home networks, enterprise systems, or data center configurations. CIDR (Classless Inter-Domain Routing) is a method of allocating and routing IP packets. CIDR notation consists of two parts: an IP address, followed by a slash (/) and a number that represents how many bits are allocated for the network portion of the address. CIDR to Subnet Mapping Table Here’s a table that shows how many ... Read more - [Git Tutorial Part 2: Branching and Merging with Git](https://vishalvyas.com/git-tutorial-branching-and-merging-with-git/): The previous section covered the fundamentals of Git, such as installing and configuring Git, creating a repository, and making your first commit. Now, let us go over one of Git is most powerful features: Branching and merging. What is Branching? A branch in Git is essentially a reference to a specific commit. When working on a project, the main branch is typically called main or master, but you can create additional branches to work on features, fixes, or experiments without affecting the’main‘ branch. Branches allow you to: Creating and Using Branches 1. Creating a New Branch Assume you want to ... Read more - [Git Tutorial Part 1: Introduction to Git and Basic Setup](https://vishalvyas.com/git-tutorial-introduction-to-git-and-basic-setup/): What is Git? Git is a distributed version control system (VCS) that helps developers track changes to their code over time. It enables multiple people to work on projects, keeping track of every change and making it simple to revert to previous versions if necessary. Git is essential for efficient code management, whether you are working alone or with a team. Why Use Git? Basic Concepts Before we dive into Git, let us first understand some fundamental concepts: Setting up Git Let’s start by installing and configuring Git. Verify the installation by typing the following command in your terminal: You ... Read more - [How to create Animated GIFs with Peek on Ubuntu](https://vishalvyas.com/how-to-create-animated-gifs-with-peek-on-ubuntu/): Creating animated GIFs is a great way to capture and share quick, visual demonstrations of processes or software. Whether you’re a developer looking to showcase a workflow or just want to share something fun, making GIFs directly from your screen on Ubuntu is simple and efficient. In this guide, I’ll walk you through using a lightweight tool called Peek to create GIFs on Ubuntu. Why Use Peek? Peek is a handy application that lets you easily record your screen and save the output as a GIF. It’s user-friendly and designed specifically for creating short, high-quality animations from screen recordings. Installation ... Read more - [How to Connect to EC2 Using FileZilla](https://vishalvyas.com/how-to-connect-to-ec2-using-filezilla/): Introduction FileZilla is a powerful FTP client that allows you to connect to remote servers for file transfer. Whether you need to manage files on your web server or transfer files for development purposes, FileZilla is an essential tool. This guide will walk you through the steps to connect to an Amazon EC2 instance using FileZilla. Prerequisites Before you begin, ensure you have the following: 1. An active EC2 instance running in your AWS account. 2. A key pair (.pem file) that you used to launch your EC2 instance. 3. FileZilla installed on your local machine. If not, download it ... Read more - [How to Reset the Portainer Admin Password in Docker](https://vishalvyas.com/how-to-reset-the-portainer-admin-password-in-docker/): Portainer is an advanced container management solution that makes it easier to deploy and manage Docker containers. However, one limitation is that there is no built-in password reset feature for the admin user. If you forget your admin password, you will have to use a helper container to reset it. In this guide, I will walk you through the steps for resetting the Portainer admin password while it is running as a Docker container. Step 1: Stop the Portainer Container To reset the admin password, first stop the Portainer container that is currently running. You can achieve this by running ... Read more - [Common EC2 connection errors and how to resolve them](https://vishalvyas.com/common-ec2-connection-errors-and-how-to-resolve-them/): Amazon EC2 (Elastic Compute Cloud) is a scalable cloud service that enables users to create and manage virtual servers. However, when connecting to an EC2 instance, users frequently encounter error messages that can be frustrating. In this article, we will look at the most common EC2 connection errors, their causes, and how to resolve them. 1. Permission Denied (Public Key) Error This error occurs when the private key used to connect to the EC2 instance does not correspond to the public key configured on the instance. It is usually caused by incorrect or missing key pairs. Solution: 2. Unprotected Private ... Read more - [How to Resolve the "Unprotected Private Key File" Error in SSH on Windows](https://vishalvyas.com/how-to-resolve-the-unprotected-private-key-file-error-in-ssh-on-windows/): When working with SSH, especially while trying to connect to remote servers (like AWS EC2 instances), you typically use a private key file to authenticate securely. However, sometimes you may encounter an error related to the permissions of your private key file. This error often looks like the following: This error occurs because the permissions on your private key file (ec2-key.pem) are too open. SSH enforces strict permissions to ensure that private key files are accessible only to their owner. If the key file is accessible by others on the system, SSH will refuse to use it for security reasons. ... Read more - [How to Resolve Dual Monitor Issues After Upgrading Ubuntu](https://vishalvyas.com/how-to-resolve-dual-monitor-issues-after-upgrading-ubuntu/): Recently, I upgraded my Ubuntu operating system from version 22.04 to 24.04. After the upgrade, everything seemed to be working fine, except for one major issue, my dual monitor setup stopped functioning correctly. Only one monitor was working, while the other remained on standby. After some troubleshooting, I discovered that updating the GPU drivers resolved the issue. In this article, I’ll walk you through the steps I took to fix this problem and get both monitors working again. Step 1: Find Out the Display Information To resolve issues related to dual monitors, it’s essential to first identify the graphics card ... Read more - [How to Enable MFA Using TOTP in HashiCorp Vault](https://vishalvyas.com/how-to-enable-mfa-using-totp-in-hashicorp-vault/): In this tutorial, we’ll walk through the process of enabling Multi-Factor Authentication (MFA) using the Time-based One-Time Password (TOTP) method in HashiCorp Vault. Implementing MFA enhances the security of your Vault server by adding an additional layer of authentication. Prerequisites Before we begin, ensure that you have a working installation of HashiCorp Vault on Ubuntu. If you haven’t installed Vault yet, follow these steps to get started: Installing Vault on Ubuntu Update and Upgrade Your System: Install Required Tools: Download and Install Vault: Start and Enable Vault Service: Go to the browser and open the http://ip-address:8200  you will have to ... Read more - [How to Install and Enable SSH on Ubuntu](https://vishalvyas.com/how-to-install-and-enable-ssh-on-ubuntu/): Secure Shell (SSH) is a crucial tool for administering your Ubuntu servers. It allows you to connect to your server remotely and perform various administrative tasks securely. In this article, we’ll walk you through the steps to install and enable SSH on your Ubuntu system. Step 1: Update Package Index The first step is to ensure your package list is up-to-date. Open your terminal and run: This command updates the local package index, ensuring that you have the latest information on the newest versions of packages and their dependencies. Step 2: Install OpenSSH Server Package Next, you need to install ... Read more - [How to Schedule a Jenkins Job to Run Every Day at 12 AM](https://vishalvyas.com/how-to-schedule-a-jenkins-job-to-run-every-day/): Automating tasks is a crucial part of DevOps and continuous integration/continuous deployment (CI/CD) practices. Jenkins, a popular automation server, allows you to schedule jobs at specific times using cron-like syntax. In this article, we’ll walk you through the steps to schedule a Jenkins job to run every day at 12 am. Why Schedule Jenkins Jobs? Scheduling jobs in Jenkins can be highly beneficial for various reasons: – Automated Backups : Schedule backups of your databases or critical files. – Nightly Builds : Ensure your software builds every night, catching integration issues early. – Maintenance Tasks : Automate routine maintenance tasks ... Read more - [Amazon EKS Extended Support for Kubernetes Versions](https://vishalvyas.com/amazon-eks-extended-support-for-kubernetes-versions/): Amazon Elastic Kubernetes Service (Amazon EKS) now offers extended support for Kubernetes versions, providing customers with an additional 12 months of support beyond the standard support period. This means you can run Amazon EKS clusters on a Kubernetes version for up to 26 months from the time the version is generally available on Amazon EKS. Understanding the Support Periods Standard Support : This begins when a Kubernetes version is released on Amazon EKS and lasts for 14 months. During this period, you will be billed at the standard rate of $0.10 per cluster per hour. Extended Support: After the standard ... Read more - [Basic Linux Commands You Must Know](https://vishalvyas.com/basic-linux-commands/): Essential Linux Commands: A Quick Reference Guide Linux commands are the foundation of effective system administration and everyday tasks. Whether you are a beginner or an experienced user, knowing these fundamental commands is essential. Let us look at some key commands that will help you navigate the Linux environment with ease. Date and Time Commands: Display the current date and time. View the calendar File and Directory Management: Clear the terminal screen. List directories and files. Create a new user. Set or change a user password. Create a user without a password. Rename a user. Add a user to a ... Read more - [Install kubectl in linux](https://vishalvyas.com/install-kubectl-in-linux/): The command-line tool for communicating with Kubernetes clusters is called Kubectl. It lets you create, remove, and update components, inspect cluster resources, and deploy and manage apps on Kubernetes. As of 2024, this guide offers the most up-to-date instructions for installing Kubectl on different Linux distributions.Install Kubectl on Ubuntu/Debian To install Kubectl on Ubuntu or Debian-based distributions, follow these steps: Update Package List and Install Dependencies: Download and Add Google Cloud Public Signing Key: Add Kubernetes APT Repository: Update Package List and Install Kubectl: Install Kubectl on CentOS/Fedora/RHEL For CentOS, Fedora, or RHEL-based distributions, use the following steps: Create Kubernetes ... Read more - [How to install Grafana and Prometheus stack on Kubernetes](https://vishalvyas.com/how-to-install-grafana-and-prometheus-stack-on-kubernetes/): Monitoring and visualization are critical in today’s dynamic and data-driven world to ensure that applications and infrastructure run smoothly. Prometheus is a popular monitoring tool in the Kubernetes ecosystem, particularly when combined with Grafana for visualization. In this article, we will walk you through the steps of installing the Grafana Prometheus stack on an Amazon Elastic Kubernetes Service (EKS) cluster. The Prometheus stack is a collection of tools used together for monitoring and observability in Kubernetes or other containerized environments. The primary components of the Prometheus stack typically include: Prometheus : Prometheus is an open-source monitoring and alerting toolkit that ... Read more - [ERROR: unable to select packages](https://vishalvyas.com/error-unable-to-select-packages-alpine/): ERROR: unable to select packages: aws-cli (no such package):required by: world[aws-cli] My gitlab pipeline recently failed with the error “aws-cli package not found.” I was installing the aws-cli package into my pipeline using Docker version 26, but I was unable to install it because of the Alpine package. I will walk you through how I fixed this problem in my giltab pipeline in this post, but keep in mind that this is just a short-term workaround. Installing aws-cli via apk directly may fail in Docker images built on Alpine Linux 3.20, like docker:26, because the package is not present in ... Read more - [Understand AWS Public IPv4 Address Usage and Pricing](https://vishalvyas.com/understand-aws-public-ipv4-address-usage-and-pricing/): Introduction to Public IPv4 Addresses on AWS Public IPv4 addresses on Amazon Web Services (AWS) are globally unique IP addresses assigned to AWS resources that enable them to be directly reachable and accessible from the internet via IPv4. These addresses are required for external connectivity to AWS services such as web servers, databases, or any application that requires direct interaction with clients or users via the Internet. AWS has started charging for public IP addresses. AWS charges for all public IPv4 addresses, including those associated with running instances and elastic IP addresses. Since February 2024, AWS has started charging $0.005 ... Read more - [Error role does not exist PostgreSQL Fixed](https://vishalvyas.com/error-role-does-not-exist-postgresql-fixed/): How to Successfully Restore a PostgreSQL Database on a New Machine Without Role Conflicts When migrating a PostgreSQL database between systems, one common error is the presence of non-existent roles. For example, you may encounter the error message ‘ERROR: role “linux” does not exist‘. This usually happens when the database you are attempting to restore contains references to a database role that does not exist on the destination machine. In this post, I will walk you through a simple solution to avoid the ERROR: role “linux” does not exist error when using ‘pg_dump‘ by specifying ‘–no-owner‘ and ‘–no-acl‘. This article ... Read more - [How to Install and Configure Samba in Ubuntu](https://vishalvyas.com/how-to-install-and-configure-samba-in-ubuntu/): Samba is an effective tool for sharing files and printers across networks, particularly in mixed environments with Windows and Linux systems. In this guide, I will explain to you How to install and configure samba in Ubuntu  so you can share folders across your network. I have also shared in a previous article about how to block certain file extensions on samba. Install Samba Before we start, make sure that Samba is installed on your Ubuntu system. If not already installed, you can install it by running the following commands in your terminal: Create a Shared Directory First, make a directory ... Read more - [Resolving 504 Gateway Timeout Error When Uploading Large Files: A Detailed Solution](https://vishalvyas.com/resolving-504-gateway-timeout-error-when-uploading-large-files/): I have an admin app running on the AWS VM, which is connected to another VM called Openvpn server. We have some servers in my office that are connected to the AWS open VPN virtual machine. I used the Nginx reverse proxy to connect the local server to the main server. When some users open the Admin App and upload videos to the panel, they are uploaded to the office’s local server via an OpenVPN connection. My issue was that when the user uploaded large videos, I received a 504 gateway timeout error. Initial Attempts: Upon encountering the 504 gateway ... Read more - [How to fix apt get update 404 Not Found](https://vishalvyas.com/how-to-fix-apt-get-update-404-not-found/): Introduction When managing packages on Ubuntu, you must keep your system up to date by updating the package lists on a regular basis. However, errors can occur during the update process, such as the dreaded “404 Not Found” error. In this guide, In this post I will show you how to resolve 404 Not Found error while updating ubuntu using command line. we will look at the causes of this error and provide step-by-step instructions for resolving it effectively. Understanding the Issue: The “404 Not Found” error usually appears when the package manager is unable to locate or access a ... Read more - [Resolving 413 Payload Too Large Error in Nginx](https://vishalvyas.com/resolving-413-payload-too-large-error-in-nginx/): Introduction In this post, I will explain how to fix the 413 Payload Too Large error in Nginx. Encountering the dreaded 413 Payload Too Large error while uploading files to a web application running on Nginx can be frustrating. This error occurs when Nginx rejects an HTTP request because the size of the payload exceeds the configured limit. In this guide, we will look at how to fix this error and enable larger file uploads on your Nginx server. Understanding the Error: The 413 Payload Too Large error occurs when the size of the payload in an HTTP request exceeds ... Read more - [How to Install Pip for Python in Linux](https://vishalvyas.com/how-to-install-pip-for-python-in-linux/): In this guide, I will show you how to install pip for Python in Linux. Python is installed by default when you install Linux, but you must run some commands to add any additional Python dependencies or libraries. In this tutorial, I will show you how to install Pip for Python. PIP stands for Python Package Installer, which is Python’s package management system. PIP package management allows you to install, remove, or manage additional packages, modules, or libraries. In other words, pip is an indispensable tool for Python developers. The method of installation varies depending on the Linux distribution. Here’s ... Read more - [Unregistering runner from GitLab forbidden - Fixed](https://vishalvyas.com/unregistering-runner-from-gitlab-forbidden-fixed/): Introduction GitLab Runners are critical in executing CI/CD pipelines, but users occasionally encounter problems when attempting to unregister a Runner. One such error is the “Unregistering runner from GitLab forbidden” message, which can be inconvenient to resolve. In this guide, we will look at how to fix this problem without editing the GitLab configuration file, providing a simple solution for other users who are experiencing similar problems. Error Message: When users try to unregistered a Runner, they may get the following error message: Resolution Without Editing GitLab Config File: To fix the “Unregistering runner from GitLab forbidden” problem without changing ... Read more - [Unable to drop PostgreSQL database - Fixed](https://vishalvyas.com/unable-to-drop-postgresql-database-fixed/): Cannot Drop The Currently Open Database PostgreSQL In this post, I will walk you through the troubleshooting steps for deleting a PostgreSQL database. I will show you how I fix ERROR: database “linux” is being accessed by other users in PostgreSQL, This error occurred when you had an active connection to the database. PostgreSQL will not allow you to delete a database until you terminate the active connection to a running PostgreSQL database. Here is a step-by-step guide for deleting a database in PostgreSQL. Error : I got this error when I was trying to delete my running PostgreSQL database, ... Read more - [How to Setup Password Authentication On Apache Web Server](https://vishalvyas.com/how-to-setup-password-authentication-on-apache-web-server/): Whether your website is hosted on a private or shared server, you must protect your sensitive website data. Password authentication on Apache is a simple way to add an additional layer of security to your website. This article will walk you through the process of implementing password authentication using Apache on your Unix-like system, from generating a .htpasswd file to implementing an .htaccess file to protecting your server’s data. We have already made an article on Setting Up Apache Web Server on Ubuntu 22.04 If you are new to apache and want to know How to install apache on Ubuntu ... Read more - [Resolving PostgreSQL pg_dump server version mismatch](https://vishalvyas.com/how-to-resolve-pg-dump-error-aborting-because-of-server-version-mismatch/): Introduction PostgreSQL, also known as Postgres, is an open-source, object-relational database system renowned for its robust feature set, extensibility, and dependability. PostgreSQL is one of the most advanced and powerful database management systems available today, having been developed over decades with strong community support. In this post we will look into Resolving PostgreSQL pg_dump server version mismatch Error : I received this error when I attempted to backup my database running on PostgreSQL server version 15. I also tried it with the –cluster 14/main option, but it did not work. Using the steps below, I was able to resolve this ... Read more - [Main Components of Kubernetes Architecture](https://vishalvyas.com/main-components-of-kubernetes-architecture/): Decoding Kubernetes: A Comprehensive Guide to its Core Components Introduction: Kubernetes, often referred to as K8s, is a powerful container orchestration platform that simplifies the deployment, scaling, and management of containerized applications. In this article, we’ll delve into the core components that make up the Kubernetes ecosystem, shedding light on the intricate web of services that work seamlessly to orchestrate containers. Checkout this post if you want to understand types of Kubernetes services. Master Node: In Kubernetes, a master node is a critical component of the cluster responsible for managing and controlling the overall state and configuration of the system. ... Read more - [Understanding Elastic IP and Its Association](https://vishalvyas.com/understanding-elastic-ip-and-its-association/): Note : This article is out of dated now, find the updated article here What Happens When You Attach an Elastic IP to a Shutdown Virtual Machine? In today’s cloud-centric world, effectively and efficiently managing virtual resources is critical to ensuring seamless operations and minimizing costs. The Elastic IP (EIP) is one such resource that is critical to consistent access and network stability. An Elastic IP is a static, public IP address provided by cloud services such as Amazon Web Services (AWS) to assist in managing the dynamic nature of cloud computing resources. But what happens if this static IP ... Read more - [Essential Docker Commands Every Developer Should Know](https://vishalvyas.com/essential-docker-commands-every-developer-should-know/): Mastering Docker: Essential Docker Commands Every Developer Should Know Introduction Docker has transformed the way developers create, ship, and run applications. Docker, as a cornerstone of containerization, enables teams to create lightweight, portable, and consistent environments. To fully utilize Docker’s capabilities, developers must be familiar with its command-line interface. In this post, we will look at essential Docker commands that will help you improve your containerization game.   1. Pulling Docker Images: Before diving into the world of Docker containers, you will frequently need to download pre-built images from Docker Hub. Enter the following command: docker pull <image_name>:<tag> Replace <image_name> ... Read more - [AWS S3 Sync - How To Synchronize Data In AWS S3](https://vishalvyas.com/aws-s3-sync-guide/): Amazon Simple Storage Service (S3) is a foundation for scalable and robust cloud-based data storage. To effectively manage your data in S3, you must master the art of copying data between buckets. In this article, we will go over some of the most important AWS CLI commands for seamlessly transferring data within S3. Learn essential AWS CLI commands for seamless data transfer within Amazon S3. I will demonstrate how to synchronize data in AWS S3. from local to AWS, bucket to bucket, and cross-account bucket data copy in AWS. Prerequisites: Navigating the Cloud: AWS CLI Setup Before we begin our ... Read more - [How To Install Node.js on Ubuntu](https://vishalvyas.com/how-to-install-node-js-on-ubuntu/): Installing Node.js on Ubuntu 22.04: A Comprehensive Guide Introduction to Node.js Node.js is a powerful JavaScript runtime that lets developers create scalable, high-performance applications. It implements an event-driven, non-blocking I/O model, making it ideal for developing real-time applications such as web servers and APIs. In this guide, we will walk you through the process of installing Node.js on Ubuntu 22.04, using various methods to suit your requirements. Our guide will not only walk you through the installation process, but also provide you with insights into various installation methods. Whether you use the default Ubuntu repositories for simplicity, the NodeSource repository ... Read more - [Uploading artifacts too large archive - Gitlab pipeline](https://vishalvyas.com/uploading-artifacts-too-large-archive-gitlab-pipeline/): FATAL: too large  gitlab pipeline 😎 I upgraded some node versions in my GitLab CI pipeline. After upgrading the versions, I ran the pipeline and received an error that said ERROR: Uploading artifacts as “archive” to coordinator… too large archive 🔻 I spent some time debugging this error and eventually fixed it. The problem was with the maximum artifact size limit. The maximum artifacts limit in my Gitlab was set to 100MB, which is the default artifact upload size limit. Here are the steps to correct this error. To change this settings, Go Into your Gitlab, Go to Admin settings ... Read more - [Kubernetes RBAC Tutorial With Example](https://vishalvyas.com/kubernetes-rbac-tutorial-with-example/): Introduction Managing access to resources is critical in the vast Kubernetes ecosystem for maintaining a secure and well-organized cluster. In this Kubernetes RBAC tutorial, role-based access control (RBAC) emerges as a key player, providing a robust mechanism for defining and enforcing access policies. In this article, we will look at the fundamentals of RBAC in Kubernetes and walk through a practical example to show how it can be used. If you are a beginner and want to learn more about Kubernetes, you can read Main Components of Kubernetes Architecture. How RBAC Works When a user or service account tries to ... Read more - [Explain services types of kuberntes](https://vishalvyas.com/explain-services-types-of-kuberntes/): Demystifying Kubernetes Service Types: ClusterIP, LoadBalancer, and NodePort Introduction to Kubernetes In this article, we will provide an in-depth explanation of the different types of services in Kubernetes. Kubernetes, the powerful container orchestration platform, relies on services to facilitate communication within a cluster. Kubernetes has become the leading container orchestration platform, offering a robust set of features for managing containerized applications at scale. You may also learn about Main Components of Kubernetes Architecture Understanding Kubernetes Services Services are a fundamental building block in Kubernetes, enabling communication and discovery between different components of an application. They provide a stable network endpoint ... Read more - [How To Install Docker on Ubuntu 22.04](https://vishalvyas.com/how-to-install-docker-in-ubuntu-linux/): A Comprehensive Guide to Installing and Configuring Docker on Ubuntu 22.04 Introduction Docker, a leading containerization platform, allows developers to build, ship, and run applications consistently across multiple environments. This guide will walk you through the installation and configuration of Docker on the Ubuntu 22.04 LTS release. Know more about Docker Commands : Essential Docker Commands Every Developer Should Know Prerequisites Before we begin, make sure you have access to a Ubuntu Linux terminal with administrative privileges on your Ubuntu 22.04 system. Step 1: Update Package Database To start, update the package database to ensure you have the latest information ... Read more - [Linux File and Directory Permissions Guide](https://vishalvyas.com/linux-file-and-directory-permissions-guide/): Mastering Linux File and Directory Permissions: A Comprehensive GuideIntroduction Ensuring the security and integrity of your Linux system involves mastering file and directory permissions. In this comprehensive guide, we’ll delve into the core permission types—read (r), write (w), and execute (x)—and explore how to leverage them effectively. From basic permission assignments to advanced techniques like ACLs, this article will equip you with the knowledge needed to secure your Linux environment. Understanding Basic Permissions: 1. Read (r) Permission: The read permission, denoted by “r,” allows users to view the contents of a file or list files in a directory. For instance: ... Read more - [How To Fix Apache 403 Forbidden Error](https://vishalvyas.com/how-to-fix-apache-403-forbidden-error/): Resolving ‘403 Forbidden’ Error in Apache: A Comprehensive Guide Encounter the ‘403 Forbidden’ error on Apache? Unlock the solutions with our comprehensive guide. From permissions to Apache configurations, learn the steps to resolve this issue and regain control of your web server. Introduction The ‘403 Forbidden’ error in Apache can be frustrating for website administrators, but do not worry – we have got your back. In this guide, we will walk you through a step-by-step process for diagnosing and resolving this common problem, ensuring your web server runs smoothly. Let’s dive in. I wrote this post for Linux newbies who ... Read more - [Gitlab unable to get local issuer certificate](https://vishalvyas.com/gitlab-unable-to-get-local-issuer-certificate/): Resolving SSL Certificate Issue in GitLab Runner Do not worry if you have seen the error “fatal: unable to access ‘https://gitlab.com/my-project/my-repo.git/’: SSL certificate problem: unable to get local issuer certificate” while using GitLab. This is a common problem that can be solved in a few simple steps. In this article, we will look at the root cause of the problem and walk you through the resolution process Understanding the Issue The error you are seeing is due to an issue with SSL certificate validation. When GitLab Runner attempts to access your repository via HTTPS, the SSL certificate must be verified. ... Read more - [How to create tar file in linux](https://vishalvyas.com/how-to-create-tar-file-in-linux/): Mastering TAR Files: A Step-by-Step Guide to Creation and Utilization Introduction In today’s rapidly changing technological landscape, effective data management is critical. TAR files, which stand for Tape Archive, are a versatile solution for bundling and compressing files. In this guide, we will decipher the mysteries of TAR files, learning how to make them and harness their power for seamless data handling. What is a TAR File? A TAR file is a consolidated archive that contains multiple files and directories while preserving their structure. Unlike compression formats such as ZIP, TAR does not compress files by itself; instead, it serves ... Read more - [Setting Up Apache Web Server on Ubuntu 22.04](https://vishalvyas.com/setting-up-apache-web-server-on-ubuntu-22-04/): Setting Up Apache Web Server on Ubuntu 22.04: A Step-by-Step Guide    Introduction: In the world of web hosting, Apache is still a mainstay, powering a large portion of the internet. If you are new to web servers and hosting on Ubuntu 22.04, this guide is a must-read. Join us as we walk through the steps of creating and installing the Apache web server, which will serve as the foundation for your digital endeavors.   Step 1: Update Package Repositories: Before we begin the installation process, let us ensure that our package repositories are up to date. Launch a terminal ... Read more - [Grafana Database Locked - Solved](https://vishalvyas.com/grafana-database-locked-solved/): Troubleshooting Grafana: Resolving the ‘Database Locked’ Error Introduction to Grafana: Grafana is an open-source analytics and monitoring platform that works with a wide range of data sources, including time-series databases, relational databases, and others. It provides a powerful and adaptable interface for building, exploring, and sharing interactive dashboards that display real-time data and analytics. Grafana is commonly used in conjunction with other monitoring tools and solutions to create comprehensive monitoring and observability systems. It is frequently combined with well-known cloud services and container orchestration platforms. Dealing with the “Database Locked” Error: Recently, My Grafana server encountered an unexpected “Database locked” ... Read more - [MySQL ERROR 1410 You are not allowed to create a user with GRANT](https://vishalvyas.com/mysql-error-1410-you-are-not-allowed-to-create-a-user-with-grant/): MySQL is an open-source relational database management system (RDBMS) that is widely used in the development of web applications. It is an essential component of the popular software stacks LAMP (Linux, Apache, MySQL, PHP/Python/Perl) and MERN (MongoDB, Express.js, React, Node.js). MySQL is frequently used as the backend database for dynamic websites. CMS (content management systems), e-commerce platforms, and other similar technologies other applications. It is critical in data storage and retrieval. Many web-based applications and services use a retrieval process. In this post, I will explain some MySQL database errors. This type of error occurs frequently when installing and configuring ... Read more - [Copy S3 bucket objects across AWS accounts](https://vishalvyas.com/copy-s3-bucket-objects-across-aws-accounts/): Introduction Copying objects from one AWS S3 account’s bucket to another can be a critical task in a variety of scenarios, and fortunately, AWS offers methods for doing so efficiently. In this tutorial, we will look at how to copy S3 bucket objects across AWS Accounts using the AWS CLI and cross-account permissions. If you are new to AWS, I recommend starting with AWS S3 Sync – How To Synchronize Data In AWS S3. Before starting the process, there are some preliminary steps to ensure a smooth execution: Architecture : Source Bucket Setup Let’s start by configuring the source bucket: ... Read more - [EKS Error : AttachVolume.Attach failed for volume](https://vishalvyas.com/eks-error-attachvolume-attach-failed-for-volume/): Image by Mohamed Hassan from Pixabay   Kubernetes EKS : attachdetach-controller AttachVolume.Attach failed for volume     Encountering the following error in your Kubernetes EKS setup? Error: Warning FailedMount 35 minutes ago kubelet Unable to attach or mount volumes: unmounted volumes=[data], unattached volumes=[kube-api-access-zv4 configuration data]: timed out waiting for the condition Warning FailedAttachVolume 5 minutes ago attachdetach-controller AttachVolume.Attach failed for volume “pvc-7091b8b4-407e-b695-9909fa106fda”: timed out waiting for external-attacher of ebs.csi.aws.com CSI driver to attach volume vol-8d326adf6d This error occurs when no Add-ons for Amazon EBS CSI Driver are installed. If you have already installed ‘Amazon EBS CSI Driver’ and it is ... Read more - [How to configure X-Frame-Options header in Nginx](https://vishalvyas.com/how-to-configure-x-frame-options-header-in-nginx/): Secure Nginx web server from Clickjacking with X-FRAME-OPTIONS Safeguarding Your Website: A Guide to X-Frame-Options in Nginx Understanding the X-Frame-Options Header The X-Frame-Options header is a critical security measure used by web servers, including Nginx, to prevent clickjacking attacks. Clickjacking is the practice of tricking users into interacting with a disguised iframe on a legitimate website, which leads them to malicious content. Implementing X-Frame-Options in Nginx To fortify your website against such threats, Nginx provides several directives for the X-Frame-Options header. Let’s explore the options: 1. DENY Directive This directive is strict, preventing any domain from loading your website within ... Read more - [How To Change MongoDB User Password](https://vishalvyas.com/how-to-change-mongodb-user-password/): Photo by Rubaitul Azad on Unsplash   MongoDB is a popular open-source document-oriented NoSQL database that offers high performance, scalability, and flexibility for modern applications. It is classified as a non-relational database, also known as a NoSQL database, because it does not employ the traditional table-based structure found in relational databases. MongoDB is widely used in a variety of industries and is particularly popular in finance. well-suited for data-intensive applications that require flexibility and scalability storage, such as content management systems and real-time analytics E-commerce platforms and mobile applications are examples of these. You can follow these steps to modify ... Read more - [Deployment in version "v1" cannot be handled as a Deployment](https://vishalvyas.com/deployment-in-version-v1-cannot-be-handled-as-a-deployment/):  Deployment in version “v1” cannot be handled as a Deployment Photo by Brett Jordan on Unsplash In this post, I will explain to you how to resolve the error while applying Kubernetes deployments. The error message suggests that there is an issue with the format of the value field in one of the environment variables defined in your Kubernetes deployment manifest. It seems that the field is expecting a string value, but it is being provided with a number instead. To resolve this issue, ensure that all environment variable values in your deployment manifest are specified as strings. Make sure ... Read more - [Monitor Linux Resources using SAR](https://vishalvyas.com/monitor-linux-resources-using-sar/):   System Activity Reporter (SAR) is a tool for collecting, reporting, and tracking system activity. And keeping track of system activity, such as resource usage, performance, and so on and more on Linux systems. SAR is a component of the sysstat package. How to configure and use SAR on a Linux system is detailed below: On systems running Debian or Ubuntu: sudo apt-get update sudo apt-get install sysstat   On systems running Red Hat/CentOS: sudo yum install sysstat   Start the sar service and turn it on: sudo systemctl start sysstat sudo systemctl enable sysstat   SAR collects data on ... Read more - [Harness the Power of Nginx Ingress with Let's Encrypt](https://vishalvyas.com/harness-the-power-of-nginx-ingress-with-lets-encrypt/): Photo by Farzad on Unsplash   The Nginx Ingress Controller is a popular Kubernetes Ingress Controller that manages inbound network traffic to Kubernetes services. It serves as a reverse proxy, allowing for load balancing, SSL/TLS termination, and routing of incoming requests. Additionally, the Nginx Ingress Controller provides extensibility via custom annotations and configuration options. It supports customizing Nginx settings, enabling advanced features such as rate limiting, request/response rewriting, and proxy buffering.   In this tutorial, I will explain you How to deploy nginx ingress controller with Let’s encrypt to enable SSL on your website. To deploy and configure Nginx Ingress ... Read more - [Block certain file extensions on samba linux](https://vishalvyas.com/block-certain-file-extensions-on-samba-linux/): Enhancing Samba Security: Blocking Specific Files in Linux   Samba is a stable, open-source protocol for Server Message Blocks (SMB) that allows file and print services to run smoothly on a variety of platforms. The Samba server allows you to share files and folders over a network in Linux, but there are times when you may want to limit the types of files that can be uploaded to a shared directory, which is where Samba’s powerful feature known as “veto files” comes into play. What is Veto Files? Veto files in Samba allow you to specify which file types should ... Read more - [How to setup Nginx ingress using helm](https://vishalvyas.com/how-to-setup-nginx-ingress-using-helm/): How to setup Nginx ingress using helm Ingress-Nginx is a Ingress controller of kuberntes. An ingress is an object that allows you to access your services from outside of the cluster. Using the Nginx Ingress controller you can configure load balancing, SSL/TLS certification, URL rewrite, and many more. In this post, I will show you How to Install and configure the Nginx ingress controller with cert-manager and HTTPS with Let’s Encrypt. 1. Install helm Helm is a package manager for Kubernetes. Helm is useful to create deployments, Automation, packaging, and configuring applications and services on Kubernetes. helm repo add ingress-nginx ... Read more - [How to install Terraform in Ubuntu](https://vishalvyas.com/how-to-install-terraform-in-ubuntu/): How to install Terraform in Ubuntu Image by terraform.io Hashicorp Terraform is popular open source Infrastructure as Code tool for automating infrastructure, You can install and configure your cloud infrastructure using terraform, Terraform is very popular today for devops terms, In this post I will explain how to install and configure terraform in Ubuntu. Install Terraform  Let’s install Terraform in Ubuntu server using command line. Install the Curl, gnupg and software-properties-common packages. sudo apt-get update && sudo apt-get install -y gnupg software-properties-common Install GPG key from Hashicorp. wget -O- https://apt.releases.hashicorp.com/gpg |     gpg –dearmor |     sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg ... Read more - [Deploy Static Website using docker container](https://vishalvyas.com/deploy-static-website-using-docker-container/): Docker is a popular containerization tool, Docker can build, share, deploy and run your modern applications.  In this article we will learn how to deploy static website using docker container. we will use Nginx for web server testing. Photo by Venti Views on Unsplash   Create docker file : To deploy static website we will have to create one docker file to run website. in docker file we will add some text to perform tasks. copy the content below and paste in your docker file. Create directory called docker [you can create any] mkdir /docker Create docker file in to ... Read more - [How To Create A MySQL Database - Linux Guru](https://vishalvyas.com/how-to-create-a-mysql-database-linux-guru/): Photo credit Rubaitul Azad on Unsplash MySQL is the most popular open-source and widely used relational database management system, MySQL is a free and open-source database service. It’s easy to set up and run the database on local or cloud servers. In this post, I will explain to you some MySql useful commands to create MySQL database, backup MySQL database, and restore MySQL database. How to create MySQL database using CLI Login to MySQL as the root  user mysql -u root -p Create a database name mydb create database mydb; We have created our first MySQL database. Let’s create a MySQL user to ... Read more - [Apache Service Unavailable 503](https://vishalvyas.com/apache-service-unavailable-503/): (111)Connection refused: AH02454: FCGI: attempt to connect to Unix domain socket /run/php/php8.2-fpm.sock (*) failed   I have running WordPress in my local and I got the error Service Unavailable in the browser while accessing the website. Here are the steps that show how I have resolved this error, Generally this type of error happens due to php-fpm service. In this article I will explain you how to resolve Apache service unavailable error 503.   Error in Apache logs : [Wed Feb 15 09:58:45.658143 2023] [proxy:error] [pid 1266] (111)Connection refused: AH02454: FCGI: attempt to connect to Unix domain socket /run/php/php8.2-fpm.sock (*) ... Read more - [Monitoring Kubernetes with Prometheus - Linux Guru](https://vishalvyas.com/monitoring-kubernetes-with-prometheus-linux-guru/): How to deploy Prometheus on Kubernetes. Image Source Prometheus (software) Prometheus is an open-source systems monitoring and alerting toolkit, You can monitor various resources using Prometheus. Prometheus has multiple modes for visualisation data: a built-in expression browse. In this article we will deploy prometheus server in Kubernetes and Monitor resorces of kubernetes cluster. after deploying prometheus you can confgure prometheus server url in grafana to visulize metric graph. Here are the steps to deploy prometheus on kubernetes. Create namespace We will create namespace called monitoring and deploy prometheus into that namespace. create a file name with namespace.yaml. #Create namespace apiVersion: v1 kind: Namespace metadata: ... Read more - [How To Install Jenkins on Ubuntu 20.04](https://vishalvyas.com/how-to-install-jenkins-on-ubuntu-20-04/): Jenkins is an open-source automation server.  It allows you to automate the parts of software development related to building, testing and deploying, facilitating continuous integration and continuous delivery. It’s a java-based open-source server that runs on any server. In this article, We will install Jenkins on Ubuntu 20.04. Prerequisites I recommend starting with at least 1 GB of RAM for testing purposes and using 4GB+ RAM in the production environment. Oracle JDK 11 installed. Installing Jenkins You can install Jenkins from the default repository but sometimes that version is often behind the latest version. 1. Update the below command to ... Read more - [Another instance of Certbot is already running - Solved - Linux guru](https://vishalvyas.com/another-instance-of-certbot-is-already-running-solved-linux-guru/): Another instance of Certbot is already running Certbot is a free and open-source software tool for automating the acquisition and renewal of SSL/TLS certificates. SSL/TLS certificates are cryptographic certificates that enable secure communication between a website and its users. The Electronic Frontier Foundation (EFF) created Certbot, which is widely used in the industry In this post I will show How to resolve Another instance of Certbot is already running error. Click on the link If you want to learn how to configure certbot and ssl in ubuntu server. I got this error while configuring SSL on my website using certbot. ... Read more - [How to enable text suggestions in Windows 10 - Linux Guru](https://vishalvyas.com/how-to-enable-text-suggestions-in-windows-10-linux-guru/): How to Enable or Disable Text Suggestions in Windows 10  In this tutorial you will learn How to enable text suggestions with hardware keyboard on Windows 10. Using this feature, You can speed up your trying and also can resolves type mistakes faster. Click on the link below to learn more. Steps to enable text predictions and suggestions in Windows 10. 1. Click and open start menu in windows. 2. Select setting from start menu. 3. Click on the device option. 4. In the left panel click on the Typing. 5. Scroll down to Hardware keyboard settings option. 6. Enable Show ... Read more - [How to configure gcr private images in gitlab CI](https://vishalvyas.com/how-to-configure-gcr-private-images-in-gitlab-ci/):   How to configure gcr private images in GitLab ci Recently I was configuring the GitLab pipeline using my own private docker image which was stored in the Google cloud container registry. Below is my .gitlab-ci.yml file. image: docker:19.03.12 variables:   DOCKER_HOST: tcp://docker:2375   DOCKER_DRIVER: overlay2   DOCKER_TLS_CERTDIR: "" services:   - docker:19.03.12-dind stages:    - test     test:   stage: test   image: gcr.io/my-project/my-image:x1   script:     - mvn clean install -DskipTests     - java -cp target/libs/*:target/test-classes:target/classes:config.properties org.testng.TestNG testng.xml   allow_failure: true   only:     - test   artifacts:     name: reports     when: always ... Read more - [Secure nginx with Let's Encrypt on Ubuntu 18.04](https://vishalvyas.com/secure-nginx-with-lets-encrypt-on-ubuntu-18-04/): Image source letsencrypt.org Configure Let’s Encrypt SSL for Nginx webserver on Ubuntu 18.04. Let’s Encrypt is a CA authority that provides free SSL certificates. You can get a certificate for web server like apache and Nginx. In this tutorial, I will explain you how to obtain ssl certificate using Certbot in the ubuntu server and make your website more secure. We will use Nginx web server in this tutorial. Prerequisites Setup Ubuntu 18.04 server with running Nginx webserver. Domain name, In this tutorial I will use linuxguru.ml & www.linuxguru.ml domain. You can buy a free domain on https://my.freenom.com/. How to Install certbot. Certbot is an EFF ... Read more - [Manage GCP bucket using gsutil command](https://vishalvyas.com/manage-gcp-bucket-using-gsutil-command/): How to create a GCP storage bucket using CLI. Image credit `wikipedia` & Google cloud In this tutorial, I will explain to you how to manage and perform basic tasks in GCP cloud storage using the command line. Cloud storage is worldwide and highly durable object-based storage. You can access data instantly at any time from storage class. To manage cloud storage using command line we need to configure gsutils Install gsutil on Ubuntu 18.04. Using gsutil you can manage GCP cloud storage. You can perform tasks related to cloud storage using gsutil command. So let’s install gsutil on ubuntu. There are different methods to install gsutil But here I will ... Read more - [Nginx Ingress with Cert-Manager Kubernetes](https://vishalvyas.com/nginx-ingress-with-cert-manager-kubernetes/): We will use Helm to install Cert Manager to our Cluster. Cert-Manager is a Kubernetes native certificate manager. One of the most significant features that Cert-Manager provides is its ability to automatically provision TLS certificates. Based on the annotations in a Kubernetes ingress resource, the cert-manager will talk to Let’s Encrypt and acquire a certificate on your service’s behalf. Note : Ensure that you are using Helm v2.12.1 or later. Prerequisites : A Kubernetes cluster version 1.8+ The kubectl CLI installed and configured Helm and Tiller should be installed. 1. Connect the cluster : gcloud container clusters get-credentials yourclustername --zone zonename --project ... Read more - [Publish your Docker Image to Docker Hub](https://vishalvyas.com/publish-your-docker-image-to-docker-hub/): Create and publish your docker image on docker hub. Here in this tutorial, I will explain you how to build and upload your custom image to the Docker hub and make it public. You can upload your custom images to docker hub. So other people can also use that image in their applications. Docker Hub is the world’s easiest way to create, manage, and deliver your teams’ container applications. You can find many images on docker hub for your application. Also you can upload your custom image on it. Login to the docker hub. First you need to login to ... Read more - [Configure Nginx Ingress Kubernetes with TLS](https://vishalvyas.com/configure-nginx-ingress-kubernetes-with-tls/): Secure your kubernetes cluster with nginx ingress with TLS and LetsEncrypt.   The NGINX Ingress Controller is a well-known Kubernetes Ingress controller that uses NGINX to manage external access to Kubernetes services. It is a piece of software that acts as a load balancer for HTTP and HTTPS traffic, allowing you to specify how external HTTP/S traffic should be routed to your services. Note : Make sure you have intalled helm in your PC. Role : Create role for accessing helm to the cluster. $ kubectl create clusterrolebinding tiller-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default $ helm init Installation : Install Nginx ingress using helm. $ ... Read more - [How to Install Go 1.13 on Ubuntu - Linux Guru](https://vishalvyas.com/how-to-install-go-1-13-on-ubuntu-linux-guru/): How to Install Go 1.13 on Ubuntu. Reference : go-seeklogo Go is an opensource programing language developed by google. It’s very popular and many companies using their application in go. It has robust set of library and tools. Many applications such as Docker and Kubernetes are written in Go. In this tutorial i will help you to install Go version 1.13.4 in Ubuntu 18.04. Remove the existing golang You have to remove existing golang from your machine. sudo apt-get purge golang* Download Go. Download the latest version of the Go from it’s official website. Click here to more. https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz Extract it in /usr/local ... Read more - [1 node(s) had taints that the pod didn't tolerate Solved](https://vishalvyas.com/1-nodes-had-taints-that-the-pod-didnt-tolerate-solved/): Resolving Kubernetes Pod Scheduling Issues: Addressing “1 node(s) had taints that the pod didn’t tolerate” Error Have you ever run into the Kubernetes error “1 node(s) had taints that the pod could not tolerate”? This usually happens because, by default, pods don’t schedule on the master node in Kubernetes. While running pods on worker nodes is best practice, there may be times when you need to deploy pods on a single-node master cluster, particularly in Kubernetes on AWS. Error: If your pod becomes stuck in a pending state during deployment and fails to run, the problem could be related to ... Read more - [Install aws-iam-authenticator linux - Linux Guru](https://vishalvyas.com/install-aws-iam-authenticator-linux-linux-guru/): Image source aws.amazon.com How to install IAM authenticator in Linux. Amazon IAM authenticator provides authentication to the kubernetes cluster. after authenticate with IAM authenticator you can deploy your app on EKS. Download IAM authenticator binary from amazon s3. curl -o aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/linux/amd64/aws-iam-authenticator Now, You can find the binary of IAM authenticator. Give the executable permission to the IAM authenticator Binary. chmod +x ./aws-iam-authenticator Copy the binary to $HOME/bin/aws-iam-authenticator. mkdir -p $HOME/bin && cp ./aws-iam-authenticator $HOME/bin/aws-iam-authenticator && export PATH=$HOME/bin:$PATH Add $HOME/bin to your PATH environment variable. echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc Now your can use IAM authenticator. aws-iam-authenticator help Linuxguru - [How to install python 3.7 in ubuntu Linux guru](https://vishalvyas.com/how-to-install-python-3-7-in-ubuntu-linux-guru/): How to install python 3.7 in ubuntu. Python is a most populer programing language in the world, Also python is a fastes growing progaming language. Python is very versatile language so you can easily learn and understand python. The latest version of python is 3.7. In ubuntu 18.04 python version 2 and 3.6 are pre installed. apt update apt install software-properties-common add-apt-repository ppa:deadsnakes/ppa Enter to continue. sudo apt install python3.7 Check the python version. python3.7 --version how to set python3 as default in ubuntu. A simple way to set latest python version in ubutu is to set it in .bashrc ... Read more - [Basic Git Commands Linux Guru](https://vishalvyas.com/basic-git-commands-linux-guru/): Git Commands image courtesy git-scm Here are some git command list which are comes in daily use. Creating and Cloning: commands use git init create and initialize local git repository git clone REPO_URL Clone remore repo git remote add origin REPO_URL add remote repository. git config-global user.name my-name set author name git config-global user.email my-email set author email Basic git commands :  commands use git status check the current state of repository git add . Add all the files to staging area repository git add vishal.txt add perticular file to the staging area repository git commit -m "commit message" commit ... Read more - [Kubernetes secret - Linux Guru](https://vishalvyas.com/kubernetes-secret-linux-guru/): Store a directory in a kubernetes secret Here you will learn how to add directory in kubernetes secret and mount it on each pods. Secrets can be defined as Kubernetes objects used to store sensitive data such as user name and passwords with encryption. In order to create secrets from a text file such as user name, password and keys, we first need to store them in particular folder and use the following command. Create kubernetes secrets from a directory : Make sure you are connected to cluster first. suppose you want to upload secret from .config folder and all ... Read more - [Analize code with Sonar Scanner - Linux Guru](https://vishalvyas.com/analize-code-with-sonar-scanner-linux-guru/): Setting Up the SonarCode Scanner. SonarQube’s code scanner is a package that you can install on different machine, it’s not good idea to install it with sonarqube server, You can install it on testing setver or in your local machine. There are packages available for Windows, MacOS, and Linux which you can find at the SonarQube web site. In the previous article we have setup Sonarqube server on kubernetes. Click here to read the post. Create a directory for sonar scanner mkdir /opt/sonarscanner cd /opt/sonarscanner Download the SonarQube scanner for Linux using wget. you can download as per your OS. ... Read more - [Deploy Sonarqube on Kubernetes GCP - Linuxguru](https://vishalvyas.com/deploy-sonarqube-on-kubernetes-gcp-linuxguru/): Image by sonarqube Sonarqube deployment on Kubernetes GCP. Sonarqube is an opensource software for code analysis and code inspection utility. You can detect bugs, security vunerabilities and code smells using sonarqube analysis. it’s support 20+ programming languages. In this tutorial I will deploy sonarqube on Kubernetes. So let’s start the deploying. Prerequisites Sonarqube will require database, I am using postgres, You can use other database also. Bash/PowerShell terminal with kubectl installed PostgreSQL database to store SonarQube’s data Kubernetes cluster 1. Create Postgress DB GCP Cloud SQL. Click here to create postgress db along with username and password. 2. Generate base64 encoded ... Read more - [Configure Static IP Nginx ingress Kubernetes - Linux Guru](https://vishalvyas.com/configure-static-ip-nginx-ingress-kubernetes-linux-guru/): You have a web server running on kubernetes and expose it on a domain name and you need the external ip of an application to be a static ip that does not change. Reserve a new static IP address for INGRESS. Reserve a static external IP address named my-website-ip by run following command from your machine. $ gcloud compute addresses create my-website-ip --global here now we have reserved the static ip for the ingress, lets create ingress controller for the application and attached the static ip. lets create ingress file and describe the service name and static IP. $ ingress.yaml ... Read more - [Deploy Prometheus with Docker](https://vishalvyas.com/deploy-prometheus-with-docker/): Prometheus is an open-source systems monitoring and alerting toolkit, You can monitor various resources using Prometheus. Prometheus has multiple modes for visualisation data: a built-in expression browse. Download the promethes for linux. We will download the prometheus setup for linux and unzip the setup. https://github.com/prometheus/prometheus/releases/download/v2.7.1/prometheus-2.7.1.linux-amd64.tar.gz Untar setup. $ tar -xzf prometheus-2.7.1.linux-amd64.tar.gz Go to the directory. $ cd prometheus-2.7.1.linux-amd64 Now you can costumize you promethus.yml file and add some target into it and save the file. Create docker file. $ vim Dockerfile FROM prom/prometheus ADD . /etc/prometheus/ save the file. Build the Dockerfile. $ docker build -t prometheus:myversion . Now run ... Read more - [Installing Istio on Kubernetes Engine - Linux Guru](https://vishalvyas.com/installing-istio-on-kubernetes-engine-linux-guru/): image source mobilemarketingmagazine. Istio is an open source framework for connecting, monitoring, and securing microservices, including services running on Kubernetes Engine. This tutorial shows you how to install and configure Istio on GKE and deploy an Istio-enabled multi-service application. Before you begin :  1. Kubectl. 2. gcloud auth. 3. kubernetes cluster. Create Kubernetes Cluster. Let’s create first kubernetes cluster, Run the following command to create Kubernetes cluster in GCP. $ gcloud container clusters create istio –machine-type=n1-standard-2 –num-nodes=3 Download and install Istio. Go to the istio official page to download the installation file. https://github.com/istio/istio/releases Extract the istio downloded file.  YAML file for ... Read more - [Setup Kubernetes Dashboard - Linux Guru](https://vishalvyas.com/setup-kubernetes-dashboard-linux-guru/): Kubernetes Dashboard : Dashboard is a web-based Kubernetes user interface. You can use Dashboard to deploy containerized applications to a Kubernetes cluster, troubleshoot your containerized application, Setting up the dash board: $ kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml Create user to access dashboard. We will create user using RABC for default namespace access. Create RABC yaml and apply it. apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: default --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: default Save it and apply. $ kubectl apply -f user-rabc.yaml Now You ... Read more - [Deploy wordpress with Docker compose - Linux Guru](https://vishalvyas.com/deploy-wordpress-with-docker-compose-linux-guru/): image source medium How to use Docker compose. If you are using docker for your application and you are using more than one container for your app, then you have to use docker compose for app and it’s too time consuming, example: web server with database will run from same file (WordPress,apache OR mysql). Docker compose allow you to use YAML file to run deploy multi container apps. We can configure multiple container we want. In the docker file it describe how app will build, connect and where data stored. To run docker compose, You have to install docker and ... Read more - [Deploy Nginx on Kubernetes GCP - Linux Guru](https://vishalvyas.com/deploy-nginx-on-kubernetes-gcp-linux-guru/): Image source nginx I have created this tutorial for the beginners who are just started working on kubernetes, and wants to know how to deploy apps on Kubernetes, So i will install simple Nginx app on Kubernetes. i am using gcp for Kubernetes, So first we will have to create Kubernetes cluster over GCP account. So let’s create Kubernetes cluster with minimum node requirement. we will use f1-micro instance for the Nginx deployment, You can also deploy multiple app on cluster. if you are using google cloud then you have already setup gcloud on your local machine so that we can manage ... Read more - [Generate wildcard SSL Letsencrypt Nginx - Linux Guru](https://vishalvyas.com/generate-wildcard-ssl-letsencrypt-nginx-linux-guru/): Generate wild card certificate nginx Letsencrypt Letsencrypt is an easy and free to generate and manage ssl certificate. using Letsencrypt we can generate ssl for our domain vishalvyas.com or info.vishalvyas.com. Letsencrypt also allow us to create wild card ssl certificates also, So let’s create wild cars ssl certificate for the website www.vishalvyas.com (info.vishalvyas.com, about.vishalvyas.com). What is wild card Certificates. Wild card certificate is valid for you all sub domains. if you have multiple sub domain and use one certificate of all , then you can use wild card for it. ie : info.vishalvyas.com, about.vishalvyas.com Here i am using nginx for web server ... Read more - [How to install minikube on Ubuntu 18.04](https://vishalvyas.com/how-to-install-minikube-on-ubuntu-18-04/): Source image from Medium Minikube is a tool that makes it easy to run kubernetes locally. Minikube runs a single node kubernetes cluster inside a Linux VM. we can use it for development and testing purpose. it can not spin up production cluster because it’s one node machine with no high availibility. It works on Linux, Windows and Mac machine. You will also need virtulization software installed to run minikube. So here we have use virtual box for virtualisation. Update the system with latest packages. $ apt-get update $ apt-get install apt-transport-https $ apt-get upgrade Install Virtual box in ubuntu. ... Read more - [Jenkins Monitoring Plugin - Linux Guru](https://vishalvyas.com/jenkins-monitoring-plugin-linux-guru/): In this tutorial i will explain how to monitor jenkins node, The Monitoring plugin provides monitoring of Jenkins with JavaMelody, We will install plugin of monitoring in jenkins. it provides graph and info of memory, cpu, http responce time, system load, load average and all things. it is also provides errors, http sessions, heap dump, invalid sessions. let’s install monitoring plugin to jenkins. Login to jenkins web. Go to the Manage Jenkins > Manage Plugins. and search for monitoring and install it. After installing plugin of monitoring. Go to the Manage Jenkins and click on Monitoring of Jenkins master. You can monitor ... Read more - [Install Grafana Kubernetes with Storage - Linux Guru](https://vishalvyas.com/install-grafana-kubernetes-with-storage-linux-guru/): How to install grafana on Kubernetes google cloud. Grafana is an open source visualization tool, Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team. Here we will deploy grafana on Kubernetes google cloud platform using helm. Prerequisite :  1. Make sure you have created kubernetes cluster ready. 2. Connect kubernetes cluster using gcloud. 3. Make sure you have install and configure helm, you can install it by clicking here. 4. Create kubernetes cluster role for helm. $ kubectl create clusterrolebinding tiller-cluster-admin –clusterrole=cluster-admin –serviceaccount=kube-system:default ... Read more ## Pages - [Yaml validator](https://vishalvyas.com/yaml-validator/): YAML Validator & Formatter Validate and auto-fix YAML indentation directly in your browser. Validate Auto-Fix Indentation - [Curriculum Vitae](https://vishalvyas.com/curriculum-vitae/): Vishal Vyas Ahmedabad, Gujarat, India  Email: vishal@vishalvyas.comPhone: 09978839723 LinkedIn: https://linkedin.com/in/imvishalvyasWebsite: https://vishalvyas.com Summary Accomplished Senior DevOps Engineer specializing in cloud computing, automation, and infrastructure management. Extensive expertise in AWS and GCP, leveraging Terraform for infrastructure as code, managing robust CI/CD pipelines, and maintaining large-scale production environments. Skilled in secrets management, container orchestration, and deploying resilient cloud architectures. Professional Experience Senior DevOps Engineer Company : Zuru Tech India Pvt Ltd (Jul 2018 – Present) Senior Linux Server Administrator DB Corp LTD (dainikbhaskar.com) (Jul 2013 – Jul 2018) Linux System Administrator Kraff Softwares Pvt Ltd (Jul 2009 – Aug 2013) System Administrator Gujarat ... Read more - [Linux Guru](https://vishalvyas.com/linux-guru/): High-Level Architecture Diagram for Local GitLab Server with Jenkins Components Involved: Flow Diagram Explanation Additional Enhancements - [Privacy Policy](https://vishalvyas.com/privacy-policy-2/): Who we are Suggested text: Our website address is: https://vishalvyas.com. Comments Suggested text: When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection. An anonymised string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service Privacy Policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment. Media Suggested ... Read more - [Newsletter](https://vishalvyas.com/newsletter/): [newsletter] - [Contact Us](https://vishalvyas.com/contact-us/): Feel free to explore our website, and if you have any questions or feedback, we’d love to hear from you! - [About Linux Guru](https://vishalvyas.com/about-linux-guru/): Welcome to Linux Guru Welcome to Linux Guru, your go-to destination for cutting-edge insights and tutorials on Linux, DevOps, and cloud technologies. I’m Vishal Vyas, the driving force behind this blog. Let me take this opportunity to introduce myself and share the wealth of knowledge and experience I’ve accumulated over my illustrious 15-year career. Who is Vishal Vyas? I am an accomplished professional with a profound interest in Linux, Cloud, and DevOps. With over 15 years of experience in the IT field, I have amassed a wealth of knowledge and a deep understanding of the technologies that power the digital ... Read more [comment]: # (Generated by Hostinger Tools Plugin)