6

I need to deploy PHP and Python code and the appropriate environment (web server, db server) to remote Windows systems, and I don't know what toolchain would be the equivalent to ssh, scp, bash and the like.

So, basically, what I need to be able to do is the following:

  • access remote Windows with the appropriate privileges in a secure manner, like I routinely do with ssh (I don't even know whether that would be a text or graphic interface on Windows).
  • remotely install software: Apache or IIS, MySQL or Postgres, Python or PHP
  • copy files from remote (the application we're deploying)
  • remotely configure the machine to run regular tasks (e. g. checking for updates to the application)
  • automate tasks like downloading files from a designated place

The main question is probably how I get onto the machine securely in the first place, and then the rest is general Windows admin knowledge, which probably is too broad a scope to fit into one question.

I have years of experience with maintaining Linux boxes and I have used tools of varying sophistication on those, ranging from plain scping of PHP files to deployment of Java application containers and even full VMs with Vagrant.

On Windows, I'm a complete noob, and I don't even know where to start. I have installed Apache, MySQL , PHP on a desktop machine maybe twice in my life, that's about it.

Bonus points for things that work from a Linux machine at my end, but I could run a VM and do everything from there.

5
  • Please provide more details, what DB and web servers are you going to use exactly? I believe Apache for Windows is not suitable for even moderate loads so you should probably consider to use IIS.
    – Alex
    Aug 15, 2012 at 10:17
  • Why windows? why not linux? I don't see anything you are installing specific to windows -- no IIS, no MSSQL ..
    – Chida
    Aug 15, 2012 at 13:30
  • @Chida - I don't get to choose the OS and the machine(s) are not only used for what I put on them. Aug 15, 2012 at 14:23
  • @John - I'll edit my question and try to be more precise. Aug 15, 2012 at 14:23
  • I think you ahve to define that first. Because for me that is SCOM (System Center Operations Manager) + SCCM (System Center Configuration Manager).
    – TomTom
    Jan 7, 2013 at 8:55

6 Answers 6

3

PowerShell is the preeminent scripting language for Windows administration, local or remote.

There are some tools available for calling and using PowerShell from *nix, like Pash. I've never used any of them so I can't speak to their abilities, completeness, or polish.

8
  • Sounds promisingly shell-ish to this Linux guy. :) Aug 15, 2012 at 15:40
  • While powershell is an excellent tool for the Windows admin, it still needs a secure connection, and installing software strictly by means of Powershell (without the gui desktop) would be unnecessarily difficult. You need really need RDP to fully admin a Windows box.
    – Bob
    Sep 6, 2012 at 16:13
  • 1
    @Bob PowerShell has secure remote connection capabilities. RDP may be handy for certain situations. But to all SysAdmins who think RDP is the holy grail of remote administration these days, I look forward to replacing you with a very small shell script. Then value-add billing your previous employer, of course. =]
    – Chris S
    Sep 6, 2012 at 17:04
  • @ChrisS I use Powershell extensively, and I don't think I'd be sane without it. A couple points: while there is a paid product that enables an SSH-like experience from within Powershell (something like PowerShell Server from /N software) it's not actually Powershell, it's an add-on. And I pity the poor soul who tries to install and configure SQL Server or IIS or whatever strictly through the Powershell interface. It may be possible in theory, but it's going to be very challenging and very frustrating. Especially for someone new to Windows. Keeping it real, you need RDP, sooner or later.
    – Bob
    Sep 6, 2012 at 17:17
  • 1
    What about the real tools for large boys? SC - SCOM, SCCM?
    – TomTom
    Jan 7, 2013 at 8:56
1

Secure remote access: OpenVPN + RDP? If you are brave enough, you could install Cygwin + OpenSSH server.

You may want to look at puppet for windows which should help you with a lot of automation and software installation (msi). I believe the puppetmaster has to be on linux and a puppet agent will run on windows.

1
  • No cygwin - I have had my share of trouble with that - but I'll consider the other hints. Thanks! Aug 15, 2012 at 15:38
1

Hm, it is funny noone talks about the heavies here.

For me it is SCOM, SCCM - System Center Operations and Configuration Manager.

Installs, performance tracking, notification on problems - all in there.

1
  • SCOM and more recently SCCM 2012 SP1 manages linux as well.
    – MDMoore313
    Jan 30, 2013 at 14:21
0

IIS runs PHP and most other FastCGI apps pretty well if an ISAPI filter exists for it. That being said, I would almost look at using the Web Farm Framework, a module for IIS, as well as maybe the Web Deploy toolset.

Essentially you setup a master server that you configure the way you want it from IIS settings to MySQL and PHP and then simply configure IIS to serve pages for that application. Once this is all setup you can simply turn on other "secondary" servers in the farm and they will automatically sync all of the application and server settings.

In addition if a Web Platform Installer package exists for certain components like PHP and MySQL it will automatically install and patch those for you as well. Last but not least the system will ensure that each machine also has the identical level of Windows Updates which could throw things off here and there.

One of the cool things about it is like @ChrisS mentions, PowerShell is the scripting environment for Windows, and to that extent the Web Farm Framework also has PowerShell cmdlets to ease remote administration of the service itself.

There are a whole bunch of help docs here. Note the current verson is 2.2

0

I am not sure if it would be a good fit, but Nagois might work for you too. I know they have some remote deployment tools, along side with monitoring.

-1

Essentially, you want to run RDP over a VPN. So establish a vpn to the box by whatever means (hamachi/open vpn etc.) and then run an RDP client to connect to the box.

For my purposes I use a web gateway to establish the vpn (Adito) and then run an RDP app that I have published inside the gateway.

While powershell is an excellent tool for the Windows admin, it still needs a secure connection, and installing software strictly by means of Powershell (without the gui desktop) would be unnecessarily difficult.

1
  • 2
    RDP over VPN seem needlessly complicated when RDP over TS Gateway already provides secured logins, encryption, enhanced policies, and flexibility. PowerShell does have secure connection capabilities. Why install software when you can image machines or use virtual applications? And all of this has been covered in other answers.
    – Chris S
    Sep 6, 2012 at 17:07

You must log in to answer this question.

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