-1

I have been developing a web application which recently launched. Now I am continuing with improvements and want to create a staging server similar to the production server.

I know of the existence of tools like Ansible, Puppet and Chef, however scanning through the docs seems like they are a bit overkill for my simple usecase. Of course there is the solution of completely dockerizing the application, which would be a good thing.

But other than Dockerizing the application, what would you recommend for simply recreating a production server?

All it has to do is:

  • Install a few dependencies: PHP, MySQL, Nginx, Java, Elasticsearch
  • Add database, database user
  • Add a user
  • Configure SSH keys
  • Change SSH to authorization by keyfile only
  • Add a few firewall rules
Machiel
  • 105
  • 2
  • 3
    I actually love Ansible for stuff like this. A single text file with human-readable steps, and Vagrant supports it as a provisioner. – ceejayoz Nov 24 '14 at 23:55

2 Answers2

2

Actually puppet has a very easy to implement local config for small environments and is one of the best tools for this.

This page has info on a very very quick and easy setup.

http://projects.puppetlabs.com/projects/1/wiki/simplest_puppet_install_pattern

Craig
  • 585
  • 2
  • 13
0

Disclaimer - much opinion herein.

With that out of the way, my first question would be, "How big will this application become?" If the answer is >10 servers, I'd suggest biting the bullet and going the Puppet/Chef/Ansible route. If <10 servers, just reproduce manually looking at package manifests, and taking notes as you build your second server.

John
  • 9,070
  • 1
  • 29
  • 34