<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Asad</title>
    <description>The latest articles on Forem by Asad (@arafique458).</description>
    <link>https://forem.com/arafique458</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1051031%2F321144b4-3b4e-484b-9ba7-804110ef5b02.PNG</url>
      <title>Forem: Asad</title>
      <link>https://forem.com/arafique458</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/arafique458"/>
    <language>en</language>
    <item>
      <title>🗃️ MongoDB &amp; Mongo Express – Docker Setup</title>
      <dc:creator>Asad</dc:creator>
      <pubDate>Fri, 16 May 2025 01:27:35 +0000</pubDate>
      <link>https://forem.com/arafique458/mongodb-mongo-express-docker-setup-1kle</link>
      <guid>https://forem.com/arafique458/mongodb-mongo-express-docker-setup-1kle</guid>
      <description>&lt;p&gt;This guide provides a quick and easy way to run &lt;strong&gt;MongoDB&lt;/strong&gt; and &lt;strong&gt;Mongo Express&lt;/strong&gt; using Docker. It includes their purpose, Docker usage, and troubleshooting steps for container management.&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 Overview
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔹 MongoDB
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;MongoDB&lt;/strong&gt; is a popular &lt;strong&gt;NoSQL database&lt;/strong&gt; that stores data in flexible, JSON-like documents. It’s ideal for scalable, high-performance applications where schema flexibility is important.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔹 Mongo Express
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Mongo Express&lt;/strong&gt; is a lightweight, &lt;strong&gt;web-based admin interface&lt;/strong&gt; for MongoDB. It allows you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;View and manage databases&lt;/li&gt;
&lt;li&gt;Browse collections and documents&lt;/li&gt;
&lt;li&gt;Execute queries and CRUD operations&lt;/li&gt;
&lt;li&gt;Use a user-friendly web UI to interact with MongoDB&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Getting Started
&lt;/h2&gt;

&lt;p&gt;Ensure Docker is installed and a custom Docker network exists:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker network create project-network
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🐳 Start MongoDB Container
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d --name mongodb \
  --network project-network \
  -e MONGO_INITDB_ROOT_USERNAME=admin \
  -e MONGO_INITDB_ROOT_PASSWORD=password \
  -v mongo-data:/data/db \
  mongo:4.4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Explanation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uses &lt;code&gt;mongo:4.4&lt;/code&gt; (recommended for CPUs without AVX support)&lt;/li&gt;
&lt;li&gt;Stores data in a named volume: &lt;code&gt;mongo-data&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Runs on a shared Docker network for Mongo Express to connect&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🐳 Start Mongo Express Container
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d --name mongo-express \
  --network project-network \
  -e ME_CONFIG_MONGODB_ADMINUSERNAME=admin \
  -e ME_CONFIG_MONGODB_ADMINPASSWORD=password \
  -e ME_CONFIG_MONGODB_SERVER=mongodb \
  -e ME_CONFIG_BASICAUTH_USERNAME=admin \
  -e ME_CONFIG_BASICAUTH_PASSWORD=pass123 \
  -p 8083:8081 \
  mongo-express:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Access the Web UI:&lt;/strong&gt; &lt;a href="http://localhost:8083" rel="noopener noreferrer"&gt;http://localhost:8083&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Login Credentials:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Username: &lt;code&gt;admin&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Password: &lt;code&gt;pass123&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🛑 Troubleshooting: Force Stop Unresponsive Containers
&lt;/h2&gt;

&lt;p&gt;If &lt;code&gt;docker stop&lt;/code&gt; fails, you can manually stop the container using the container’s process ID:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Get the container's PID
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker inspect --format '{{.State.Pid}}' &amp;lt;container_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Kill the process
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo kill -9 &amp;lt;PID&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Remove the container
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker rm &amp;lt;container_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  (Optional) Restart Docker daemon
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl restart docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;standard Docker commands&lt;/strong&gt; to stop containers and clean up your environment:
&lt;/h2&gt;




&lt;h2&gt;
  
  
  🛑 Stop Docker Containers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Stop a specific container:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker stop &amp;lt;container_name_or_id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Stop all running containers:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker stop $(docker ps -q)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🧼 Remove Docker Containers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Remove a specific container:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker rm &amp;lt;container_name_or_id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Remove all &lt;strong&gt;stopped&lt;/strong&gt; containers:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker container prune
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Remove all containers (running or stopped):
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker rm -f $(docker ps -aq)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🗑️ Remove Docker Images
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Remove a specific image:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker rmi &amp;lt;image_id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Remove all unused images:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker image prune
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Remove all images:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker rmi -f $(docker images -aq)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🧹 Remove Docker Volumes (Optional)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Remove unused volumes:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker volume prune
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Remove all volumes:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker volume rm $(docker volume ls -q)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🔄 Restart Docker (if needed)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl restart docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🧹 Cleanup Docker Resources (Extreme Measures)
&lt;/h2&gt;

&lt;p&gt;To remove all containers and images:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
docker rmi -f $(docker images -aq)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






</description>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
      <category>devops</category>
    </item>
    <item>
      <title>🐳 What is Docker? A Beginner-Friendly Breakdown</title>
      <dc:creator>Asad</dc:creator>
      <pubDate>Wed, 14 May 2025 01:30:08 +0000</pubDate>
      <link>https://forem.com/arafique458/what-is-docker-a-beginner-friendly-breakdown-2h7o</link>
      <guid>https://forem.com/arafique458/what-is-docker-a-beginner-friendly-breakdown-2h7o</guid>
      <description>&lt;p&gt;If you're new to containerization or just want a clear understanding of Docker, you're in the right place. In this post, we’ll walk through the what, why, and how of Docker in a simple, no-fluff format.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;📦 What is Docker?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Docker is an open-source platform that makes it easier to build, ship, and run applications using containers.&lt;/p&gt;

&lt;p&gt;A container is a lightweight, portable package that includes everything your app needs to run: source code, libraries, dependencies, and environment variables — all bundled together.&lt;/p&gt;

&lt;p&gt;Think of it like a “super zip file” that runs your code the same way on any machine.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;🤔 Why Was Docker Needed?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Before Docker, developers faced the classic:&lt;/p&gt;

&lt;p&gt;"It works on my machine" 😤&lt;/p&gt;

&lt;p&gt;Apps would break when moving between dev, test, and prod environments due to OS differences, missing libraries, or conflicting dependencies.&lt;/p&gt;

&lt;p&gt;Developers either:&lt;/p&gt;

&lt;p&gt;Struggled with heavyweight virtual machines, or&lt;/p&gt;

&lt;p&gt;Wrote complex setup scripts to recreate environments.&lt;/p&gt;

&lt;p&gt;Docker came in to streamline and standardize how we build and deploy apps — from laptops to cloud servers.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;🛠️ What Problem Does Docker Solve?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Docker solves several real-world challenges for developers and ops teams:&lt;/p&gt;

&lt;p&gt;✅ Environment consistency — no more "works on my machine"&lt;/p&gt;

&lt;p&gt;✅ Faster development cycles — containers start in milliseconds&lt;/p&gt;

&lt;p&gt;✅ Easy testing &amp;amp; deployment — replicate production locally&lt;/p&gt;

&lt;p&gt;✅ Lightweight &amp;amp; efficient — uses less memory than VMs&lt;/p&gt;

&lt;p&gt;✅ Portability — run containers anywhere Docker is installed&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;🔧 What is the Docker Daemon?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The Docker Daemon (dockerd) is the engine that powers Docker.&lt;/p&gt;

&lt;p&gt;It runs in the background and:&lt;/p&gt;

&lt;p&gt;Listens for Docker CLI/API commands&lt;/p&gt;

&lt;p&gt;Builds images&lt;/p&gt;

&lt;p&gt;Starts/stops containers&lt;/p&gt;

&lt;p&gt;Manages networks and volumes&lt;/p&gt;

&lt;p&gt;The CLI (docker) talks to the Daemon via a REST API.&lt;/p&gt;

&lt;p&gt;💡 You can think of the daemon as the brain, and the CLI as your hands.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;📄 What is a Dockerfile?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A Dockerfile is a set of instructions used to build a Docker image.&lt;/p&gt;

&lt;p&gt;It defines:&lt;/p&gt;

&lt;p&gt;The base image&lt;/p&gt;

&lt;p&gt;What files to copy&lt;/p&gt;

&lt;p&gt;Dependencies to install&lt;/p&gt;

&lt;p&gt;Commands to run&lt;/p&gt;

&lt;p&gt;Example Dockerfile for a Node.js app:&lt;/p&gt;

