Articles by Deepak Prasad
Terraform Modules: Create and Use Local Modules
Learn Terraform modules on Ubuntu — root vs child module, local module structure, module block syntax, variables and outputs across module boundaries, calling the same module twice, state addresses, init after module …
Manage Secrets and Sensitive Data in Terraform
Learn Terraform sensitive data on Ubuntu — sensitive variables and outputs, CLI redaction vs state persistence, TF_VAR and tfvars patterns, ephemeral values and restrictions, write-only arguments, saved plans, Vault …
Terraform Validation, Preconditions, Postconditions and Checks
Learn Terraform custom conditions on Ubuntu — variable validation, lifecycle preconditions and postconditions, check blocks with assert, evaluation timing, failure behavior on Terraform 1.15.8, and how language-level …
Terraform Lifecycle Meta-Arguments with Examples
Learn Terraform lifecycle meta-arguments on Ubuntu — lifecycle block syntax, create_before_destroy, prevent_destroy, ignore_changes and ignore_changes all, replace_triggered_by, replacement ordering, drift handling, …
Terraform Dynamic Blocks with Examples
Learn Terraform dynamic blocks on Ubuntu — syntax, for_each, iterator, conditional nested blocks, docker_container lab, nested dynamic example, dynamic vs resource for_each, dynamic vs for expression, limitations, and …
Terraform count vs for_each with Examples
Learn Terraform count vs for_each on Ubuntu — numeric vs keyed instances, count.index, conditional count, each.key and each.value, maps and sets, list conversion, state addresses, index-shift lab, module repetition, …
Terraform Functions with Practical Examples
Learn Terraform built-in functions on Ubuntu — string, numeric, collection, type conversion, jsonencode, yamlencode, base64, file, templatefile, timestamp, uuid, try, can, composition patterns, terraform console, and …
Terraform Expressions and Operators with Examples
Learn Terraform expressions on Ubuntu — references, arithmetic, comparison, and logical operators, conditional expressions, for and splat syntax, string templates, collection access, unknown values, type conversion, …
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 …
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 …
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 …
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 …
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 …
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, …
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 …
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 …
RHCSA Cheat Sheet for RHEL 10
RHCSA cheat sheet for RHEL 10 EX200 revision—compact command patterns, verification commands, and lesson links by objective area. Not a general Linux command index.
Automate RHEL Installation with Kickstart
Automate RHEL installation with Kickstart on RHEL 10: file structure, ksvalidator, anaconda-ks.cfg templates, inst.ks boot options, rhsm registration, lab harness kickstart, and post-install verification.
Configure autofs to Automount NFS Shares in Linux
Install autofs on a Linux client, configure indirect and direct NFS maps in auto.master, trigger mounts on path access, set idle timeout, reload maps, and troubleshoot automount failures.
Linux umask Explained with Examples
Learn how Linux umask masks permissions at file creation: calculate modes from typical 0666 and 0777 requests, set session and persistent umask, configure systemd UMask, and troubleshoot common mistakes.
Configure Kickstart PXE Boot Server on Linux
Build a Kickstart PXE boot server on RHEL 10 with Apache HTTP, dnsmasq DHCP and TFTP, BIOS pxelinux and HTTP iPXE, local inst.stage2 from DVD, and inst.ks delivery for automated netboot installs.
How to Get RHEL for Free with a Developer Subscription
Get RHEL at no cost with the Red Hat Developer Subscription for Individuals: create an account, activate the subscription, pick the Boot or DVD ISO, and verify the download.
Register RHEL with Subscription Manager
Register RHEL with subscription-manager, verify Simple Content Access, enable BaseOS and AppStream repositories, configure a proxy, and unregister.
Configure SELinux Port Labels and Booleans
Configure SELinux port labels and booleans on Linux: read name_bind denials, add a port to http_port_t with semanage port, use -m when a port is already defined, and switch optional behaviour with getsebool and setsebool …
Manage SELinux Modes and File Contexts
Manage SELinux modes and file contexts on Linux: getenforce and setenforce, ls -Z, matchpathcon, restorecon, semanage fcontext, AVC denials, and an httpd content fix without disabling SELinux.
Configure Hostname Resolution in Linux
Learn how Linux resolves hostnames through NSS, /etc/hosts, and DNS: use getent hosts and getent ahosts, dig and host, configure DNS servers and search domains with nmcli, and troubleshoot resolution failures.
Configure the GRUB2 Bootloader on RHEL
Configure GRUB2 on RHEL with grubby and BLS entries: list kernels, set the default boot kernel, add or remove kernel parameters, use /etc/default/grub with grub2-mkconfig, and recover from bad boot arguments.
Schedule Tasks with systemd Timers in Linux
Schedule recurring and boot-relative jobs with systemd timers: pair a timer unit with a service unit, use OnCalendar and monotonic triggers, enable with systemctl, inspect list-timers and journalctl, and compare timers …
Configure an NFS Server and Client in Linux
Install nfs-utils, export a directory from an NFS server, open firewalld for NFSv4, mount the share on a Linux client with vers=4.2, persist it in /etc/fstab, and troubleshoot common NFS errors.
Mount Linux Filesystems with UUID and Labels
Mount filesystems persistently with /etc/fstab using UUID and LABEL, validate with mount -a and findmnt --verify, and recover when a bad entry blocks boot.

