Copy installed modules and configuration to new installation
Question: Installing all the modules in new installation

Answer: Yes add all modules to root composer.json file so only have to run composer install or later composer update 

Question: Configuration migrate

Answer:
Configure your sites sync folder 'in settings.php' and run drush cex to export the current sites config (then you can git commit the changes and deploy to new environment) and run drush cim on new environment to import changes.

Question: Data migrate

Posable Answers:
now this one can get kinda tricky and have a lot of options for this ... which depends largely on what you want to keep / what you don't.

Simple option: copy database - good old fashion export database and then import it.

Content migration option: look in to https://www.drupal.org/project/default_content_deploy  its like config import/export only for entity data (which again can be commited to repo and deployed) eg drush default-content-deploy:export and  drush default-content-deploy:import

use normal migrate api option.
use a seed database option.

really should just have all the stuff you need in a git repo then you just tag the release ... push to the environment and run some commands or have some automated scripts to run the commands for you
look in to stuff like...
https://chromatichq.com/blog/drupal-8-deployments-jenkins-github-slack
and https://hernani.pt/automatic-update-drupal8