&lt;p&gt;Dockerfile&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FROM node:18
WORKDIR /app
COPY . .
RUN npm install
CMD ["npm", "start"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This creates a container that installs dependencies and starts your app with npm start.&lt;/p&gt;

&lt;p&gt;🖼️ What is a Docker Image?&lt;br&gt;
A Docker image is a snapshot of your application environment.&lt;/p&gt;

&lt;p&gt;It’s:&lt;/p&gt;

&lt;p&gt;Built from a Dockerfile&lt;/p&gt;

&lt;p&gt;Immutable (read-only)&lt;/p&gt;

&lt;p&gt;Portable&lt;/p&gt;

&lt;p&gt;Once you have an image, you can run it as a container:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run my-app-image
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Images can be pushed to registries (like Docker Hub) and pulled by anyone, anywhere.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;👤 What Permissions Are Needed to Run Docker as "ubuntu" User?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;By default, running Docker commands requires sudo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo docker ps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To run Docker as a non-root user (e.g., ubuntu), add the user to the docker group:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo usermod -aG docker ubuntu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then log out and back in to apply the group change.&lt;/p&gt;

&lt;p&gt;⚠️ Warning: The docker group has root-equivalent access. Use with caution.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;🚀 Wrapping Up&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Docker has become a must-have tool for modern developers. Whether you're building microservices, deploying to the cloud, or just trying to eliminate “it works on my machine” bugs — Docker makes your workflow more predictable, portable, and powerful.&lt;/p&gt;

&lt;p&gt;Have questions or want to dive deeper into Docker Compose, networking, or volumes? Let me know in the comments! 👇&lt;/p&gt;

&lt;h4&gt;
  
  
  Follow me for more practical DevOps and backend dev content! 🙌
&lt;/h4&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
      <category>ai</category>
    </item>
    <item>
      <title>SSH Key Generating for Git hub Process</title>
      <dc:creator>Asad</dc:creator>
      <pubDate>Sat, 22 Mar 2025 13:00:29 +0000</pubDate>
      <link>https://forem.com/arafique458/ssh-key-generating-for-git-hub-process-2f4g</link>
      <guid>https://forem.com/arafique458/ssh-key-generating-for-git-hub-process-2f4g</guid>
      <description>&lt;p&gt;What is SSH&lt;/p&gt;

&lt;p&gt;SSH is also known as Secure Shell Protocol, which allows sys admins or users a secure way to access their systems over the unsecured network. You need ad public key and a private key to connect to the security systems.&lt;/p&gt;

&lt;p&gt;The public is a key that will be used to decrypt the private key and usually gets saved in the secure credentialing manager on the user's system.&lt;/p&gt;

&lt;p&gt;The private key is an encrypted key that the users will have it saved somewhere safe on their computers.&lt;/p&gt;

&lt;p&gt;The process demonstrated here is done on Linux, if you follow along you wont fail.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Navigate to &lt;code&gt;cd ~/.ssh&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;ssh-keygen -o -t key(RSA) -C&lt;/code&gt; "your GitHub email address"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If it asks you for a location just hit enter or return because by default ssh will look for the key here. &lt;code&gt;/home/devbox/.ssh&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The location of the ssh key &lt;code&gt;cat id_key(rsa).pub&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy and paste it into the git hub setting &amp;gt; ssh key.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;]]&amp;gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>rsa</category>
      <category>githubtoken</category>
    </item>
    <item>
      <title>User/Group Management and Permissions/Ownership in Linux</title>
      <dc:creator>Asad</dc:creator>
      <pubDate>Sat, 01 Mar 2025 05:00:48 +0000</pubDate>
      <link>https://forem.com/arafique458/usergroup-management-and-permissionsownership-in-linux-4k74</link>
      <guid>https://forem.com/arafique458/usergroup-management-and-permissionsownership-in-linux-4k74</guid>
      <description>&lt;p&gt;Linux, as a multi-user operating system, requires effective user and group management to maintain system security and control access to resources. This document outlines key concepts and practices in user/group management and file permissions/ownership.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;User Management&lt;/strong&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Types of Users&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Root User&lt;/strong&gt; : Superuser with unrestricted system access. Home directory: &lt;code&gt;/root&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Regular Users&lt;/strong&gt; : Non-privileged users with home directories in &lt;code&gt;/home/username&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Creating Users&lt;/strong&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bashsudo useradd johnsudo passwd john
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;User Configuration Files&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;/etc/passwd&lt;/code&gt;: User account information&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;/etc/shadow&lt;/code&gt;: Encrypted passwords and account expiration data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;/etc/group&lt;/code&gt;: Group information&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Group Management&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Groups facilitate managing permissions for multiple users simultaneously.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Creating Groups and Adding Users&lt;/strong&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bashsudo groupadd developerssudo usermod -aG developers john
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Key Management Commands&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;useradd&lt;/code&gt;: Add new user&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;passwd&lt;/code&gt;: Set/change user password&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;usermod&lt;/code&gt;: Modify user account&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;groupadd&lt;/code&gt;: Add new group&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;groups&lt;/code&gt;: Display user's group memberships&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;deluser&lt;/code&gt;: Delete user&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;delgroup&lt;/code&gt;: Delete group&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Permissions and Ownership&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Linux uses a permission model to control file and directory access.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;File Ownership&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Owner: User who owns the file&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Group: Group that owns the file&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Change ownership:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bashsudo chown user:group filename
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;File Permissions&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Permissions are represented as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;text-rwxr-xr--
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;First character: File type&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Next three: Owner permissions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Following three: Group permissions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Last three: Others' permissions&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Permissions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;r&lt;/code&gt;: Read&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;w&lt;/code&gt;: Write&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;x&lt;/code&gt;: Execute&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Changing File Permissions&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Using &lt;code&gt;chmod&lt;/code&gt; command:&lt;/p&gt;

&lt;p&gt;Symbolic mode:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bashchmod u+rwx filenamechmod g-w filenamechmod o=rx filename
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Numeric mode:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bashchmod 755 filenamechmod 644 filename
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Practical Scenarios&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Creating a New User and Assigning to a Group&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Changing File Ownership and Permissions&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Comprehensive Example&lt;/strong&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bashsudo useradd alicesudo passwd alicesudo groupadd engineerssudo usermod -aG engineers alicegroups alicetouch project.txtsudo chown alice:engineers project.txtchmod 664 project.txtls -l project.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This comprehensive guide provides a solid foundation for managing users, groups, and file permissions in Linux environments, essential for maintaining system security and access control.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>10 Corporate Real-Time Shell Scripts</title>
      <dc:creator>Asad</dc:creator>
      <pubDate>Fri, 28 Feb 2025 17:18:49 +0000</pubDate>
      <link>https://forem.com/arafique458/10-corporate-real-time-shell-scripts-563i</link>
      <guid>https://forem.com/arafique458/10-corporate-real-time-shell-scripts-563i</guid>
      <description>&lt;p&gt;Backup Script Script&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SOURCE="/home/ubuntu/Test01"DESTINATION="/home/ubuntu/Test02/"DATE=$(date +%Y-%m-%d_%H-%M-%S)# Create backup directory and copy filesmkdir -p $DESTINATION/$DATEcp -r $SOURCE $DESTINATION/$DATEecho "Backup completed on $DATE"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Explanation&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SOURCE&lt;/strong&gt; : The directory to be backed up. DESTINATION: The directory where the backup will be stored. &lt;strong&gt;DATE&lt;/strong&gt; : Captures the current date and time to create a unique backup folder.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mkdir -p $DESTINATION/$DATE&lt;/code&gt;: Creates the backup directory if it does not exist.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cp -r $SOURCE $DESTINATION/$DATE&lt;/code&gt;: Copies the contents of the source directory to the backup directory.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;echo "Backup completed on $DATE"&lt;/code&gt;: Outputs a message indicating the completion of the backup.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scheduling the backup with Cron
&lt;/h3&gt;

