<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Devops 60 hrs</title><link>http://devops-60hrs.vertiaitech.com/index.html</link><description>DevOps bridges the gap between development and operations, fostering a culture of collaboration and continuous improvement. With automation at its core, DevOps accelerates software delivery while ensuring stability, scalability, and security. Adopting DevOps practices empowers teams to innovate faster, respond to change efficiently, and deliver greater value to customers. 📚 Table of Contents 🟢 Getting Started VirtualBox, Vagrant, and Basics of Linux 📘 Linux Administration 🔹 Introduction to Linux History and Evolution Linux Distributions Overview System Architecture Basics 🔹 User and Group Management Creating and Managing Users Group Administration Switching Users and sudo Access 🔹 File System and Directory Structure Linux Directory Hierarchy Explained Mounting and Unmounting File Systems Disk Partitioning and LVM Basics 🔹 File and Directory Permissions Understanding rwx Permissions chmod, chown, and chgrp Access Control Lists (ACLs) Special Permissions: SUID, SGID, Sticky Bit 🔹 Package Management apt, yum, dnf, zypper Installing, Updating, and Removing Software Managing Repositories Compiling from Source 🔹 Process and Service Management Understanding System Processes Commands: ps, top, htop, kill, nice Managing Services with systemctl Startup and Boot Targets 🔹 Performance Monitoring and Tuning CPU, Memory, Disk, Network Monitoring Identifying Bottlenecks Log Analysis and Rotation 🔹 Networking Essentials Network Configuration: Static &amp; DHCP Tools: ip, netstat, ss, ping, traceroute, nmap Firewalls: iptables, firewalld, ufw SSH Configuration and Security 🔹 Storage Management Mounting Disks and File Systems Logical Volume Management (LVM) Filesystem Types: ext4, xfs, btrfs, etc. 🔹 Backup and Recovery Tools: rsync, tar, dd Scheduled Backups using cron Snapshot and Restore Disaster Recovery Strategy 🔹 Security and Hardening User Privileges and Auditing SSH Key Authentication SELinux/AppArmor Basics Patch Management and Vulnerability Scanning 🔹 Automation and Scripting Shell Scripting Basics Scheduling Tasks with cron Automation of Admin Tasks 🔹 Logging and Troubleshooting Using journalctl and log files Boot, Network, and Service Troubleshooting Rescue Mode and Recovery 🔹 Virtualization and Containers KVM and VirtualBox Basics Introduction to Docker and Podman Linux Namespaces and Cgroups 🔐 SSL/TLS with OpenSSL 🔹 SSL/TLS Fundamentals What is SSL/TLS Key Concepts: PKI, Certificates, CSRs TLS Handshake Overview 🔹 Certificate Generation Creating Private Keys Generating CSRs Adding SANs with openssl.cnf Creating Self-Signed Certs 🔹 Key and Cert Management Formats: PEM, DER, CRT, CER, KEY Extract Public Keys Convert Between Formats 🔹 Certificate Validation Match Cert and Key View Certificate and CSR Details Check Validity Periods 🔹 Advanced CSR Fields Using Config Files Key Usage and Extended Usage SAN and Custom Extensions 🔹 Certificate Deployment For Nginx, Apache, HAProxy Intermediate Chains Secure File Permissions 🔹 Testing SSL openssl s_client Cipher Suite Validation SSL Labs Testing 🔹 Renewal and Automation Manual vs Automated Renewal certbot, acme.sh Usage Renewal Hooks 🔹 Troubleshooting and Best Practices Common Errors (Mismatches, Expired Certs) Storage Best Practices TLS Hardening 🔹 Local Development Using Local CAs Tools: mkcert Browser Trust Configurations ⚙️ Ansible for RHEL 8/9 🔹 Introduction to Ansible Overview and Architecture Agentless Automation Benefits 🔹 Setup and Configuration Installing via DNF Configuring ansible.cfg Setting up Inventory 🔹 Inventory Management Static and Dynamic Inventories SSH Key Authentication Grouping Hosts 🔹 Package Management Modules: dnf, yum, rpm Enabling EPEL and Custom Repos Managing RPMs 🔹 Service Management service and systemd Modules Enabling/Disabling Services Restarting and Reloading 🔹 User and Group Tasks Create/Remove Users Managing SSH Keys ACL and Permissions 🌱 OpenTofu (Terraform Fork) Intro to OpenTofu Open-source Terraform alternative Community-driven governance Why Switch Licensing, transparency, neutrality Installation OpenTofu CLI Migration from Terraform Code Compatibility Using existing Terraform HCL Providers Open registry support State Management Compatible backends State locking and drift detection Modules Reusable and shareable configs CLI Commands tofu plan, tofu apply, etc. CI/CD Integration in pipelines GitLab, GitHub Actions Best Practices Naming, modularity, Git workflows</description><generator>Hugo</generator><language>en-us</language><atom:link href="http://devops-60hrs.vertiaitech.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Vagrant: Day 01</title><link>http://devops-60hrs.vertiaitech.com/part01/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://devops-60hrs.vertiaitech.com/part01/index.html</guid><description>📦 Vagrant - Day 01 1. Introduction to Vagrant What is Vagrant? Vagrant is an open-source tool that allows you to build and manage virtualized development environments.
Benefits of Using Vagrant
Reproducibility Isolation Simplified provisioning Use Cases
DevOps automation Testing infrastructure Multi-VM environments 2. Installation Linux/Mac/Windows Step 1: Install VirtualBox
https://www.virtualbox.org/wiki/Downloads
Step 2: Install Vagrant
https://www.vagrantup.com/downloads
Verify Installation:
vagrant --version Getting Started with Vagrant Vagrant boxes can be searched Here Create a Directory and get into the dir Create a Vagrantfile and initiate the box vagrant init generic/rhel8 --box-version 4.3.12 It will generate a file like given below: Vagrant.configure("2") do |config| config.vm.box = "generic/rhel8" config.vm.box_version = "4.3.12" end Create a vm using this vagrantfile (Prerequisites, Virtualbox and vagrant ) vagrant up Now check the vm from Virtual box</description></item><item><title>Linux Basics: Day 02</title><link>http://devops-60hrs.vertiaitech.com/part02/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://devops-60hrs.vertiaitech.com/part02/index.html</guid><description>Architecture and File Structure of Linux System Architecture RHEL Linux 9 supports x86_64 (64-bit) architecture by default. It also provides support for ARM-based systems. RHEL Linux 9 uses the Linux Kernel (typically version 5.14.x) and the systemd init system.
Package Manager: dnf (Dandified Yum) System Architecture: Primarily x86_64, also supports ARM and other architectures. File System Hierarchy The file structure in Rocky Linux 9 follows the Filesystem Hierarchy Standard (FHS), which is used across most Linux distributions. Here’s a breakdown of important directories:</description></item><item><title>User, Group and Permissions: Day 03</title><link>http://devops-60hrs.vertiaitech.com/part03/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://devops-60hrs.vertiaitech.com/part03/index.html</guid><description>Topics Links in Linux Variable and Path Echo commands User Management Permission SSH keys Network Management Understanding Links in Linux In Linux, a link is a reference to a file or directory. It provides an additional path or name to access the same file or directory without duplicating the data. Links are used to organize files, create backups, and even provide shortcuts to files located elsewhere.
Types of Links in Linux Hard Links Symbolic (Soft) Links 1. Hard Links A hard link creates another directory entry for an existing file. Both the original file and the hard link point to the same inode (a data structure that holds the file’s metadata and data block pointers). Hard links cannot be created for directories (except for special directories like . and ..), and they do not work across different file systems.</description></item><item><title>Linux Disk Management: Day 04</title><link>http://devops-60hrs.vertiaitech.com/part04/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://devops-60hrs.vertiaitech.com/part04/index.html</guid><description>Topics Recap Checking Exisitng disk Partiotion a Disk Mounting a disk after format Introduction to LVM Swap Partition Loging Overview Recap Umask usage( to control the default permission)
Log into the Vagrant virtual machine using the default SSH private key.
.vagrant/machines/&lt;machine-name>/&lt;provider>/private_key ssh -i &lt;privatekey> &lt;user-name>/ip Convert the private key .pem file into ppk to login with putty.
Login to 3rd server but private key is on 1st server</description></item><item><title>Linux Package Management: Day 05</title><link>http://devops-60hrs.vertiaitech.com/part05/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://devops-60hrs.vertiaitech.com/part05/index.html</guid><description>📦 What is Package Management? Linux uses package managers to install, update, and remove software efficiently while resolving dependencies.
🧰 1. Debian/Ubuntu: apt (Advanced Package Tool) Update package list: sudo apt update Upgrade packages: sudo apt upgrade Install a package: sudo apt install package-name Remove a package: sudo apt remove package-name Remove unused packages: sudo apt autoremove Search for a package: apt search nginx 🍱 2. RHEL/CentOS/Rocky: yum and dnf On RHEL 8+ and Fedora, use dnf instead of yum.</description></item><item><title>**Exam**</title><link>http://devops-60hrs.vertiaitech.com/k8s/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://devops-60hrs.vertiaitech.com/k8s/index.html</guid><description>Kubernetes Security Practice Questions with Answers (CKS) 1. ImagePolicyWebhook Objective: Ensure all images are verified via an external webhook.
Steps:
Create the configuration file /etc/kubernetes/confcontrol/webhook-config.yaml: apiVersion: apiserver.config.k8s.io/v1 kind: AdmissionConfiguration plugins: - name: ImagePolicyWebhook configuration: imagePolicy: kubeConfigFile: /etc/kubernetes/confcontrol/image-webhook-config.yaml allowTTL: 30 denyTTL: 30 retryBackoff: 500 defaultAllow: false Create the webhook kubeconfig at /etc/kubernetes/confcontrol/image-webhook-config.yaml: apiVersion: v1 kind: Config clusters: - name: image-policy cluster: server: https://webhook.kplabs.internal certificate-authority: /etc/kubernetes/pki/ca.crt users: - name: image-policy user: client-certificate: /etc/kubernetes/pki/apiserver.crt client-key: /etc/kubernetes/pki/apiserver.key contexts: - name: image-policy context: cluster: image-policy user: image-policy current-context: image-policy Modify kube-apiserver manifest to include: --admission-control-config-file=/etc/kubernetes/confcontrol/webhook-config.yaml --enable-admission-plugins=ImagePolicyWebhook Create a pod to verify: kubectl run nginx --image=nginx If the pod fails, get error log: journalctl -u kubelet > /tmp/error.log 2. AppArmor Objective: Load and enforce an AppArmor profile.</description></item><item><title>Day 06</title><link>http://devops-60hrs.vertiaitech.com/part06/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://devops-60hrs.vertiaitech.com/part06/index.html</guid><description>Topics to cover 01 Learning Grep 02 Learning Redirection commands 03 Learning Cut Commands 04 Learning Sed 05 Learning Find 06 Learning Uniq 🔍 grep Commands Cheat Sheet 1️⃣ Basic Search: Search for the word “tree” in a file grep "tree" /etc/tree.txt 2️⃣ Case-insensitive Search: Search for “tree”, ignoring case grep -i "tree" /etc/tree.txt 3️⃣ Search with Line Numbers: Search for “tree” and display line numbers grep -n "tree" /etc/tree.txt 4️⃣ Count Matches: Count the number of lines that match “tree” grep -c "tree" /etc/tree.txt 5️⃣ Invert Match: Display lines that do NOT contain “tree” grep -v "tree" /etc/tree.txt 6️⃣ Show Matching Part Only: Show only the part of the line that matches “tree” grep -o "tree" /etc/tree.txt 7️⃣ Extended Regex: Search for “ram” or “ravan” using extended regex grep -E "ram|ravan" /etc/ram.txt 8️⃣ Whole Word Match: Match the word “tree” exactly (not part of another word) grep -w "tree" /etc/tree.txt 9️⃣ Display File Name Only: Show filenames that contain the word “tree” grep -l "tree" *.txt 🔟 Display File Name Only (No Match): Show filenames that do NOT contain the word “tree” grep -L "tree" *.txt 1️⃣1️⃣ Recursive Search: Search for “tree” in all files recursively within a directory grep -r "tree" /path/to/dir/ 1️⃣2️⃣ Recursive Search (Case-insensitive): Search for “tree” recursively, ignoring case grep -ir "tree" /path/to/dir/ 1️⃣3️⃣ Search for Multiple Patterns: Search for either “tree” or “forest” in a file grep -E "tree|forest" /etc/trees.txt 1️⃣4️⃣ Suppress Errors: Suppress error messages (e.g., for files that can’t be read) grep "tree" * 2>/dev/null 1️⃣5️⃣ Show Lines with Multiple Matches: Show lines that contain both “tree” and “forest” grep "tree" /etc/trees.txt | grep "forest" 1️⃣6️⃣ Use with Pipes: Filter results from another command, such as ps or dmesg ps aux | grep "nginx" # Find running processes related to nginx dmesg | grep -i "error" # Look for "error" in system logs 1️⃣7️⃣ Use with xargs: Search for “ERROR” in all .log files listed in files.txt cat files.txt | xargs grep "ERROR" 🔴 grep Redirection Commands 1️⃣ Redirect Standard Output to a File (Overwrite) grep "tree" /etc/tree.txt > output.txt 2️⃣ Append Standard Output to a File grep "tree" /etc/tree.txt >> output.txt 3️⃣ Redirect Errors to a File (Overwrite) grep "tree" /etc/tree.txt 2> error_log.txt 4️⃣ Append Errors to a File grep "tree" /etc/tree.txt 2>> error_log.txt 5️⃣ Redirect Both Standard Output and Errors to the Same File grep "tree" /etc/tree.txt > output.txt 2>&amp;1 6️⃣ Append Both Standard Output and Errors to the Same File grep "tree" /etc/tree.txt >> output.txt 2>&amp;1 7️⃣ Suppress Errors and Redirect Output to a File grep "tree" /etc/tree.txt > output.txt 2>/dev/null 8️⃣ Redirect Both Output and Errors to null (Suppress All Output) grep "tree" /etc/tree.txt > /dev/null 2>&amp;1 9️⃣ Redirect Both Errors and Output to a Separate File (If You Need Both) grep "tree" /etc/tree.txt 1> output.txt 2> error_log.txt 🔟 Redirect Only Errors to null (Suppress Errors) grep "tree" /etc/tree.txt 2>/dev/null ✂️ cut Commands Cheat Sheet 1️⃣ Cut by delimiter: Extract the first column from a comma-separated file cut -d ',' -f 1 /path/to/file.csv 2️⃣ Cut by delimiter and show multiple columns: Extract the first and second columns cut -d ',' -f 1,2 /path/to/file.csv 3️⃣ Cut by character position: Extract the first 5 characters from each line cut -c 1-5 /path/to/file.txt 4️⃣ Cut by byte position: Extract the first 5 bytes from each line cut -b 1-5 /path/to/file.txt 5️⃣ Remove the first column: Skip the first column and print the rest (tab-delimited) cut -f 2- /path/to/file.txt 6️⃣ Show specific columns by field delimiter: Extract the third and fourth columns from a pipe-separated file cut -d '|' -f 3,4 /path/to/file.txt 7️⃣ Cut with a specific field delimiter and show the 2nd to 4th columns cut -d ':' -f 2-4 /etc/passwd 8️⃣ Cut by character positions for the first 3 characters cut -c 1-3 /path/to/file.txt 9️⃣ Cut by delimiter and show the last field (if no delimiter specified, the whole line is considered one field) cut -d ':' -f 7 /etc/passwd 🔟 Cut with input from a pipeline: Extract the second column from the output of the ps command ps aux | cut -d ' ' -f 2 1️⃣1️⃣ Cut by character range and input from pipeline: Extract the first 10 characters of each line in a file cat /path/to/file.txt | cut -c 1-10 1️⃣2️⃣ Remove the last column: Use cut to skip the last column of a tab-separated file cut -f 1- --complement /path/to/file.txt 📝 sed Commands Cheat Sheet 1️⃣ Basic Substitution: Replace “old” with “new” in a file sed 's/old/new/' /path/to/file.txt 2️⃣ Global Substitution: Replace all occurrences of “old” with “new” in a file sed 's/old/new/g' /path/to/file.txt 3️⃣ In-place Substitution: Replace “old” with “new” directly in the file (without creating a backup) sed -i 's/old/new/g' /path/to/file.txt 4️⃣ Substitution with Backup: Replace “old” with “new” and create a backup of the original file sed -i.bak 's/old/new/g' /path/to/file.txt 5️⃣ Delete Lines: Delete lines that match a pattern sed '/pattern/d' /path/to/file.txt 6️⃣ Print Lines: Print only the lines that match a pattern sed -n '/pattern/p' /path/to/file.txt 7️⃣ Replace Only on a Specific Line: Replace “old” with “new” only on line 3 sed '3s/old/new/' /path/to/file.txt 8️⃣ Delete a Range of Lines: Delete lines 3 to 5 from a file sed '3,5d' /path/to/file.txt 9️⃣ Replace Multiple Lines: Replace lines from 3 to 5 with a new string sed '3,5c\New content' /path/to/file.txt 🔟 Insert Text Before a Line: Insert “new line” before line 2 sed '2i\new line' /path/to/file.txt 1️⃣1️⃣ Append Text After a Line: Append “new line” after line 2 sed '2a\new line' /path/to/file.txt 🔍 find Commands Cheat Sheet 1️⃣ Basic Search: Find all files with the .txt extension in the current directory find . -name "*.txt" 2️⃣ Search in a Specific Directory: Find all .log files in the /var/log directory find /var/log -name "*.log" 3️⃣ Search for Files Modified in the Last N Days: Find files modified in the last 7 days find . -type f -mtime -7 4️⃣ Search for Files Larger than N Bytes: Find files larger than 100MB find . -type f -size +100M 5️⃣ Search for Empty Files: Find all empty files find . -type f -empty 6️⃣ Find Files by Permissions: Find all files with 777 permissions find . -type f -perm 0777 7️⃣ Find Files Owned by a Specific User: Find all files owned by user “john” find . -type f -user john 8️⃣ Execute a Command on Found Files: Find all .log files and delete them find . -name "*.log" -exec rm -f {} \; 9️⃣ Search for Directories Only: Find all directories in the current directory find . -type d 🔟 Search for Files Modified in the Last N Minutes: Find files modified in the last 30 minutes find . -type f -mmin -30 1️⃣1️⃣ Search for Files by Group: Find all files that belong to group “staff” find . -type f -group staff 1️⃣2️⃣ Find Files by Name with Case Insensitivity: Find .jpg files, case-insensitive find . -iname "*.jpg" 1️⃣3️⃣ Limit Search Depth: Find files only in the top level of directories (depth 1) find . -maxdepth 1 -type f 1️⃣4️⃣ Search for Files Modified After a Specific Date: Find files modified after January 1, 2020 find . -type f -newermt "2020-01-01" 🦄 uniq Commands Cheat Sheet 1️⃣ Remove Duplicate Lines: Remove consecutive duplicate lines in a file uniq /path/to/file.txt 2️⃣ Count Occurrences: Show the number of occurrences of each line in the file uniq -c /path/to/file.txt 3️⃣ Display Only Duplicates: Show only the lines that are repeated (duplicates) uniq -d /path/to/file.txt 4️⃣ Display Lines that Are Not Duplicated: Show lines that are not repeated in the file uniq -u /path/to/file.txt 5️⃣ Skip N Fields: Skip the first field when checking for duplicates (useful for space-separated fields) uniq -f 1 /path/to/file.txt 6️⃣ Ignore Case When Comparing: Remove duplicates, ignoring case uniq -i /path/to/file.txt 7️⃣ Compare N Characters: Compare the first N characters of each line for duplicates uniq -w 5 /path/to/file.txt 8️⃣ Use a Separator: Use a custom separator when displaying duplicates uniq -s 2 /path/to/file.txt 9️⃣ Redirect Output to a New File: Remove duplicates and store the result in a new file uniq /path/to/file.txt > /path/to/output.txt 🔟 Count Duplicates in Input: Pipe input to uniq and count occurrences echo -e "apple\napple\nbanana" | uniq -c 1️⃣1️⃣ Remove Duplicates from Sorted Data: Sort data and then remove duplicates sort /path/to/file.txt | uniq 1️⃣2️⃣ Use with Pipe: Count unique words in the output of a cat command cat /path/to/file.txt | sort | uniq -c</description></item><item><title>Day 07</title><link>http://devops-60hrs.vertiaitech.com/part07/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://devops-60hrs.vertiaitech.com/part07/index.html</guid><description>Topics to cover 01 Curl 02 Openssl Curl most used command 1️⃣ Basic GET request: Send a GET request to a URL curl https://example.com 2️⃣ GET request with headers: Send a GET request with custom headers curl -H "Accept: application/json" https://example.com/api/data 3️⃣ GET request with multiple headers: Send a GET request with multiple custom headers curl -H "Accept: application/json" -H "Authorization: Bearer &lt;token>" https://example.com/api/data 4️⃣ GET request and save output to a file: Download content and save it to a file curl -o output.html https://example.com 5️⃣ Silent GET request: Send a GET request without progress or error messages curl -s https://example.com 6️⃣ Verbose output: Show detailed information about the request curl -v https://example.com 7️⃣ Follow redirects: Automatically follow HTTP redirects curl -L https://example.com 8️⃣ POST request with form data: Send form data in a POST request curl -X POST -d "username=user&amp;password=pass" https://example.com/login 9️⃣ POST JSON data: Send JSON data in a POST request curl -X POST -H "Content-Type: application/json" -d '{"name":"John","age":30}' https://example.com/api/users 🔟 PUT request with JSON: Send JSON data in a PUT request curl -X PUT -H "Content-Type: application/json" -d '{"name":"Updated"}' https://example.com/api/users/1 1️⃣1️⃣ DELETE request: Send a DELETE request curl -X DELETE https://example.com/api/users/1 1️⃣2️⃣ Upload file with POST: Upload a file in a POST request curl -X POST -F "file=@/path/to/file.txt" https://example.com/upload 1️⃣3️⃣ Download file with progress bar: Download a file with a progress indicator curl -O https://example.com/file.zip 1️⃣4️⃣ Download file to a custom name: Save the downloaded file with a custom name curl -o newname.zip https://example.com/file.zip 1️⃣5️⃣ Resume a partially downloaded file: Resume downloading a file from where it left off curl -C - -O https://example.com/file.zip 1️⃣6️⃣ FTP upload: Upload a file to an FTP server curl -T file.txt ftp://ftp.example.com/ --user username:password 1️⃣7️⃣ Send cookies: Send cookies with the request curl -b "name=value" https://example.com 1️⃣8️⃣ Save cookies to a file: Save cookies from the request to a file curl -c cookies.txt https://example.com 1️⃣9️⃣ Use cookies from a file: Send cookies from a file with the request curl -b cookies.txt https://example.com 2️⃣0️⃣ HTTP authentication (Basic Auth): Send HTTP Basic Authentication curl -u username:password https://example.com 2️⃣1️⃣ Use a proxy: Send a request through a proxy server curl -x http://proxy.example.com:8080 https://example.com 2️⃣2️⃣ Limit download speed: Limit the download speed to a specific rate curl --limit-rate 100k https://example.com 2️⃣3️⃣ Use a specific request method (e.g., PATCH): Send a PATCH request curl -X PATCH -d '{"status":"active"}' -H "Content-Type: application/json" https://example.com/api/resource 2️⃣4️⃣ Upload multiple files with form: Upload multiple files using form data curl -F "file1=@file1.txt" -F "file2=@file2.txt" https://example.com/upload 2️⃣5️⃣ Upload file with a specific content type: Upload a file with a specified content type curl -F "file=@file.json;type=application/json" https://example.com/upload Openssl Commands 1️⃣ Generate a Self-Signed Certificate: Create a self-signed SSL certificate with a private key openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout server.key -out server.crt 2️⃣ Generate a Private Key: Generate a private RSA key openssl genpkey -algorithm RSA -out private.key 3️⃣ Generate a Public Key: Generate a public key from a private key openssl rsa -in private.key -pubout -out public.key 4️⃣ Convert PEM to DER: Convert a PEM-encoded certificate to DER format openssl x509 -in certificate.pem -outform DER -out certificate.der 5️⃣ Convert DER to PEM: Convert a DER-encoded certificate to PEM format openssl x509 -in certificate.der -inform DER -out certificate.pem -outform PEM 6️⃣ View Certificate Information: View details about an SSL certificate openssl x509 -in certificate.crt -text -noout 7️⃣ Verify Certificate: Verify if a certificate is valid for a specific domain openssl s_client -connect example.com:443 -showcerts 8️⃣ Create a CSR (Certificate Signing Request): Generate a CSR using a private key openssl req -new -key private.key -out request.csr 9️⃣ Sign a CSR with a CA (Certificate Authority): Sign a CSR with a CA certificate openssl x509 -req -in request.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out signed.crt -days 365 🔟 Check SSL Certificate Expiry: Check the expiration date of an SSL certificate openssl x509 -in certificate.crt -noout -enddate 1️⃣1️⃣ Create a PKCS12 File: Convert a private key and certificate to a PKCS12 file openssl pkcs12 -export -in certificate.crt -inkey private.key -out certificate.p12 1️⃣2️⃣ Extract Certificate from PKCS12 File: Extract a certificate from a PKCS12 file openssl pkcs12 -in certificate.p12 -clcerts -nokeys -out certificate.crt 1️⃣3️⃣ Extract Private Key from PKCS12 File: Extract the private key from a PKCS12 file openssl pkcs12 -in certificate.p12 -nocerts -out private.key 1️⃣4️⃣ Encrypt a File with AES: Encrypt a file using AES encryption openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.txt 1️⃣5️⃣ Decrypt a File with AES: Decrypt a file that was encrypted with AES openssl enc -d -aes-256-cbc -in encrypted.txt -out decrypted.txt 1️⃣6️⃣ Generate a Diffie-Hellman Parameters File: Generate a DH parameters file openssl dhparam -out dhparams.pem 2048 1️⃣7️⃣ Create an SSL/TLS Server Certificate: Generate a server certificate from a CSR openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 1️⃣8️⃣ Test SSL Connection: Test an SSL connection to a server openssl s_client -connect example.com:443 1️⃣9️⃣ Generate an MD5 Hash of a File: Generate an MD5 hash of a file openssl dgst -md5 file.txt 2️⃣0️⃣ Generate a SHA256 Hash of a File: Generate a SHA256 hash of a file openssl dgst -sha256 file.txt 1️⃣ Generate a Self-Signed Certificate: Create a self-signed SSL certificate with a private key openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout server.key -out server.crt 2️⃣ Generate a Private Key: Generate a private RSA key openssl genpkey -algorithm RSA -out private.key 3️⃣ Generate a Public Key: Generate a public key from a private key openssl rsa -in private.key -pubout -out public.key 4️⃣ Convert PEM to DER: Convert a PEM-encoded certificate to DER format openssl x509 -in certificate.pem -outform DER -out certificate.der 5️⃣ Convert DER to PEM: Convert a DER-encoded certificate to PEM format openssl x509 -in certificate.der -inform DER -out certificate.pem -outform PEM 6️⃣ View Certificate Information: View details about an SSL certificate openssl x509 -in certificate.crt -text -noout 7️⃣ Verify Certificate: Verify if a certificate is valid for a specific domain openssl s_client -connect example.com:443 -showcerts 8️⃣ Create a CSR (Certificate Signing Request): Generate a CSR using a private key openssl req -new -key private.key -out request.csr 9️⃣ Sign a CSR with a CA (Certificate Authority): Sign a CSR with a CA certificate openssl x509 -req -in request.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out signed.crt -days 365 🔟 Check SSL Certificate Expiry: Check the expiration date of an SSL certificate openssl x509 -in certificate.crt -noout -enddate 1️⃣1️⃣ Create a PKCS12 File: Convert a private key and certificate to a PKCS12 file openssl pkcs12 -export -in certificate.crt -inkey private.key -out certificate.p12 1️⃣2️⃣ Extract Certificate from PKCS12 File: Extract a certificate from a PKCS12 file openssl pkcs12 -in certificate.p12 -clcerts -nokeys -out certificate.crt 1️⃣3️⃣ Extract Private Key from PKCS12 File: Extract the private key from a PKCS12 file openssl pkcs12 -in certificate.p12 -nocerts -out private.key 1️⃣4️⃣ Encrypt a File with AES: Encrypt a file using AES encryption openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.txt 1️⃣5️⃣ Decrypt a File with AES: Decrypt a file that was encrypted with AES openssl enc -d -aes-256-cbc -in encrypted.txt -out decrypted.txt 1️⃣6️⃣ Generate a Diffie-Hellman Parameters File: Generate a DH parameters file openssl dhparam -out dhparams.pem 2048 1️⃣7️⃣ Create an SSL/TLS Server Certificate: Generate a server certificate from a CSR openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 1️⃣8️⃣ Test SSL Connection: Test an SSL connection to a server openssl s_client -connect example.com:443 1️⃣9️⃣ Generate an MD5 Hash of a File: Generate an MD5 hash of a file openssl dgst -md5 file.txt 2️⃣0️⃣ Generate a SHA256 Hash of a File: Generate a SHA256 hash of a file openssl dgst -sha256 file.txt</description></item><item><title>Day 08</title><link>http://devops-60hrs.vertiaitech.com/part08/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://devops-60hrs.vertiaitech.com/part08/index.html</guid><description>Topics to cover 01 Gitalab Installation 02 Curl 03 Openssl 🚀 Introduction to GitLab GitLab is a web-based DevOps lifecycle tool that provides a Git repository manager with built-in features like:
Issue tracking Continuous Integration/Continuous Deployment (CI/CD) Code review Project management Wiki and more It enables teams to collaborate on code, automate testing, and deploy software efficiently.
🔧 What Is Git? Before diving into GitLab, it’s important to understand Git:
Git is a version control system that lets you track code changes. It allows multiple developers to work on the same project simultaneously. GitLab builds on Git by providing a collaborative platform for managing and deploying code.</description></item><item><title>Ansible</title><link>http://devops-60hrs.vertiaitech.com/ansible/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://devops-60hrs.vertiaitech.com/ansible/index.html</guid><description>1. Getting Started with Ansible Overview on Ansible Why use Ansible 2. Ansible Architecture Control node Managed nodes Inventory Modules Tasks Playbooks Lab Environment 3. Pre-requisites to Setup Ansible Control node requirements Managed node requirements Update /etc/hosts on all the hosts Install mandatory pre-requisites on Ansible client nodes 4. Installing Ansible Install using package manager on RHEL 8 Install using package manager on CentOS 8 Install using pip 5. Configuring Ansible Create normal user Configure password-less authentication Verify password-less SSH authentication Configure privilege escalation using sudo Verify Ansible connectivity Total Duration: 8 hrs</description></item></channel></rss>