Você precisa de algum tipo de gerenciamento de configuração. Fantoche, Chef, CFengine, um desses. A configuração básica de cada um é um pouco trivial, mas eles se tornam complexos muito rapidamente. Existem muitos How-To diferentes para cada um.
NÃO vá distro agnóstico. É bom poder usar distribuições diferentes, mas não espere compatibilidade. Diferentes distros têm versões diferentes de apache, php, mysql, etc., etc., etc. Para ser independente de distro, você precisa estar preparado para empacotar E manter esses pacotes para cada distribuição (para manter seu software crítico na mesma versão em distros .)
Eu sei que você está perguntando especificamente sobre seu ambiente de desenvolvimento aqui, mas também é importante manter seu ambiente de produção em sincronia com seu ambiente de desenvolvimento. Ninguém gosta de enviar código para o ambiente de produção apenas para descobrir que você está desenvolvendo uma versão de biblioteca que ainda não viu a luz do dia em produção. Manter os diferentes ambientes em sincronia é essencial para reduzir o tempo de inatividade.