Tools to automate windows server administration? Puppet? [closed]
We'd like to reduce the amount of time required to administer our Windows servers.
Pretty much every server our team has responsibility for runs some variant of Windows but for historical reasons the machines in our care are a mix of platforms: 64bit & 32bit variants of various Windows Editions. We have around 10 machines.
In particular, the kind of activities we'd like to be able to do more quickly include:
- Clean out temp-files & log-files
- Ad-hoc reboots
- Install & uninstall of windows packages
Nice to have (but not essential)
- Montor, start & stop Windows services
- Login / Logout
- Montor what an application on the box might be doing (e.g. a long-running excel sheet)
I've heard that Puppet is a tool that is designed to help with all kinds of sysadmin automation - is it likely that this tool could help with any of the above requirements? From what I can tell, most Puppet users are LINUX/UNIX based - is it even possible to run the puppet master-node on a Windows environment?
As a plan B - I could just write some python scripts which do the jobs listed above and call them from a Jenkins server.
I'm looking for your suggestions as to what might be the most time-effective way of cutting down our admin time.
Thanks
UPDATE0: Althaugh I work for a big company, this is a company which dislikes spending money on anything. Free & Open-source solutions are preferred. Whatever we use has to be legally licensed and cost nothing - software compliance is a big deal.
If neccecary we will find a decently powerful box and run Ubuntu in VirtualBox (or similar) to run the master node.
I find that I can do a ton with PowerShell. Monitoring, not so much (not that you couldn't with some simple Test-Connection and Test-Path type scripts) - but a lot of the other suggestions have good options for that. I might also suggest icinga.
PowerShell in my environment does backups (using the Microsoft Sync Framework SDK, 7zip SDK & AWS SDK), clears log folders on remote servers, dumps IIS logs into a database, does Admin Password rotation for security audit purposes, is used to stop and restart services & perform service account credential rotation.
I find that scheduling PowerShell scripts in my Windows environment is the most straightforward, time-saving, and inexpensive route to take.
If you do go with puppet, let me know how it goes. I've done some research and couldn't justify the setup/testing time.
if you already have 'normal' Windows server licenses (like the standard Windows server editions) then you are entitled to use Active Directory. You can administer a fleet of Windows servers with that using group policies and scripts. No extra expense.
For deploying software you can use http://wpkg.org, it is open source software. Once you get the hang of it it is very nice. You can of course also do it with group policies and scripts in your Active Directory. No gui though (not a problem for me, but it could be a problem in your environment.
As to monitoring, well, I really enjoy using http://www.opsview.com/community, which is open core. You still can buy support if you need it, but the main features are in the community edition. It is nagios done right. It does not work in Windows, though. You can monitor Windows servers with it, obviously. It runs perfectly fine as a virtual machine.
If you want to use something 'unixy', it is possible to run cfeninge under cygwin. You would need to get the sources and compile it first, but it is possible. Of course, cfengine itself has a learning curve of it own, but if your time costs nothing, then maybe it is an option ;-) . If your time does cost money, you can get the commercial native port for windows.
Heres what I use. These work well for me.
Spiceworks - Great for a Windows house to monitor lots of stuff. WSUS - Helps to simplify managing your updates. CFEngine/Puppet - These can do a lot of what you want, its a steep learning curve if you aren't comfortable scripting.
Depending on how many servers you have and what you foresee you may want to go with the MS options - System Center is not too lightweight but a very powerful system to manage servers.