Users running a puppet server can quickly find that module management is a significant issue. Modules can come from a variety of sources, including puppet forge, local git repos and if someone gets it working Boxen.
The answer to this problem is librarian-puppet. Using a file called PuppetFile that defines all or your modules, and it takes over your modules directory. Link to the project is below.