devops

Terraform Local Values with Examples

Learn Terraform local values on Ubuntu — locals block syntax, local.NAME references, derived values from variables, maps, functions, conditionals, multiple locals blocks, locals vs variables, and common errors on …

Deepak Prasad9 min read
devops

Terraform Output Values with Examples

Learn Terraform output values on Ubuntu — output block syntax, resource attributes, terraform output, -raw, -json, jq, sensitive and complex outputs, state storage, shell automation, and common output errors on Terraform …

Deepak Prasad10 min read
devops

Terraform Variables: Types, tfvars and Precedence

Learn Terraform input variables on Ubuntu — variable block syntax, types, terraform.tfvars, auto.tfvars, -var-file, -var, TF_VAR, CLI variable precedence on Terraform 1.15.8, validation, nullable, sensitive, and common …

Deepak Prasad15 min read
devops

Terraform Resource References and Dependencies

Learn Terraform resource references and dependencies on Ubuntu — implicit ordering from attribute references, explicit depends_on, terraform graph, file-order vs graph order, dependency cycles, unknown values during …

Deepak Prasad12 min read
devops

Terraform Data Sources with Examples

Learn Terraform data sources on Ubuntu with the Docker provider — data block syntax, query existing infrastructure, attribute references, feeding values into resources, resource vs data comparison, depends_on, count and …

Deepak Prasad15 min read
devops

Terraform Resources: resource Block with Examples

Learn the Terraform resource block on Ubuntu — syntax, type and local name, arguments and attributes, addresses and references, create and update with terraform_data, Docker verification, replacement and deletion, …

Deepak Prasad16 min read
devops

Terraform Provider Version Constraints and Lock File

Learn how Terraform provider version constraints, .terraform.lock.hcl, terraform init -upgrade, and terraform providers lock work on Ubuntu — with required_version vs required_providers explained and real lock-file …

Deepak Prasad16 min read
devops

Terraform Data Types: List, Set, Map, Tuple and Object

Learn Terraform data types on Ubuntu — string, number, bool, list, set, map, tuple, object, optional attributes, any, null, list vs set, map vs object, type conversions, terraform console type(), and common type errors …

Deepak Prasad11 min read
system-administration

Manage Linux Users and Groups

Manage Linux users and groups with useradd, usermod, userdel, groupadd, primary and supplementary groups, account defaults, and ownership checks.

Deepak Prasad15 min read
system-administration

Configure Chrony Time Synchronization in Linux

Configure Chrony NTP on Linux, verify time synchronization with chronyc, force clock correction, troubleshoot sync problems, and optionally serve LAN clients.

Deepak Prasad15 min read
linux

Linux Boot Process Explained: From UEFI and GRUB to systemd

Learn the Linux boot process from UEFI or BIOS through GRUB, the kernel, initramfs, and systemd, with inspection commands and troubleshooting.

Deepak Prasad25 min read
linux

Analyze Linux Performance with perf and debuginfod

Use perf stat, perf record, and perf report on Linux to find CPU bottlenecks, collect call graphs, and resolve symbols with debuginfod on Rocky Linux, RHEL, Debian, Ubuntu, and other distributions.

Deepak Prasad20 min read
linux

Post-Quantum Cryptography in Linux: ML-KEM, ML-DSA, TLS, and SSH

Learn how to check ML-KEM support in TLS, create ML-DSA signatures, and verify post-quantum SSH key exchange on Linux, with tested Rocky Linux examples.

Deepak Prasad22 min read
system-administration

Fix Linux VM Wrong Time After Reboot

When a Linux VM shows the wrong time after every reboot, trace the clock from the virtual RTC through chrony, identify the selected NTP source, and fix stale RTC values, unsuitable chrony sources, or hypervisor time-sync …

Deepak Prasad13 min read
system-administration

Configure Apache LDAP Authentication with OpenLDAP

Configure Apache HTTP Server to authenticate and authorize users with OpenLDAP using mod_authnz_ldap, group restrictions, TLS, and practical troubleshooting.

Deepak Prasad15 min read
system-administration

Fix Bash History Not Saving All Commands in Linux

Fix missing Bash history commands in Linux, including commands lost across multiple terminals, delayed .bash_history writes, HISTCONTROL exclusions, and permission problems.

