-2

I have been building my own Control Panel (mostly hobby) where I control hosting packages on my webservers, mailaccounts on my mailservers, DNS records etc. I also use this to monitor my servers.

I don't have a lot of servers so updating them is not that big a pain (now I just log in through SSH one by one). But if my platform grows bigger it would be cool to also manage updates through one single interface (listing available updates per server, selecting them and updating them). I've looked into Puppet but it is a big overkill for me.

Is there any way to build a system like this for myself? Just like webmin does it. Maybe this is not possible but I would like to know for sure. Also all my servers are Debian (Ubuntu) based). Because most of my servers are Ubuntu based I looked into Canonical's Landscape but I think that is way to overpriced and it would totally kill my margins.

Jona Koudijs
  • 75
  • 3
  • 10
  • Puppet is overkill, so you're building **an entire GUI control panel** for yourself? That seems odd. Look into [Ansible](http://www.ansibleworks.com/) - it had all the capabilities of puppet, but is **much** more simple to get started with, and it doesn't require an agent to be installed on each managed system. Seriously - don't homebrew this. There are plenty of very viable options that have been well-tested, well-secured, etc. – EEAA Nov 21 '13 at 13:40
  • To clarify what you're doing...this is a mostly hobby interface you are putting together, and you're looking into adding the ability to update your monitored servers from said interface. But you talk about killing your margins...are these servers used as a business? So the interface is a hobby project integrated into your business systems? – Bart Silverstrim Nov 21 '13 at 14:14
  • I know it sounds a bit odd. But yeah that is what I am doing. It's mostly hobby and earning something on the side. Most of the people who are hosted on my servers are friends/family. I have learned a great deal about make something like this manageble. I am not thinking about making a lot of money but I also don't want to have to pay extra just so I can make this happen. I was just wondering if there was something (application/script) I might have overlooked that did just this. Ansible looks like a nice product I will definitely check it out! – Jona Koudijs Nov 21 '13 at 14:24

1 Answers1

0

There are many possible approaches to this... the first one coming to mind would be using ssh with key-based authentication, with a dedicated user account on each machine, configured in "sudoers" to be permitted access to the necessary commands without a password.

With ssh and keys, a mechanized process "here" can run an automated process "there" by connecting "there" over ssh, executing the command, and returning the output streams and exit statuses. Simple illustration:

$ ssh otherserver 'ls -l'

...will connect to the otherserver, show you a listing of the files in your home directory on the remote system, disconnect, and then return you to your local (not remote) prompt.

If you have key-based authentication, no password is needed.

If the remote process has prompts that must be answered, one way to accomplish that is with expect ... which is sort of a programmimg language designed for managing things where you need to "expect this" then "send that" and can handle timeouts for you.

Michael - sqlbot
  • 21,988
  • 1
  • 57
  • 81
  • Thank you Michael for your answer. That should probably speed some things up thanks! I was kind of looking like something what has the same functionality like Canonical's Landscape or Webmin's updating system. They control specific parts of the operating system like updates. Maybe I could use some python and something like Expect to accomplish this. – Jona Koudijs Nov 21 '13 at 13:51