&lt;p&gt;To schedule regular execution of the backup script, utilize the crontab editor by running the following command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;crontab -e&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Once in the editor, add the following line to configure the backup schedule:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;text* * * * * /path/to/backup_script.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This configuration will execute the backup script every minute&lt;a href="https://www.windmill.dev/blog/edit-crontabs" rel="noopener noreferrer"&gt;5&lt;/a&gt;. Modify the cron schedule parameters to align with your desired backup frequency.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Disk Usage Monitoring Script&lt;/strong&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Script Overview&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This Bash script monitors disk usage across partitions and issues warnings when usage exceeds a predefined threshold.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bash#!/bin/bashTHRESHOLD=80df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;do usage=$(echo $output | awk '{ print $1}' | cut -d'%' -f1) partition=$(echo $output | awk '{ print $2 }') if [$usage -ge $THRESHOLD]; then echo "Warning: Disk usage on $partition is at ${usage}%" fidone
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Functionality Breakdown&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Threshold Setting&lt;/strong&gt; : The script initializes with a disk usage threshold of 80%.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Disk Usage Data Collection&lt;/strong&gt; : Utilizes &lt;code&gt;df -H&lt;/code&gt; to retrieve disk usage information in a human-readable format.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Data Filtering&lt;/strong&gt; : Employs &lt;code&gt;grep&lt;/code&gt; to exclude non-essential filesystem entries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Data Extraction&lt;/strong&gt; : Uses &lt;code&gt;awk&lt;/code&gt; to isolate usage percentages and partition names.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Iterative Processing&lt;/strong&gt; : Processes each filtered entry using a while loop.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Usage Calculation&lt;/strong&gt; : Extracts the numerical usage percentage from each entry.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Partition Identification&lt;/strong&gt; : Isolates the partition name for each entry.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Threshold Comparison&lt;/strong&gt; : Compares the usage against the predefined threshold.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Alert Generation&lt;/strong&gt; : Outputs a warning message for partitions exceeding the threshold.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Service Health Check&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This script checks if a specified service is running and starts it if not.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bash#!/bin/bashSERVICE="nginx"if systemctl is-active --quiet $SERVICE; then echo "$SERVICE is running"else echo "$SERVICE is not running" systemctl start $SERVICEfi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Explanation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;SERVICE&lt;/code&gt;: Specifies the name of the service to check (nginx in this example).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;systemctl is-active --quiet $SERVICE&lt;/code&gt;: Checks if the service is running.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If the service is running, it prints a confirmation message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If it is not running, it prints a message and attempts to start the service.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Network Connectivity Check&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This script checks network connectivity to a specified host.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bash#!/bin/bashHOST="google.com"OUTPUT_FILE="/home/ubuntu/output.txt"if ping -c 1 $HOST &amp;amp;&amp;gt; /dev/nullthen echo "$HOST is reachable" &amp;gt;&amp;gt; $OUTPUT_FILEelse echo "$HOST is not reachable" &amp;gt;&amp;gt; $OUTPUT_FILEfi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Explanation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;HOST&lt;/code&gt;: Specifies the hostname to check.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;OUTPUT_FILE&lt;/code&gt;: Defines where to write the output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;ping -c 1 $HOST &amp;amp;&amp;gt; /dev/null&lt;/code&gt;: Pings the host once, suppressing output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Depending on the ping result, it writes a reachability status to the output file.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Database Backup&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This script creates a backup of a specified MySQL database.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bash#!/bin/bashDB_NAME="mydatabase"BACKUP_DIR="/path/to/backup"DATE=$(date +%Y-%m-%d_%H-%M-%S)mysqldump -u root -p $DB_NAME &amp;gt; $BACKUP_DIR/$DB_NAME-$DATE.sqlecho "Database backup completed: $BACKUP_DIR/$DB_NAME-$DATE.sql"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Explanation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;DB_NAME&lt;/code&gt;: Specifies the database to back up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;BACKUP_DIR&lt;/code&gt;: Defines where to store the backup.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;DATE&lt;/code&gt;: Captures the current date and time for a unique filename.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;mysqldump&lt;/code&gt; command creates a SQL dump of the database.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The echo statement confirms the backup completion and location.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;System Uptime Check&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This simple script displays the system's uptime.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bash#!/bin/bashuptime -p
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Explanation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;uptime -p&lt;/code&gt;: Prints the system uptime in a human-readable format.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Listening Ports Monitor&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This script lists all listening ports and their associated services.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bash#!/bin/bashnetstat -tuln | grep LISTEN
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Explanation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;netstat -tuln&lt;/code&gt;: Lists all TCP and UDP listening ports.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;grep LISTEN&lt;/code&gt;: Filters the output to show only listening ports.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Automatic Package Updates&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This script updates and cleans up system packages.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bash#!/bin/bashapt-get update &amp;amp;&amp;amp; apt-get upgrade -y &amp;amp;&amp;amp; apt-get autoremove -y &amp;amp;&amp;amp; apt-get cleanecho "System packages updated and cleaned up"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Explanation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;apt-get update&lt;/code&gt;: Updates the package list.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;apt-get upgrade -y&lt;/code&gt;: Upgrades all installed packages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;apt-get autoremove -y&lt;/code&gt;: Removes unnecessary packages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;apt-get clean&lt;/code&gt;: Cleans up the package cache.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The echo statement confirms the completion of updates and cleanup.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;HTTP Response Time Monitor&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This script checks HTTP response times for specified URLs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bash#!/bin/bashURLS=("https://www.devopsshack.com/" "https://www.linkedin.com/")for URL in "${URLS[@]}"; do RESPONSE_TIME=$(curl -o /dev/null -s -w '%{time_total}\n' $URL) echo "Response time for $URL: $RESPONSE_TIME seconds"done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Explanation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;URLS&lt;/code&gt;: An array of URLs to check.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The for loop iterates over each URL.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;curl&lt;/code&gt; command fetches each URL and measures the total response time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The script prints the response time for each URL.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;System Process and Memory Usage Monitor&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This script displays the top processes by memory usage.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bash#!/bin/bashps aux --sort=-%mem | head -n 10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Explanation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;ps aux&lt;/code&gt;: Lists all running processes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;--sort=-%mem&lt;/code&gt;: Sorts processes by memory usage in descending order.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;head -n 10&lt;/code&gt;: Displays only the top 10 processes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These scripts provide valuable tools for various DevOps tasks, from system monitoring to backup and maintenance operations.&lt;/p&gt;

</description>
      <category>backupscript</category>
      <category>devopstools</category>
      <category>shellscripting</category>
      <category>databackup</category>
    </item>
    <item>
      <title>Frontend Roboshop</title>
      <dc:creator>Asad</dc:creator>
      <pubDate>Fri, 28 Feb 2025 16:27:34 +0000</pubDate>
      <link>https://forem.com/arafique458/frontend-roboshop-1ij4</link>
      <guid>https://forem.com/arafique458/frontend-roboshop-1ij4</guid>
      <description>&lt;p&gt;-&amp;gt; Name -&amp;gt; Choose Spot -&amp;gt; devops-practice - Centos-8-Devops-Practice -&amp;gt; Choose tl.micro -&amp;gt; Choose Procced without Keypair -&amp;gt; Network Settintgs-&amp;gt; Choose allow-all security group -&amp;gt; Advanced -&amp;gt; Request Spet Instances &amp;gt; Customize -&amp;gt; Request Type (Persistent)-&amp;gt; Interruption Behaviour (stop)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7ac5eg0xtvtyizw0waj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7ac5eg0xtvtyizw0waj.png" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fewbnrjeaa6m48p8k7fys.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fewbnrjeaa6m48p8k7fys.png" width="800" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1dkcu6fcjagxmb0z6uz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1dkcu6fcjagxmb0z6uz.png" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4rjrphsqctzx0hfc2iq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4rjrphsqctzx0hfc2iq.png" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2w0xash8jttbnkbe3bts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2w0xash8jttbnkbe3bts.png" width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F832r32na68a61w70ib7d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F832r32na68a61w70ib7d.png" width="800" height="614"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Instance Setup Code
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{ "MaxCount": 1, "MinCount": 1, "ImageId": "ami-0089b8e98cd95257d", "InstanceType": "t3.micro", "EbsOptimized": true, "NetworkInterfaces": [{ "DeviceIndex": 0, "AssociatePublicIpAddress": true, "SubnetId": "subnet-086a045ade7eae99f", "Groups": [ "sg-0c2e3fdd288a74d3a"] } ], "TagSpecifications": [{ "ResourceType": "instance", "Tags": [ { "Key": "Name", "Value": "frontend" }] }, { "ResourceType": "spot-instances-request", "Tags": [{ "Key": "Name", "Value": "frontend" }] } ], "InstanceMarketOptions": { "MarketType": "spot", "SpotOptions": { "InstanceInterruptionBehavior": "stop", "SpotInstanceType": "persistent" } }, "PrivateDnsNameOptions": { "HostnameType": "ip-name", "EnableResourceNameDnsARecord": true, "EnableResourceNameDnsAAAARecord": false }}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configuring Server
&lt;/h2&gt;

