powershell or msdeploy - deployment

I am running into a situation where I need to find a better approach to deploy web applications (asp.net to iis6..sorry ruby lovers :( and I was curious what some of you have done? I have seen products out there (Anthill?) but I am really looking for a way that my operations team can script a way to grab zip files (packaged code and assemblies), unzip, deploy to a farm. Anyone have any thoughts or solutions that they may be using?

Supposedly, MSDeploy ships with a PowerShell snapin and cmdlets... so you shouldn't have to choose.
IIS Team Blog: web deployment tool and PowerShell
MSDeploy + PowerShell Blog
The bad news is, I can't find that snapin on my system ;)

You mention a tool that Microsoft has in Beta, msdeploy.exe. Is that not a good choice for you?
On IIS6, the state of the art was adsutil.vbs, iisweb.vbs, iisback.vbs, iiscnfg.vbs, and iisext.vbs or learning an arcane script programming model for IIS.
I think msdeploy will be a large step up from wrapping those primitive utils with powershell and other scripts or batch files, with its "syncing" approach.

Also from VS 2010 standpoint, MSdeploy will be integrated into IDE so that would certainly be the direction to go... Check out Overview Post for Web Deployment in VS 2010.

Related

Automate Power BI Report/Dashboard Deployments

I have always done manual report publishing to PBI work-space and it has worked well. Let's me have better control over;
Publishing
Dashboarding
Collaborating
Securing
I have started a new piece of work and requirements are to have all the above or if not at least publish the reports using automated scripts.
I have googled and I haven't found anything that purely talks about automating using, say Powershell or any other method barring C#.
We have plans to use Powershell scripts to deploy Azure modules and was looking for something similar for PBI as well.
Would appreciate pointers to any script that I can customize and use or a tutorial that explains this process.
Cheers...
You can either use the PowerBI service to automate all of this, which is the referred way, recommended by Microsoft, as seen on https://community.powerbi.com/t5/Desktop/Automation-for-Power-BI-Desktop/td-p/332560, or you can use this python script by dubravcik: https://github.com/dubravcik/pbixrefresher-python

MSDeploy/web deploy/publish using Gulp in Visual Studio Code

I've switched to using Visual Studio Code and and am missing the ability to right-click and publish files.
I read here that a task runner can be used to build/deploy files...
Publish Web Deploy using VS Code
That answer only mentions Grunt and I cannot find any articles on how to do this with Gulp which I am already using. I've got as far as finding an article on how to hook up Gulp and MSbuild which I assume must be the first step.
However, I'm unsure about the deployment step as I don't know what the "publish" button in standard VS does. It seems to be using something called MSDeploy or "web deploy" and requires a bunch of publish settings, so presumably this can be done from gulp?
I know I must sound a bit clueless but I'm not really a Microsoft guy I'm a front-ender, just happen to be working with other people's .net projects occasionally. Any help would really be appreciated.
WebDeploy is the technology that VisualStudio uses for web deployments. WebDeploy uses MSDeploy behind the scenes. MSDeploy is capable of far more than just web app deployments. We use it for deploying Windows Services, Scheduled Tasks and SQL databases as well.
Here are details on you to use the MSDeploy commandline. The sync command is used most commonly for deployments.
You can use the gulp-mswebdeploy-package plugin to create a web deploy package as part of you gulp build task. you can the use the msdeploy command line to deploy the site.

What is the best way to automate windows azure deployment?

Newbie to automated azure deployment here! I have the happy task of automating our deployment to the cloud. I have also done some reading and discovered that the 2 main tools are MSbuild and Powershell. Please could anyone tell me why i would use one over the other or indeed if there are any better ways to automate the deployment. Keeping in mind that my main concern is performance and i need this deplymrnt to be as fast as possible.
Any insight would be most welcome.
I'm a fan of using PowerShell for deployments. It's pretty quick to set up and the script can be pretty straight forward.
MSBuild can be great too. I use MSBuild from TFS Team Build to kick off a PowerShell script to do the deployment. Works like a champ.
A good starting point would be http://blogs.msdn.com/b/tomholl/archive/2011/12/06/automated-build-and-deployment-with-windows-azure-sdk-1-6.aspx. This blog does a great job of showing you how to build and deploy with Team Build.
If you don't want/need the Team Build and MSBuild part, then just look at his PowerShell script. That covers the basics of getting a deployment from your dev environment to Windows Azure.
You should use Web Deploy, it only takes about a minute to deploy a fix. See these links
http://blogs.msdn.com/b/cloud/archive/2011/04/19/enabling-web-deploy-for-windows-azure-web-roles-with-visual-studio.aspx
http://channel9.msdn.com/Blogs/funkyonex/Speed-Up-Azure-Deployments-with-the-New-Web-Deployment-Feature
At SplendidCRM, we had a similar need to automate deployments to Azure, but as our need was to service our live customers, we had to develop using C#. We have been watching Azure for many years, but it was not until they provided a DNS service did it make sense to make the move. Using the Azure Resource Manager (ARM) libraries, we were able to automate VM creation, SQL database creation and DNS name creation. In addition to the Microsoft documentation for ARM, we found it particularly useful to be able to get the Microsoft source code for the PowerShell scripts that wrap ARM. This is because the documentation does not always provide a complete set of settings.
In the end, we decided to release the Azure deployment code as part of a new Ultimate edition that combines order and customer management with software deployment.

Can you write Windows services in Powershell

I have written a program in PowerShell that loops and checks stuff.
I would like to convert this into a Windows service.
I've created a Windows service (in Admin->Services) but I can't start it.
I'm pretty sure I'm missing the proper interface that the system needs to call into in order to start/stop/pause/etc the service.
I can find plenty of examples when it comes to doing it in VB/C#/MS-lang but nothing about how to do it using PowerShell. Is there any documentation (or preferably code examples) out there to help with this?
There are a few items at issue here:
Are you sure that you really need a service? I agree with the comments about using the scheduler for running periodic tasks. The scheduler can start tasks as Administrator.
Services call a special set of APIs to communicate with the Service Control Manager, so an ordinary program can't be used directly.
The Service Control Manager uses CreateProcessAsUser to start the service process, so you need to point the SCM to an executable binary, as opposed to a script.
If you can't use the scheduler (though I strongly encourage you to try), I suppose that you could write an executable binary that acts as a service. It would then execute PowerShell and your script on your behalf. I'm thinking something like the srvany program that used to be included with the Windows Server 2003 Resource Kit could bootstrap the service for you.
If you absolutly want to execute your PowerShell code into a service, I think you can write a C# service wrapper for PowerShell code.
You found examples of how to create a service with C#, and it's simple to call Powershell from C#. So I'am surprised that as small SrvAny oriented PowerShell does not exists yet.
My advice here, you better rewrite your code in C# as a service.
You can use the Compile Script into Service option of PowerGUI: http://documents.software.dell.com/DOC144271
I think what you are looking for is SrvAny.exe from Microsoft (I don't know that they support it any longer, but it has been around in the Windows 2000 Resource Kit for years. It will essentially turn just about any executable (.exe, .cmd, etc...) into a service. I have VBScripts running as quasi-services using Srvany.exe and it works on Windows 2003 and Windows 2008 (even 64 bit). It is a little limited in that it does not provide 100% service functionality (stopping a running script may be difficult) but if you now a bit about programming and the Windows environment you can adapt it to work pretty well (i.e. it will launch the program after server Restart/Startup as you would likely need from a service. There is some documentation with SrvAny.exe (although it can be a little obtuse and difficult to find). It is however Free and built for Windows so it should work for you.
I agree for simplicity that the Scheduled Task idea is worth thinking about as it is even more simplistic that srvany.exe
http://www.firedaemon.com/
Will allows you start littery anything as a service. There are also free alternatives to this application, that does the same.

Is Make-Shell deprecated?

A couple of years ago I used Make-shell to create custom shells with custom cmdlets.
Later I used snap-in technique and I forgot about that option.
Now I should deploy a set of custom cmdlets to a big set of customers, and it would be better to provide a zero-configuration solution; hence, I remembered the custom shell solution and I'm wondering if it is still the best solution in such scenario. It would be helpful also because my cmdlets use WF 4.0, so that the shell should run under latest framework version.
Anyway, I'm a bit scared about support for it: is it still working with Powershell 2.0 functionalities?
Are there alternative ways to easily deploy cmdlets on customers' machines?
Thank you
In PowerShell V2 the alternative are modules.
You can write script modules, binaries modules, manifest modules. Simple to deploy. They are deployed by a simple directory copy. And theoretically may be shared on the Network in a path writen in the environement variable PSModulePath.
According to this StackOverflow entry PowerShell (the engine) runs fine under .NET 4.0.
Make-shell is no longer provided with PowerShell, you can find it if you install the Windows SDK. This article present it as deprecated. But I'am not able to find the information on Microsoft site.
Not sure why you would use makeshell when you can create your own PowerShell "shell" called a host. Have you seen Joel Bennet's PoshConsole which uses .NET 4?
http://poshconsole.codeplex.com/
That said if you really want to use makeshell, I have more recent blog post where I built a new sqlps host with it even
http://sev17.com/2010/05/the-truth-about-sqlps-and-powershell-v2/