I'm having trouble establishing a Ubuntu-LAMP environment with continuous integration - I feel lost from the different solutions out there and time and again I fear that my vanilla-Bash Ubuntu-LAMP establishment-program of four different scripts (aimed for maximally-self-managed hosting platforms like DigitalOcean or Linode) will quickly become outdated:
That some or all of the entire system getting vulnerable/unsupported and then I'll have to create another environment with a newer operating system with newer server environment (web/email) and moving manually all web applications and their data to this new environment, which is hard and consuming when I work alone maintaining my own personal web applications.
VAD (Vagrant-Ansible-Docker)
From all my reading so far I get the impression that a VAD stack (Vagrant-Ansible-Docker) is the only way for me to avoid the problematic state I described above (if I want a VPS environment and not just shared-server hosting platform):
- Release updates and upgrades for my OS (Ubuntu 16.04 to 18.04 to 20.04 - to whatever version; and
ufw
but without changing myufw
directives likeufw --force enable && ufw allow 22,25,80,443
). - Updates and upgrades for all my packages (Apache 2.4-3.4 and so forth;
unattended-upgrades curl wget zip unzip mysql php php-{cli,curl,mbstring,mcrypt,gd} python-certbot-apache ssmtp
, Composer). - Docker images will help me automate creation of bare-metal web applications that I would then change credentially to create new web applications.
This way, for example, Ubuntu will go from 16.04 to 18.04 directly and the Apache package will go from 2 to 3 and all my Apache virtual hosts for Apache 2.4 virtual-host files will automatically transduce into 3.x.x format.
This sounds like a sweet dream with the only disadvantage of performance (I'm not sure a 5$ or even 20$ cloud-partition could handle such stack).
My question
Is my description accurate and if so - what is the common solution that combines these three that I should use (assuming there is some combo which is an industry-standard)?
On the top of such VAD solution, I'll execute much less vanilla-Bash directives (about 25 lines instead 150-200 lines) which will be much easier for me to maintain myself, at least by means of package-management.