What are the tools you recommend for deploying / automating / organizing vm in the private cloud I manage a set of virtual servers in a private cloud on vSphere.

In this private cloud we have several sets of servers that host several web applications such as:

-Webpress web sites

-Phone applications in PHP

-Java web applications

-Alfresco

-Redmine

-Nagios

-Jenkins

-Odoo

And these applications are hosted in separate servers with an architecture that mixes several technologies:

-firewall

-reverse proxy / loadbalancer / SSL termination (Haproxy)

-caching servers

-web servers

-LDAP directory server

-Server to centralize the backup and send it to remote NAS

We have a problem of complexity to manage these applications as each application has a VM server that hosts it and another that contains its database and another that saves the data ..etc

What do you recommend to me as tools to make my life easier, on deployment, automation, maintenance, organization of applications, security

And on everything how to organize and save my configurations for each server ... etc

Do you recommend another architecture or solution?
The answer will depend on how much you want to change. I will describe how most larger companies solves this nowadays.

Containerize the apps. Run them in Docker containers. And use a container orchestration tool, like Kubernetes to manage deployment. But to do this your application must probably be redesigned to follow The Twelve factor methodology.

Both Amazon, Azure and Google have Kubernetes cloud services. If you want to continue with private cloud, OpenShift is the most popular Kubernetes-product.