Zależy co chcesz osiągnąć i co ci jest potrzebne - stawianie serwera wszystkich usług od "zera" do stanu, który chcesz mieć da się zrobić (Puppet, Chef, PowerShell DSC), automatyczną konfigurację tych usług też możesz zrobić. BTW, vagrant (maszyny wirtualne w ogólności) jest fajny też o tyle, że zapewnia izolację usług - ale z uwagi na to, że to "ciężkie" rozwiązanie, mamy teraz Dockera.
Samo przenoszenie kodu przez GitHuba, jak to pokazujesz to jest proste, sam to robię, i dla mnie to wystarcza (aczkolwiek nie na GH) :)
Ale to żaden pożytek, skoro musisz się sam logować i sam zmieniać - możesz pomyśleć o git push do serwera od razu, albo hookach, że kiedy jest nowy commit do mastera do serwer sam się aktualizuje.