Is there a best practice or tutorial for building infrastructure like one click installs?

February 28, 2019 329 views
One-Click Install Apps Deployment Configuration Management Ubuntu 18.04

I'm interested in creating infrastructure and configuration management as code.
Specifically, I have an application that I would like to configure on a LAMP stack and manage with an infrastructure/config management repo.
So, I would like to create the code that will:

Create infrastructure of load balancer, IPs, etc.
Create droplet(s) of certain size, location,etc.
Configure each operating system (users, firewall, etc)
Configure core software, Apache/NGinx, Mysql, PHP
Move application code to server and install

Is that Terraform, Chef/Puppet/Ansible, and bash scripts mingled with repos, OR
Building an image manually, then deploying as a snapshot (which I assume is similar to one click installs) ?

I would love to find a tutorial/guide that explained the best practices and steps for execution.

1 Answer

Hey friend,

This is definitely an interesting topic. I'm going to say that, in my opinion, there are no best practices here. I think you do what fits the way your mind works, and build off of that. I mean, take me for example. I manage a fleet of servers with bash scripts. Many of the people I work with would think I'm insane, it's just that it fits the way my mind works. I think it is important for you to find the answer that is most right for you. With that said, Terraform is definitely quite capable, and we do have a tutorial that can at least help you to move in the right direction:

Hope that helps!


by Mitchell Anicas
Terraform is a tool for building and managing infrastructure in an organized way. It can be used to manage DigitalOcean droplets and DNS entries, in addition to a large variety of services offered by other providers. It is controlled via an easy to use command-line interface, and can run from your desktop or a remote server. Terraform works by reading configuration files that describe the components that make up your application environment or datacenter...
Have another answer? Share your knowledge.