@@yunusfaraz4990 You're right. One possible solution is to make use of a machine "Image" (example - Amazon Machine Image in AWS). This is like a template that you use to provision all new servers. This way, they all come with pre-installed agents. Another way is to programmatically SSH into these machines and run installation commands for the agent. The rest can be taken care of by Chef/Ansible
That's a great start. Another thing to think about is - would all these servers need to run some agent for Ansible to work? If yes, that too would need to be installed first. Or is there another way Ansible connects
Good answer! Keep in mind that terraform is very good at provisioning infrastructure and although we can run shell commands & scripts in machines using it, it is not optimised for configuring machines. So maybe, combining Terraform with some other tool could do the complete magic