0

I have started down the path of virtualizing my desktop to ease development...I am currently running VirtualBox with Debian running as a staging server...I am about to start the process of building a development server -- which I can then clone for each new user/developer on our team as required (instead of having them manually configure the various systems required).

However, I am curious whether a bash script might still be better...it's documentation of what and how everything has been configured (short of changing conf files, etc).

When I call upon debians apt-get install apache2 it knows how and where to configure everything so it just works...I would like something similar for Google App Engine...do debian packages invoke scripts to create default users, etc?

http://ubuntuportal.com/2011/12/install-and-configure-linux-server-using-a-bash-script-server-easy-install.html

Something like this sounds about what I want to do...is it common among Linux admins?

1
  • Assuming your workstation runs GNU/Linux, what you are aiming for can be achieved with Docker or Virsh, plus a bit of Bash scripting or Ansible for automation. Vagrant is also popular for this sort of thing.
    – user11574
    Jan 14, 2018 at 18:03

1 Answer 1

0

First thing is, doing it the deb package way is too much overkill. One will need to chase down all upstream package updates and then reapply all custom config to them, as well as taking care of pushing those packages to relevant machines (read: indefinite management hell until one quits the job). Or just ignore all upstream updates and take risk of security exploits / bug fix ommision. I have been on this path before and learnt such problem the hard way, and absolutely don't recommend it to anyone.

However, before writing script, one would better learn how the deb packages are done, since it would be unwise to clobber exising Debian config, and then have to manually intervene when deb update process askes whether to keep location config or use upstream one. For. Every. Machine.

For example, when creating virtual host under Aapche, it is advised to do it the "Debian way": place any virtual host config to additional file under /etc/apache2/sites-available/, and add symlink to /etc/apache2/sites-enabled/ for those virtual host need to be activated, instead of just stuff everything inside httpd.conf.

In addition, those configuration automation systems like chef and puppet are also overkills. They would be useful for deploying large scale systems, or when one have need for frequent deployment. They don't add up to the benefit for fire-and-forget cases like OP specified (setting up some developer machines).

4
  • Thanks for the input...much appreciated. I agree with doing things "The debian way" -- I put trust in the maintainers they know more about Debian than I do -- so I try my best to adhere to that. In this case however I am trying to get Google App Engine running in parallel (on a different port) and so I am stuck configuring everything by hand...curious whether I should script it or just configure it and keep the image stored somewhere. Sep 9, 2014 at 20:12
  • 1
    Usually a script only reflects what you have done on one machine and reapply it on other machines, so it's not much difference either way. However you would want to keep one thing in mind: if you're storing image and clone it for each developer, it would be necessary to at least change IP address, MAC address and host name for each cloned copy afterwards. Sep 9, 2014 at 20:17
  • Well thats what I am wondering...how would I force the user to change their user/pass, etc on first load... Sep 9, 2014 at 20:23
  • Can check out this Unix & Linux post Sep 9, 2014 at 20:32

Not the answer you're looking for? Browse other questions tagged .