Deepak Prasad19 min read
linux

How to Create a Man Page in Linux with Groff

Create a Linux man page with a reusable groff template. Learn man sections, macros, local preview, system and user installation, mandb, whatis, and troubleshooting.

Deepak Prasad16 min read
system-administration

Run systemd Service as a Specific User and Group in Linux

Create a system-level systemd service that starts at boot and runs as a dedicated non-root user and group on Ubuntu, Debian, Fedora, RHEL, Rocky Linux, AlmaLinux, CentOS Stream and Oracle Linux.

Deepak Prasad16 min read
linux

How to Restart or Reload Cron in Linux (Ubuntu, Debian, RHEL)

Restart or reload cron in Linux with systemctl restart cron on Ubuntu and Debian or crond on RHEL and Rocky Linux, and when a reload is actually needed.

Omer Cakmak11 min read
linux

RHEL Family vs Debian Family: RPM, DEB, DNF, APT and Server Differences

Compare the RHEL and Debian Linux families, including RPM vs DEB, DNF vs APT, repositories, release models, lifecycle, security, support, configuration, cloud images and server use cases.

Deepak Prasad17 min read
linux

Linux, Unix and Linux Distros Explained: Ubuntu, Debian, RHEL, Fedora and Arch

Learn how Unix, Linux, GNU/Linux and Linux distributions relate, why Ubuntu, Debian, Fedora, RHEL, Rocky Linux and Arch differ beyond desktop themes, and how to identify your distro from the shell.

Deepak Prasad16 min read
linux

Fix curl SSL Certificate Problem Behind Corporate Proxy on Linux

Fix curl error 60 and similar HTTPS failures on Linux when corporate SSL inspection replaces public certificates with a private root CA trusted on Windows but missing from the Linux trust store.

Deepak Prasad15 min read
storage

Migrate an Existing LVM Root Filesystem to LUKS Online

Migrate an already-installed Ubuntu LVM root volume group onto a new LUKS2 physical volume with pvmove, then configure crypttab with initramfs, regenerate the initramfs, and update GRUB for boot-time unlock.

Deepak Prasad17 min read
storage

Enroll TPM2, FIDO2, and Recovery Keys on LUKS2 with systemd-cryptenroll

Use systemd-cryptenroll on LUKS2 volumes to add TPM2, FIDO2, PKCS#11, and recovery-key unlock methods, store token metadata in the LUKS2 JSON area, and wire boot unlock through crypttab.

Deepak Prasad12 min read
storage

How to Resize a LUKS Partition (Extend or Shrink) in Linux

Extend or shrink a LUKS2 ext4 volume on Linux: grow the partition first, run cryptsetup resize on the mapper, then resize2fs; for shrink, reverse the order with offline resize2fs and --size in 512-byte sectors.

Deepak Prasad12 min read
storage

How to Open and Unlock a LUKS Disk on Another Linux Machine

Unlock and mount a LUKS USB or moved disk on another Linux host: cryptsetup open by device, UUID=, or /dev/disk/by-uuid, ext4 or LVM inside LUKS, read-only rescue mount, and close the mapper.

Deepak Prasad12 min read
storage

How to Auto Mount and Unlock LUKS Encrypted Partitions at Boot

Configure crypttab and fstab to unlock and mount a secondary LUKS data partition at boot on Ubuntu or Debian.

Deepak Prasad16 min read
storage

How to Back Up and Restore a LUKS Header in Linux

Back up and restore a LUKS2 header with cryptsetup luksHeaderBackup and luksHeaderRestore, use a detached header file, and understand when a header copy cannot recover a forgotten passphrase.

Deepak Prasad11 min read
storage

Change LUKS Passphrase, Volume Key, and Cipher on Linux

Rotate LUKS passphrases and key slots, change cipher or volume key with cryptsetup reencrypt on LUKS2, and back up the header before destructive operations.

Deepak Prasad13 min read
storage

How to Encrypt a Disk Partition with LUKS in Linux

Encrypt a new Linux disk partition with LUKS2 using cryptsetup: partition the disk, run luksFormat, open the mapper, create ext4 on /dev/mapper, and mount the volume.

Deepak Prasad11 min read