Your debug log indicates that you run your VM on a Microsoft hypervisor, and it shows that your CentOS VM is correctly making use of a static IP:
*** [ DIAGNOSING ]: Network interfaces and addresses
(…)
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
altname enx00<redacted>
inet 192.168.0.4/24 brd 192.168.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
Pi-hole's DHCP server is enabled, but the debug log does not show any DHCP replies on its host's eth0 link:
*** [ DIAGNOSING ]: Discovering active DHCP servers (takes 6 seconds)
Scanning all your interfaces for DHCP servers and IPv6 routers
Timeout: 6 seconds
No answer on eth0
By chance, the debug log also contains the respective complete DHCP exchange (even a detailed one, since dhcp.logging is enabled):
-----tail of pihole.log------
(…)
Sep 27 18:46:51 dnsmasq-dhcp[917]: 262836907 available DHCP range: 192.168.0.214 -- 192.168.0.245
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 DHCPDISCOVER(eth0) 00:<redacted>c
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 tags: eth0
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 DHCPOFFER(eth0) 192.168.0.242 00:<redacted>c
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 next server: 192.168.0.4
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 broadcast response
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 sent size: 1 option: 53 message-type 2
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 sent size: 4 option: 54 server-identifier 192.168.0.4
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 sent size: 4 option: 51 lease-time 14d
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 sent size: 4 option: 58 T1 7d
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 sent size: 4 option: 59 T2 12d6h
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 sent size: 4 option: 1 netmask 255.255.255.0
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 sent size: 4 option: 28 broadcast 192.168.0.255
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 sent size: 4 option: 6 dns-server 192.168.0.4
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 sent size: 3 option: 15 domain-name lan
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 sent size: 4 option: 42 ntp-server 192.168.0.4
Sep 27 18:46:54 dnsmasq-dhcp[917]: 262836907 sent size: 4 option: 3 router 192.168.0.1
This demonstrates that Pi-hole's DHCP server has received the debug log triggered client's DHCPDISCOVER broadcast, and it has correcly sent a corresponding DHCPOFFER.
However, the debug log client did not react on that, which would suggest that it has never received that DHCPOFFER (which is what above No answer on eth0 confirms).
This would indicate that something has interfered with the DHCPOFFER.
As those are same-link exchanges on a virtual NIC provided by your VM, it would be interesting to see an actual DHCP exchange with a real network client, specifically one that is neither your VM host nor a VM hosted by it.
You could extract those DHCP exchanges from your log, e.g.
sudo grep -e "Sep 29 08:2.*dnsmasq-dhcp" /var/log/pihole.log > extract.log
Adopt the time part Sep 29 08:2 as required - above example would extract all DHCP lines logged from Sep 29 08:20:00 until Sep 29 08:29:59 to a file extract.log.
You can then upload that file to share its token, e.g. via:
cat extract.log | pihole tricorder
Afterwards, please share the token.