&lt;p&gt;The frontend service in RoboShop is responsible for serving the web content over Nginx. This service includes the web frame for the web application and serves static content. To accomplish this, a web server is needed. In this case, the developer has chosen Nginx Web Server, which we will install by running the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yum install nginx -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After installation, we need to start and enable the Nginx service:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;systemctl enable nginx systemctl start nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once the service is up and running, we can access it through a browser to ensure that default content is being served. To remove the default content, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rm -rf /usr/share/nginx/html/*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, we need to download the frontend content by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -o /tmp/frontend.zip https://roboshop-artifacts.s3.amazonaws.com/frontend.zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The content can then be extracted using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /usr/share/nginx/html unzip /tmp/frontend.zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After the frontend content has been extracted, we need to create an Nginx Reverse Proxy Configuration file. Open the file using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vim /etc/nginx/default.d/roboshop.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add the following content to the file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;proxy_http_version 1.1;location /images/ { expires 5s; root /usr/share/nginx/html; try_files $uri /images/placeholder.jpg;}location /api/catalogue/ { proxy_pass http://localhost:8080/; }location /api/user/ { proxy_pass http://localhost:8080/; }location /api/cart/ { proxy_pass http://localhost:8080/; }location /api/shipping/ { proxy_pass http://localhost:8080/; }location /api/payment/ { proxy_pass http://localhost:8080/; }location /health { stub_status on; access_log off;}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note that the &lt;a href="http://localhost" rel="noopener noreferrer"&gt;&lt;code&gt;localhost&lt;/code&gt;&lt;/a&gt; should be replaced with the actual IP address of the component server to avoid failures on the Nginx Server.&lt;/p&gt;

&lt;p&gt;Finally, restart the Nginx service to load the changes to the configuration file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;systemctl restart nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Frontend of the Roboshop is set up now.&lt;/p&gt;

</description>
      <category>roboshopproject</category>
      <category>awsprojects</category>
      <category>frontend</category>
      <category>nginx</category>
    </item>
    <item>
      <title>DevOps Project 1 | GitHub+Jenkins+Docker+ECR+Kubernetes</title>
      <dc:creator>Asad</dc:creator>
      <pubDate>Fri, 28 Feb 2025 16:16:33 +0000</pubDate>
      <link>https://forem.com/arafique458/devops-project-1-githubjenkinsdockerecrkubernetes-4boe</link>
      <guid>https://forem.com/arafique458/devops-project-1-githubjenkinsdockerecrkubernetes-4boe</guid>
      <description>&lt;p&gt;Project Summary&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisite:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
### GitHub Account&lt;/li&gt;
&lt;li&gt;
### EC2 Instance&lt;/li&gt;
&lt;li&gt;
### Jenkins Server&lt;/li&gt;
&lt;li&gt;
### Docker&lt;/li&gt;
&lt;li&gt;
### Kubernetes&lt;/li&gt;
&lt;li&gt;
### ECR&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt; is a web-based platform that hosts Git repositories and offers additional features such as issue tracking, pull requests, and code reviews. It allows developers to share and collaborate on their code with others.&lt;/p&gt;

&lt;p&gt;We will use git hub in this project to work with the following code can be found in the repository;&lt;/p&gt;

&lt;p&gt;&amp;gt;..&lt;/p&gt;

&lt;p&gt;We created an EC2 instance to install all the necessary packages we need.&lt;/p&gt;

&lt;p&gt;Note: &lt;strong&gt;&lt;em&gt;We use Ubuntu 20.04 for this project, but you can use any Linux OS.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Git Installation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;First, we will install git, to install git we will use the following commands;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To test the installation of git&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Jenkins Installation
&lt;/h3&gt;

&lt;p&gt;To install Jenkins we will refer to the document &lt;a href="https://www.jenkins.io/doc/book/installing/linux/#debianubuntu" rel="noopener noreferrer"&gt;Jenkins Installation Instructions.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=edmHwUTs9OA" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=edmHwUTs9OA&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ecommerce</category>
      <category>shopify</category>
    </item>
    <item>
      <title>EC2 (Elastic Compute Cloud) Instance Using AWS CLI through Terminal using Linux</title>
      <dc:creator>Asad</dc:creator>
      <pubDate>Mon, 03 Apr 2023 01:19:43 +0000</pubDate>
      <link>https://forem.com/arafique458/ec2-elastic-compute-cloud-instance-using-aws-cli-through-terminal-using-linux-1g61</link>
      <guid>https://forem.com/arafique458/ec2-elastic-compute-cloud-instance-using-aws-cli-through-terminal-using-linux-1g61</guid>
      <description>&lt;p&gt;In order to create EC2 instance Login to the AWS Console and get the following information;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install AWS CLI for Linux on the computer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;curl "&lt;/code&gt;&lt;a href="https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" rel="noopener noreferrer"&gt;&lt;code&gt;https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip&lt;/code&gt;&lt;/a&gt;&lt;code&gt;" -o "&lt;/code&gt;&lt;a href="http://awscliv2.zip" rel="noopener noreferrer"&gt;&lt;code&gt;awscliv2.zip&lt;/code&gt;&lt;/a&gt;&lt;code&gt;"&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install zip/ Unzip to unzip the aws cli package&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;sudo apt-get install zip (This should also install unzip option too)&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unzip the file, currently should be in the same directory.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;Unzip&lt;/code&gt; &lt;a href="http://awsclive2.zip" rel="noopener noreferrer"&gt;&lt;code&gt;awsclive2.zip&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to the file and run the command&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;sudo ./aws/install&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Create an Admin user through IAM (Identity Access Management).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To get the Access Key ID&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Secret Key&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;(Note: Google is your best friend if you dont know this search for it.)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Need to know the specific region (for this I will be using us-east-1)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create keypair through AWS CLI&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;aws ec2 create-key-pair --key-name awsclikey --query 'keyMaterial' --output text &amp;gt; awsclikey.pem&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh6.googleusercontent.com%2FnvGyYxU7-Em28aqNSUst0IVEtlDS028CGrOFkS3sL1YtfeNwzKMAfGPIzsVUW4N6oD_NlVcdMEaLnwGaV5GGM_V2FrB8B-BElxWK1gBfcHaoVccEH-S_15v09g56jpDyKM-nTPo5E-MGb24UGtPTgdvdeEYa1_eI3et_9e14MnY4r1m79QcCrCxqUJQ8cw" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh6.googleusercontent.com%2FnvGyYxU7-Em28aqNSUst0IVEtlDS028CGrOFkS3sL1YtfeNwzKMAfGPIzsVUW4N6oD_NlVcdMEaLnwGaV5GGM_V2FrB8B-BElxWK1gBfcHaoVccEH-S_15v09g56jpDyKM-nTPo5E-MGb24UGtPTgdvdeEYa1_eI3et_9e14MnY4r1m79QcCrCxqUJQ8cw" width="680" height="265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Change the permission of the key to it has read-only access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;chmod 400 awsclikey.pem&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A filter name and value pair that is used to return a more specific list of results from a described operation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;aws ec2 describe-key-pairs --key-names awsclikey&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We will need a security group to manage the traffic that will be using the EC2 instances.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;aws ec2 create-security-group --group-name awscligroup --description "group created with awscli" --vpc-id vpc-0e4167f02a110a4ed&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Note: Get the Default VPC Id from the console&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2FRf8FDmDeUcKmrBWUJqxjkYEl6wz38Cl5x-XTZxMwzQQYeW3YfeW2X_jM5EmmBsv-1xjct0VG_ZjHjj3IDY1DbR1hKtkaCRozoBfY9YOFE1PoFTqJB26U1_mtTovbc-dXvlTZx7K9maHx9_O89epjPTv1G3yJ1JRSWEbujccQQ352M058BqQP17ELTNrafg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2FRf8FDmDeUcKmrBWUJqxjkYEl6wz38Cl5x-XTZxMwzQQYeW3YfeW2X_jM5EmmBsv-1xjct0VG_ZjHjj3IDY1DbR1hKtkaCRozoBfY9YOFE1PoFTqJB26U1_mtTovbc-dXvlTZx7K9maHx9_O89epjPTv1G3yJ1JRSWEbujccQQ352M058BqQP17ELTNrafg" width="773" height="148"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Define the inbound rules now&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;aws ec2 authorize-security-group-ingress --group-id sg-0b2ba2fe2deb772b6 --protocol tcp --port 0-65535 --cidr 0.0.0.0/0&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FFKDNq6U9_Qh54gW9IAIFOiC2seZQCSkO_C3wHNPGEm23byjD_9B7CSZuK2eHPlOXQJSYou0xFUDaVdiAlYds6M-v6OuDcmr2ckKeZfMTR7pHsLY0IIdQEnGFxbVDSdf25CxJLGtrUg-DQr_SWE0UPmO_W-bU7WpBow54zpFrBsE_1d_LHO9P4OSaj7ld7A" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FFKDNq6U9_Qh54gW9IAIFOiC2seZQCSkO_C3wHNPGEm23byjD_9B7CSZuK2eHPlOXQJSYou0xFUDaVdiAlYds6M-v6OuDcmr2ckKeZfMTR7pHsLY0IIdQEnGFxbVDSdf25CxJLGtrUg-DQr_SWE0UPmO_W-bU7WpBow54zpFrBsE_1d_LHO9P4OSaj7ld7A" width="768" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ingress means input bounds rule&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Group id is what we created just now.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Protocol tcp which we will be using&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Port has to define the range 0-65535&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Define the IP address 0.0.0.0/0&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To perform the next step we will need the Image Id (&lt;em&gt;a specific image we will be using for our instance. For this demo we will be using Ubuntu Linux LTS 20&lt;/em&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;aws ec2 run-instances --image-id ami-0b93ce03dcbcb10f6 --count 2 --instance-type t2.micro --key-name awsclikey --security-group-ids sg-0b2ba2fe2deb772b6 --subnet-id subnet-013a2aa48b12f80b2&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh4.googleusercontent.com%2FHIyzzjhliRiFFisR1Omt52dtRkbDNNPd-D-i8oyEzBlOPmd5sHsGkDt6XYaVdRXcusdNxOGdw1BV6yf6BFbu00NfyMMv84hG3tLkW-W3Qv09pP1-LwWXa1LaY_0VxBcDMeHKyjZyiccQwTr6mT7uJNBgO3bBP9lEoFgd1I2eb94F9Dcp5VogwrGLVL73Bw" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh4.googleusercontent.com%2FHIyzzjhliRiFFisR1Omt52dtRkbDNNPd-D-i8oyEzBlOPmd5sHsGkDt6XYaVdRXcusdNxOGdw1BV6yf6BFbu00NfyMMv84hG3tLkW-W3Qv09pP1-LwWXa1LaY_0VxBcDMeHKyjZyiccQwTr6mT7uJNBgO3bBP9lEoFgd1I2eb94F9Dcp5VogwrGLVL73Bw" width="800" height="120"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The EC2 instance will be ready shortly.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ec2</category>
      <category>ec2instancetypes</category>
      <category>ec2linux</category>
    </item>
    <item>
      <title>AWS IAM (Identity Access Management)</title>
      <dc:creator>Asad</dc:creator>
      <pubDate>Mon, 03 Apr 2023 01:11:08 +0000</pubDate>
      <link>https://forem.com/arafique458/aws-iam-identity-access-management-50kn</link>
      <guid>https://forem.com/arafique458/aws-iam-identity-access-management-50kn</guid>
      <description>&lt;p&gt;IAM (Identity Access Management) is a single AWS account that lets Root users manage all the users in the environment or the team. IAM helps with authorization and Authentication Access for the team. We can have different permissions and different groups with permission to manage the users.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; &lt;strong&gt;&lt;em&gt;The user can create an IAM account with the same email as the one used to log in to the AWS Console Account. The user must switch from Root to IAM at the login window.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh4.googleusercontent.com%2F13COXjxDm81Wao6loriZSt86qeBZBCBc4AwI4g_vb6Sizcbc_r9ayu1lBbPKUhmpaGjCYorem--ficRsngARFyuQBGN3BIuIviiztvJS5E-Un0z48Imz14U_KBu3tjo4Pcwq9I1ubjHNJe2NkgK5BWQ3lrtO_bDIXKapzY7sImh24uRhcG8bkCe1TaE5Lg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh4.googleusercontent.com%2F13COXjxDm81Wao6loriZSt86qeBZBCBc4AwI4g_vb6Sizcbc_r9ayu1lBbPKUhmpaGjCYorem--ficRsngARFyuQBGN3BIuIviiztvJS5E-Un0z48Imz14U_KBu3tjo4Pcwq9I1ubjHNJe2NkgK5BWQ3lrtO_bDIXKapzY7sImh24uRhcG8bkCe1TaE5Lg" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Once Logged in Navigate to the Search bar and Type &lt;strong&gt;IAM&lt;/strong&gt; or &lt;strong&gt;Identity Access Management&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The user will be presented with the following dashboard, where users, groups, policies and etc can be managed.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh4.googleusercontent.com%2FljDoQkg8rjJct5nf31mnBAM7JIYL8TBzokDR7_dmX8f2lnqe1NzS03Obbo8zONyX0Z1f5fftDs3fFkvgRSoASrttVL7vkeKgNnEfwSyXngzToWl5q7woJ3iQwfSRZ7OLw4PVYj5MkubE__dP9DPhTaYom-6G337l46lieJVZB0e47VNv-I57pT_96CggrQ" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh4.googleusercontent.com%2FljDoQkg8rjJct5nf31mnBAM7JIYL8TBzokDR7_dmX8f2lnqe1NzS03Obbo8zONyX0Z1f5fftDs3fFkvgRSoASrttVL7vkeKgNnEfwSyXngzToWl5q7woJ3iQwfSRZ7OLw4PVYj5MkubE__dP9DPhTaYom-6G337l46lieJVZB0e47VNv-I57pT_96CggrQ" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to create Users in IAM
&lt;/h2&gt;

&lt;p&gt;Users are known as entities, the purpose of creating users is to give the team or the environment access to the services in AWS. We can manage the users with the help of IAM.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Users&lt;/strong&gt; under &lt;strong&gt;Access management&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on &lt;strong&gt;Add Users&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2FYjCtyquoIEf2JZDorVDYSXo4Bko6FOjV77D3nnmDk2oVNLhOJm_MNjjMZ5thxDeyg5j6Kf1d7rWZ0nRJUYzVjuHGMsOj-4SixUC_ZikqT_-crYcOXuBOMOB1p7stBF8bbOL0XoqM_ImXGezigmaFiyROJMmintG1zQPSn2rGYoLzY4QZ4VlyooZWscI66w" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2FYjCtyquoIEf2JZDorVDYSXo4Bko6FOjV77D3nnmDk2oVNLhOJm_MNjjMZ5thxDeyg5j6Kf1d7rWZ0nRJUYzVjuHGMsOj-4SixUC_ZikqT_-crYcOXuBOMOB1p7stBF8bbOL0XoqM_ImXGezigmaFiyROJMmintG1zQPSn2rGYoLzY4QZ4VlyooZWscI66w" width="800" height="145"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add &lt;strong&gt;user name&lt;/strong&gt; , under &lt;strong&gt;Set user details.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;(U1 is for demonstration purposes)&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The user will have two ways to provide the access to the U1,&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Access Key - Programmatic Access ( &lt;strong&gt;&lt;em&gt;User will connect using CLI, SDK, and other development tools to connect&lt;/em&gt;&lt;/strong&gt; )&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Password - AWS Management Console Access ( &lt;strong&gt;&lt;em&gt;users will log in using AWS web console&lt;/em&gt;&lt;/strong&gt; )&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Let's use &lt;strong&gt;Password - AWS Management console access.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh6.googleusercontent.com%2FfYGqkBaiW0l1a7BLJDDKCbYCYudurV6T_O3juQc6aGGOOhRyu8_Zmgn0njmxPt-LPV_8iQaOPGFLhNZFukwvjaKgsjdI6qZIBfH28Y9SzzHWQw4X1B2WV2yQupFTRHiqlFQDQm2QZoVP6IcN5BnCrAyIVPUWmGj8edNrZhoR_e92rr4sVckZdEaaDIby-A" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh6.googleusercontent.com%2FfYGqkBaiW0l1a7BLJDDKCbYCYudurV6T_O3juQc6aGGOOhRyu8_Zmgn0njmxPt-LPV_8iQaOPGFLhNZFukwvjaKgsjdI6qZIBfH28Y9SzzHWQw4X1B2WV2yQupFTRHiqlFQDQm2QZoVP6IcN5BnCrAyIVPUWmGj8edNrZhoR_e92rr4sVckZdEaaDIby-A" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We can Add a user to the Group here or create a group for the user if it doesn't already exist.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We can copy permissions from the existing user&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We can attach existing policies here as well&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We will just create a user at this time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on &lt;strong&gt;Next: Tags Button&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh4.googleusercontent.com%2FYrIeOfBEtIEl9tDjUhls2hkffzISCNR1RDrHLtG5C5_U3xFw1XbCJpJAKSbvCldabYnMk-xkvL_CnkbakLzd5gxXhbDRbFPorISOI-ZKuCFlgk0-3CCpsqZBtZFM0pzZOfRoEpp4u4jmVMaqUHwNEfhx7lwZxsuw5HaUI2yyAe4p17WyzQvpRXdv6cUphw" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh4.googleusercontent.com%2FYrIeOfBEtIEl9tDjUhls2hkffzISCNR1RDrHLtG5C5_U3xFw1XbCJpJAKSbvCldabYnMk-xkvL_CnkbakLzd5gxXhbDRbFPorISOI-ZKuCFlgk0-3CCpsqZBtZFM0pzZOfRoEpp4u4jmVMaqUHwNEfhx7lwZxsuw5HaUI2yyAe4p17WyzQvpRXdv6cUphw" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Add tags&lt;/strong&gt; is optional and it is used to organize, track and control access for the user. It could be the user's email, description, or job title.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on the &lt;strong&gt;Next: Review&lt;/strong&gt; button, to continue&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2F54RCE0-2GRu7I25i9IqPCNa43EtvWcgeudhIB4mhTwQUHmGNEaTJXOW2juGKByXefk6LucX7gkqPf4dkXhrEyZFY9W3K14K6ClJ9GcNSBEZpnLcd1thTA_GVVuYWIEvbkglhcGWg0qqF2ezpfrKp-USp1lWZFvrKPLq8L_64jto5Px8_BKAXLaIrkYZAoQ" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2F54RCE0-2GRu7I25i9IqPCNa43EtvWcgeudhIB4mhTwQUHmGNEaTJXOW2juGKByXefk6LucX7gkqPf4dkXhrEyZFY9W3K14K6ClJ9GcNSBEZpnLcd1thTA_GVVuYWIEvbkglhcGWg0qqF2ezpfrKp-USp1lWZFvrKPLq8L_64jto5Px8_BKAXLaIrkYZAoQ" width="800" height="246"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The user should Review all the inputted information and Click Create User.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FQUVNSYyRWo3jX4wCjWDTCopll8m5K3IVMGZWIOm8LvnIaHkEHEMUucm2rSHMZSviMJdQr_ecdCgOFOyTMT_xO5frZXObLqqqaSKhfUFvqc-Y--ptspZt3wi0U6-kHaQzud40tIL6I3_bi9QdsDPeq7sZITQ9vQa0D5OACdwmZXYRoZ48JvxKt0JPZLD_qg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FQUVNSYyRWo3jX4wCjWDTCopll8m5K3IVMGZWIOm8LvnIaHkEHEMUucm2rSHMZSviMJdQr_ecdCgOFOyTMT_xO5frZXObLqqqaSKhfUFvqc-Y--ptspZt3wi0U6-kHaQzud40tIL6I3_bi9QdsDPeq7sZITQ9vQa0D5OACdwmZXYRoZ48JvxKt0JPZLD_qg" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A user account will be created, You can either download the CSV and share it with the users successfully or Email the CSV file to the user.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Creating Groups in IAM
&lt;/h1&gt;

&lt;p&gt;A Group is known as an identity that has all the IAM&lt;/p&gt;

&lt;p&gt;users in a single environment. The groups are used to specify the permissions for multiple users. The groups make permission to manage and apply to multiple users.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;To Create Groups Navigate to the left panel, under Access Management.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on User groups.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2F5gXI1lZaTw_PrbtmTr16pYmnSDx_uBvY-8RXwn7Ysc2Olp8QU_ZqPC77LdS8UWghzoXBoLr4vlSSg8xT7J46ihn3tifQFo2vNRiFOG_5yVLjQHEgSRr1BQ9rNwsffuE7AUyhdyAHbJMJnWUw0rdIJ95znB4AuAZBy8FDW6I4tz2juwW9O_GiAiJ3dKmNpw" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2F5gXI1lZaTw_PrbtmTr16pYmnSDx_uBvY-8RXwn7Ysc2Olp8QU_ZqPC77LdS8UWghzoXBoLr4vlSSg8xT7J46ihn3tifQFo2vNRiFOG_5yVLjQHEgSRr1BQ9rNwsffuE7AUyhdyAHbJMJnWUw0rdIJ95znB4AuAZBy8FDW6I4tz2juwW9O_GiAiJ3dKmNpw" width="281" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Give the group a specific name (ec2-access)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can also add users to the group, but it doesnt have to be now.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh4.googleusercontent.com%2F2A1XHCBHtVt2d1YGdvxCzV9dk1P40X3l7cc2daqlIMtHOWTAlf_-LdnWoE3eJ5reNvkyQPQ_6p39Nef-H8U3uSz34CVIgGJxvGIwIRdhsPifrCtprWGeEO04aub_LzNg6WgA0XroPTNELrAr1E_kRELBY1NNa64P9HCRAHk_b6Dk8COguZbAZTT8L3nhSQ" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh4.googleusercontent.com%2F2A1XHCBHtVt2d1YGdvxCzV9dk1P40X3l7cc2daqlIMtHOWTAlf_-LdnWoE3eJ5reNvkyQPQ_6p39Nef-H8U3uSz34CVIgGJxvGIwIRdhsPifrCtprWGeEO04aub_LzNg6WgA0XroPTNELrAr1E_kRELBY1NNa64P9HCRAHk_b6Dk8COguZbAZTT8L3nhSQ" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Under Attach permission policies, there are many permissions to choose from, we need to create a group for users to give only read-only permissions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;AmazonGlacierReadOnlyAccess&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Create Group&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2FqI3eOnVCJjEqcqctDQhYDuxMcDFs3FzaFT9zxDTF9d8NXjg8d_X_RH-Zet9Sv4BO-rC4fScCk8WltTKwHfabG4ymDYWhwmCZKuIDQVhAcKkw82xl_Yce7Is259IyiUP71rDapAKlqqlZ3h2Ubv8DyuGtp6FSx7yVn81jZ6JXoDX6pyCBBGOylOeFzC8O6g" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2FqI3eOnVCJjEqcqctDQhYDuxMcDFs3FzaFT9zxDTF9d8NXjg8d_X_RH-Zet9Sv4BO-rC4fScCk8WltTKwHfabG4ymDYWhwmCZKuIDQVhAcKkw82xl_Yce7Is259IyiUP71rDapAKlqqlZ3h2Ubv8DyuGtp6FSx7yVn81jZ6JXoDX6pyCBBGOylOeFzC8O6g" width="800" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The group ecs-access is created under the group with the defined permissions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh4.googleusercontent.com%2FrXVUTZ-HtDdXgdaQ-YSREx97P7YO87RuJ6dpnMaZk4o5ywwkP3Ab-UhI0_FbAITxou1kJdYK6-L39P2-mJGBxJpBqQEKgiYsmnFlYNp3rUjKlQ6TDyOj-pNq4OUUp4tpgiiy6kMVUnnKEWiUpaYS36GyoqZmNbFpKhWFAV8Q7HJwgTNuJxcBbmARpJfpjg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh4.googleusercontent.com%2FrXVUTZ-HtDdXgdaQ-YSREx97P7YO87RuJ6dpnMaZk4o5ywwkP3Ab-UhI0_FbAITxou1kJdYK6-L39P2-mJGBxJpBqQEKgiYsmnFlYNp3rUjKlQ6TDyOj-pNq4OUUp4tpgiiy6kMVUnnKEWiUpaYS36GyoqZmNbFpKhWFAV8Q7HJwgTNuJxcBbmARpJfpjg" width="800" height="131"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>awsiam</category>
      <category>awsiampolicies</category>
      <category>iam</category>
    </item>
    <item>
      <title>Sharing File/Folder with Aws S3</title>
      <dc:creator>Asad</dc:creator>
      <pubDate>Mon, 03 Apr 2023 01:03:13 +0000</pubDate>
      <link>https://forem.com/arafique458/sharing-filefolder-with-aws-s3-3hb9</link>
      <guid>https://forem.com/arafique458/sharing-filefolder-with-aws-s3-3hb9</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Go to your S3 bucket&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2FdzmP052CV4HqI0zxNq2tBwMWjJPGK_3caYcal7WqdIEbqMLdUXzBOaiNQBN5FFCaavO_CyM3gdtq0FjMEcmWoQL-iT6gq7cAoO6rM1fqUMWu0OoTEIi81a6eKF2tpIjk8a_eo3aw3eT1HzoYT7zL29SppFrjeOdCEBDkEj0kLzYj1nA6zw1hGg4HYOTh" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2FdzmP052CV4HqI0zxNq2tBwMWjJPGK_3caYcal7WqdIEbqMLdUXzBOaiNQBN5FFCaavO_CyM3gdtq0FjMEcmWoQL-iT6gq7cAoO6rM1fqUMWu0OoTEIi81a6eKF2tpIjk8a_eo3aw3eT1HzoYT7zL29SppFrjeOdCEBDkEj0kLzYj1nA6zw1hGg4HYOTh" width="800" height="110"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users can create folders in the S3 bucket and upload the files and folder in the S3 bucket&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FKqGKybHeZqfjCZU86BFIz5D0196g9QFHR-jl-p1Smd-KZRZIWpCGodJPNESZJeDmD3kdkMrvR4KhiAM9wVRsjLB3KFPQcBcsKIdbjW8xbBdls8_P40pO_2T3DwqihRyCzRWPPwks2zQ8yMEAgFBU1ib8mW-anAOWVRfKuxSSYaVzwM8xaf3WXqzYFARI" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FKqGKybHeZqfjCZU86BFIz5D0196g9QFHR-jl-p1Smd-KZRZIWpCGodJPNESZJeDmD3kdkMrvR4KhiAM9wVRsjLB3KFPQcBcsKIdbjW8xbBdls8_P40pO_2T3DwqihRyCzRWPPwks2zQ8yMEAgFBU1ib8mW-anAOWVRfKuxSSYaVzwM8xaf3WXqzYFARI" width="800" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In order to share the document from S3, Click on a specific file to open it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigate to the Objects Action Tab&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on Share with a pre-signed URL&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh6.googleusercontent.com%2FyfnhVKFliyr-cEkQ318fp0RBr2W09dXOKuYcutR61N1OtrG4lynv9N25yTZ_5mTLKsXAgeU9fdLC3TM5TI5ejNkHXNObN4W1TdheyKuOdV-IzhOm1X3jvOFgoFEHuY0CfkeP2XWlqDTjWjmNdiAF6vpE29NRjFcApmb62b9otgTBuVzgJJhNgIycd4ii" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh6.googleusercontent.com%2FyfnhVKFliyr-cEkQ318fp0RBr2W09dXOKuYcutR61N1OtrG4lynv9N25yTZ_5mTLKsXAgeU9fdLC3TM5TI5ejNkHXNObN4W1TdheyKuOdV-IzhOm1X3jvOFgoFEHuY0CfkeP2XWlqDTjWjmNdiAF6vpE29NRjFcApmb62b9otgTBuVzgJJhNgIycd4ii" width="364" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can define if you want to share for minutes or hours.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2FgjhPpC1VGA-qf_6KXUZ9xQBBFrDLqIzKbZm-j9jkS_aTjJiv66AKbGiFkQw_OuapSrRjH6FlQeZoTGSSUuosoGrnuYXnw34hxtlsQrZDYCTGETpyarjSTB8ZL-Uxdhfi-JHOsrLJBxTovbs23oPqVajRM_6eMH3Efx-Ko5JwgDspZWLwf9vwkimDSNjL" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2FgjhPpC1VGA-qf_6KXUZ9xQBBFrDLqIzKbZm-j9jkS_aTjJiv66AKbGiFkQw_OuapSrRjH6FlQeZoTGSSUuosoGrnuYXnw34hxtlsQrZDYCTGETpyarjSTB8ZL-Uxdhfi-JHOsrLJBxTovbs23oPqVajRM_6eMH3Efx-Ko5JwgDspZWLwf9vwkimDSNjL" width="612" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;After creating a pre-signed URL&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy the URL with the intending party and do remind them the file/folder is available for a certain amount of time.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>awss3</category>
      <category>awss3versioning</category>
    </item>
    <item>
      <title>AWS S3 Bucket</title>
      <dc:creator>Asad</dc:creator>
      <pubDate>Mon, 03 Apr 2023 00:59:53 +0000</pubDate>
      <link>https://forem.com/arafique458/aws-s3-bucket-33hn</link>
      <guid>https://forem.com/arafique458/aws-s3-bucket-33hn</guid>
      <description>&lt;p&gt;Aws S3 service is known as a simple storage service. S3 is also considered a bucket where important files and folders are stored. The files and folders we store in S3 are known as objects. The S3 default region will be Global, we can change it manually to our particular region.&lt;/p&gt;

&lt;p&gt;In the AWS console search for S3.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click Create Bucket&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh6.googleusercontent.com%2F3WOFfXY8C8DPaViHEiUT3xAEg4Q3lPQpshaaait6na8PUQY93mTxSmpOtXLcJWCzOZJCoYQYahFaKh_OyzDBIOzYZtNYZAcn_e1c0JNmjO1yiGhQ4W76Ivo1nX4K0pZIQrmRco1NpqinXu0mpLrTo5fStUc-tGmEZv9Q8QtHSOuHDkL9LZHP_qYnPoKQng" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh6.googleusercontent.com%2F3WOFfXY8C8DPaViHEiUT3xAEg4Q3lPQpshaaait6na8PUQY93mTxSmpOtXLcJWCzOZJCoYQYahFaKh_OyzDBIOzYZtNYZAcn_e1c0JNmjO1yiGhQ4W76Ivo1nX4K0pZIQrmRco1NpqinXu0mpLrTo5fStUc-tGmEZv9Q8QtHSOuHDkL9LZHP_qYnPoKQng" width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Under General Configuration give your bucket a unique name.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FCq-FXbtAUP5nExTqkwaVDffrnyS5Ihz6VQ6jAFSk_KZrRsKh42GnFyLxuTWpTGZSpFaJuHLTPVsAV4XYlOHlLWkqcfsiDLPW35emWZeAPaWUizCX0wNdtJYVuPozKXeOVNF4Q2WrD-W4PHrRm1bJhxufH6QYtpUkxP3mzB9YUFHJH5T-em4iZ49vzWxCow" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FCq-FXbtAUP5nExTqkwaVDffrnyS5Ihz6VQ6jAFSk_KZrRsKh42GnFyLxuTWpTGZSpFaJuHLTPVsAV4XYlOHlLWkqcfsiDLPW35emWZeAPaWUizCX0wNdtJYVuPozKXeOVNF4Q2WrD-W4PHrRm1bJhxufH6QYtpUkxP3mzB9YUFHJH5T-em4iZ49vzWxCow" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Leave the Object Ownership as the default&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh4.googleusercontent.com%2FH7BnMJDPU5mDMrsIP3dbAGaTtBer8VFh0pFoMUDuF01anMzB6vFHE9Tll0xQoWnxnxio3P9OdruMJJlB5VotDSs6Jv4GkhJ4H8byXfAdvA8DVfgj0UtjwzHlmYNBZtr1R8UgoVZh9qUECT77yX58B8m7maHqKIgar1o3NT3ZBVMUi24MbeJXQLurv3eRNg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh4.googleusercontent.com%2FH7BnMJDPU5mDMrsIP3dbAGaTtBer8VFh0pFoMUDuF01anMzB6vFHE9Tll0xQoWnxnxio3P9OdruMJJlB5VotDSs6Jv4GkhJ4H8byXfAdvA8DVfgj0UtjwzHlmYNBZtr1R8UgoVZh9qUECT77yX58B8m7maHqKIgar1o3NT3ZBVMUi24MbeJXQLurv3eRNg" width="800" height="287"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Under &lt;strong&gt;Block Public Access settings for this bucket,&lt;/strong&gt; leave it as the default &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2F9cTPjYesbkrHZm4TojxcbWpLlyz-i63uEGLbwsxox8a8YHVUpUyL1Tp7jo-hH-RYKr9E5ScG_am1kgxLpdCVRSnwbRBdHtnLcsEt3gXIsxfaw9qNiXi2nKgUduMOfwn2C9RaWptr7XgUy3dmA7Y9CK_vcPy5UeZx-vB3zK4AjVo6YRrDGwBavtF7r15KoQ" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2F9cTPjYesbkrHZm4TojxcbWpLlyz-i63uEGLbwsxox8a8YHVUpUyL1Tp7jo-hH-RYKr9E5ScG_am1kgxLpdCVRSnwbRBdHtnLcsEt3gXIsxfaw9qNiXi2nKgUduMOfwn2C9RaWptr7XgUy3dmA7Y9CK_vcPy5UeZx-vB3zK4AjVo6YRrDGwBavtF7r15KoQ" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Leave &lt;strong&gt;Bucket Versioning&lt;/strong&gt; as default too.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh6.googleusercontent.com%2F_c8uHUKEZwicXodm4ZIjlYR7YfQSAz6wUC2KD1BkaTUI0jKVqFB7YbgH1z63GpQycHhuYnuSoHonAB6AxQR9CqJj1FAM5Z4rPSREP0XV_5quLXNqtgJ0OUbNKUkdu0XT-3mwL7pgwtQwO2_YBqMSSx5d4p4_Zk6fbc0W1W90pWG-wz7yJEK5mj1IYugM-Q" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh6.googleusercontent.com%2F_c8uHUKEZwicXodm4ZIjlYR7YfQSAz6wUC2KD1BkaTUI0jKVqFB7YbgH1z63GpQycHhuYnuSoHonAB6AxQR9CqJj1FAM5Z4rPSREP0XV_5quLXNqtgJ0OUbNKUkdu0XT-3mwL7pgwtQwO2_YBqMSSx5d4p4_Zk6fbc0W1W90pWG-wz7yJEK5mj1IYugM-Q" width="800" height="214"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Skip the &lt;strong&gt;Tags&lt;/strong&gt; and leave the &lt;strong&gt;Default encryption&lt;/strong&gt; as default too.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2Fy9kObV9goXtV7gSubjFleDyE5QNOBC4NxvT3GUpIUeklyzXVll1dp8OhWJ7upZkQOfVizSpgSLFnN89GGQBs_1RIJhjvwKytt8-Dmxuey_LrPJe68mW_OIxFCyqIuZfw272f41X7yN5ZSRwRZT2KGHHQVZrKWSYmw-ezaq7b5jrMu8KOBHa2iRN67--M6Q" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2Fy9kObV9goXtV7gSubjFleDyE5QNOBC4NxvT3GUpIUeklyzXVll1dp8OhWJ7upZkQOfVizSpgSLFnN89GGQBs_1RIJhjvwKytt8-Dmxuey_LrPJe68mW_OIxFCyqIuZfw272f41X7yN5ZSRwRZT2KGHHQVZrKWSYmw-ezaq7b5jrMu8KOBHa2iRN67--M6Q" width="800" height="519"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dont need to make any changes in Advance, Click on Create a bucket&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh6.googleusercontent.com%2FSFCmTcf9Rr4Imarhz0A_y040SfbOCR-d02WYS06oKS-E_5lTrFmsjMLE1Wopq1OHcK47rx507wz_TVOspvwzHZPRj-T7LuVY-xakieHcTuoBCA1KFmqcYy3qNogCgqc9nud6t2ArHVpKFOe3TcFQR1g9-YKNUBG1JMbyRsib5wlXR0t8p2VOXFYaITZOXA" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh6.googleusercontent.com%2FSFCmTcf9Rr4Imarhz0A_y040SfbOCR-d02WYS06oKS-E_5lTrFmsjMLE1Wopq1OHcK47rx507wz_TVOspvwzHZPRj-T7LuVY-xakieHcTuoBCA1KFmqcYy3qNogCgqc9nud6t2ArHVpKFOe3TcFQR1g9-YKNUBG1JMbyRsib5wlXR0t8p2VOXFYaITZOXA" width="800" height="196"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You should have your first AWS S3 bucket.
]]&amp;gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>awss3</category>
      <category>s3bucket</category>
    </item>
    <item>
      <title>Basic Git &amp; GitHub for DevOps Engineers</title>
      <dc:creator>Asad</dc:creator>
      <pubDate>Sun, 26 Mar 2023 18:19:07 +0000</pubDate>
      <link>https://forem.com/arafique458/basic-git-github-for-devops-engineers-1j47</link>
      <guid>https://forem.com/arafique458/basic-git-github-for-devops-engineers-1j47</guid>
      <description>&lt;p&gt;What is Git?&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Git&lt;/code&gt; is a popular and widely used version control system that allows developers to keep track of changes made to their code over time, collaborate with others, and work on multiple versions of their code.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a GitHub?
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;GitHub&lt;/code&gt; is a web-based platform that provides hosting for Git repositories and offers additional features such as issue tracking, pull requests, and code reviews. It allows developers to share and collaborate on their code with others.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Version control?
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;Version control&lt;/code&gt; is a system that allows developers to keep track of changes made to their code over time, and enables them to revert to previous versions or collaborate with others on the same codebase.&lt;/p&gt;

&lt;h3&gt;
  
  
  Types of Version Controls
&lt;/h3&gt;

&lt;p&gt;There are two main types of version control systems: &lt;code&gt;centralized&lt;/code&gt; and &lt;code&gt;distributed&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;Centralized version control&lt;/code&gt; systems store code in a central server, while distributed version control systems create multiple copies of the repository on different computers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;Distributed version control&lt;/code&gt; offers several advantages over centralized version control, such as the ability to work offline and make commits locally, easier collaboration and branching, and a faster workflow.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Everything Combined
&lt;/h3&gt;

&lt;p&gt;Git is a version control system that allows developers to keep track of changes made to their code, GitHub is a platform that provides hosting for Git repositories and additional features, version control is a system that allows developers to manage and track changes made to their code over time, there are two main types of version control systems (centralized and distributed), and distributed version control offers several advantages over centralized version control.&lt;/p&gt;

&lt;h3&gt;
  
  
  10 Basic git Commands
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git init&lt;/code&gt;: Initializes a new Git repository in your current working directory.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git add&lt;/code&gt;: Adds changes made to your code to the staging area, which prepares them to be committed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git commit&lt;/code&gt;: Commits changes to the repository and creates a new snapshot of the code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git status&lt;/code&gt;: Shows the current status of the repository, including which files have been modified or added, and which files are ready to be committed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git log&lt;/code&gt;: Shows a history of all the commits made to the repository, along with their messages and other details.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git branch&lt;/code&gt;: Lists all the branches in the repository, and shows which branch you are currently on.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git checkout&lt;/code&gt;: Switches to a different branch or a specific commit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git pull&lt;/code&gt;: Updates the local repository with changes made in the remote repository.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git push&lt;/code&gt;: Sends changes made locally to the remote repository.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git clone&lt;/code&gt;: Creates a copy of a remote repository on your local machine.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Git has many more powerful features and commands that can help you manage your code and collaborate with others.&lt;/p&gt;

&lt;h3&gt;
  
  
  Task 1: New Repository in Github and Cloning it locally.
&lt;/h3&gt;

&lt;p&gt;A GitHub account already exists. I created the repository Day-8-task on git. I will clone the repo and make changes to the README.md file and commit the changes to GitHub.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To clone the repository &lt;code&gt;git clone&lt;/code&gt; followed by the repository link&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git clone&lt;/code&gt; &lt;a href="https://github.com/Arafique458/Day-8-Task.git" rel="noopener noreferrer"&gt;&lt;code&gt;https://github.com/Arafique458/Day-8-Task.git&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To configure the credentials, I will be using a Secret Access token to connect to the repository.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git config --global&lt;/code&gt; &lt;a href="http://user.name" rel="noopener noreferrer"&gt;&lt;code&gt;user.name&lt;/code&gt;&lt;/a&gt; &lt;code&gt;"arafique458"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git config --global&lt;/code&gt; &lt;a href="http://user.email" rel="noopener noreferrer"&gt;&lt;code&gt;user.email&lt;/code&gt;&lt;/a&gt; &lt;code&gt;"arafique458@gmail.com&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To access the cloned directory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;cd Day-8-task&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To make changes to the README.md file&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;vim README.md&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After making changes check the status of the file modified.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fp4rd5s0hu799i9uzpf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fp4rd5s0hu799i9uzpf.png" width="666" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To stage, the changes &lt;code&gt;git add .&lt;/code&gt; (this will stage all the files in the directory or we can specify the file want to stage)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F905j8qn6ksscebkpk1tz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F905j8qn6ksscebkpk1tz.png" width="800" height="168"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To push the changes to the main repository in the GitHub &lt;code&gt;git push origin main&lt;/code&gt; (I was prompted to enter credentials, I used the email address of the git hub and Access token)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhcktfxgqvwk6i1a5rlx9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhcktfxgqvwk6i1a5rlx9.png" width="782" height="249"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Task 2: File in the repository changed and commit was made in the repository using Git
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;GitHub repository before making a commit&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9mlulbo1jenrh49x4cgy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9mlulbo1jenrh49x4cgy.png" width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub repository before making a commit&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fumol3geu3k9twrtqmx9m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fumol3geu3k9twrtqmx9m.png" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Task 3: Pushed Changed / Commit Screenshot of GitHub repository
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpknrvwvg54j6syfcorq1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpknrvwvg54j6syfcorq1.png" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>90daysofdevops</category>
      <category>90daysofdevopschanll</category>
      <category>90daysofdevopschalle</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
