For complex environments, a staged migration approach may be safer.
For in place upgrade ; you have to be aligned with EBS, GRID and RDBMS.. (in terms of compatability)
Also check out the tool called Leapp ->
https://blogs.oracle.com/linux/post/leapp-utility-supports-oracle-linux-7-to-oracle-linux-8-upgrades-for-oracle-database-19c