Terraform is a great utility to manage your infrastructure and it’s often used to provision new infrastructure but it’s also pretty simple to start using it with existing infrastructure. Terraform just deals with managing the base infrastructure and then you layer on some provisioning steps with something like Ansible or Puppet.
You can utilize existing infrastructure within Terraform in a couple of different ways. If you just want to reference the existing infrastructure so that you can connect it to other resources that you’re managing you can utilize a Terraform data source. If you want to modify and fully manage existing infrastructure then you can utilize a Terraform resource. Whichever way you go about it though it’s best to go one step at a time instead of trying to integrate everything in one go.