Deploy, configure, and maintain systems (includes basic networking)
Host identity and addresses
hostnamectl set-hostname host.example.com writes /etc/hostname permanently. On RHEL 8+ NetworkManager profiles are keyfiles in /etc/NetworkManager/system-connections/; on RHEL 7 they are ifcfg files in /etc/sysconfig/network-scripts/. The tool-independent approach is nmcli:
nmcli con mod 'Wired connection 1' ipv4.method manual \
ipv4.addresses 192.168.1.50/24 ipv4.gateway 192.168.1.1 \
ipv4.dns 192.168.1.1
nmcli con up 'Wired connection 1'
Verify with ip addr, ip route, and nmcli device status. Do not hand-edit /etc/resolv.conf; NetworkManager owns it.
Services and firewall
firewall-cmd --add-service=http is runtime only; add --permanent and then --reload to persist. Also know --add-port=8080/tcp, --list-all, --get-default-zone, and --add-source. For SSH, edit /etc/ssh/sshd_config (PermitRootLogin no, PasswordAuthentication no, Port), then systemctl restart sshd; key authentication uses ssh-keygen and ssh-copy-id.
Traps: forgetting --reload after --permanent leaves the runtime rules unchanged. Changing the SSH port needs both a firewall rule and an SELinux port label. Static addressing without ipv4.method manual may be overwritten by DHCP. nmcli con mod edits the profile only; the live link changes after con up.
Rule of thumb: runtime plus --permanent plus --reload equals a persistent firewall rule.
Worked example: firewall-cmd --permanent --add-service=https && firewall-cmd --reload