install Web Deploy tool using puppet - puppet

I am automating the deployment of our web application build using puppet.
I have added scripts for installing .Net and configuring IIS web server in the .pp file . I also need to install Microsoft WebDeployment tool 2.0 as the deployment command uses msdeploy. can you help me with the puppet script required to install Microsoft WebDeployment tool 2.0

There are many ways to install anything, especially on Windows. One way to make life easier is to use chocolatey as a package manager. You could then use the following resource to install Web Deploy 2.x:
package { 'msdeploy':
provider => 'chocolatey',
ensure => latest
}

Related

How to install exe file in Azure DevOps?

I have desktop application and i need install exe file in Azure Pipeline. How i can install exe file in my azure pipeline?
In general, you have a couple options: either install the software each time you run your pipeline (in a step), or build a custom agent with the software pre-installed. If your application is small and can be installed silently using the command line, installing it on the hosted agent each time is probably fine.
If your application is large, requires a GUI, or can't be silently installed, building a custom agent is likely the best option. See: https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/v2-windows?view=azure-devops

How to install dependent binaries on Azure App Service with Linux?

I have a spring boot application that I am running on Azure App Service (Linux). My application has a dependency on a binary and needs it to be present on the system. How do I install it on my App service?
I tried the following two options:
Did ssh via Kudu and installed the package ($ apk add package). But the changes are not persisted beyond /home. The dependencies were installed in other folders and when the app service was re-deployed all those dependencies were gone
Used the post deployment hook to run the command "$ apk add package" to install once the deployment finishes. This script is run as can be seen from the custom log statements but still i do not see the installed package. Even when is use apt-get it says "unable to lock administration directory"
Using a statically compiled binary is not an option for me since that has its own issues.
Thanks
For the Tomcat, Java SE and WildFly apps on App Service Linux, you can create a file at /home/startup.sh and use it to initialize the container in any way you want (Example: you can install the required packages using this script).
App Service Linux checks for the presence of /home/startup.sh at the time of startup. If it exists, it is executed. This provides web app developers with an extension point which can be used to perform necessary customization during startup, like installing necessary packages during container startup.
I think this is a common problem with Linux on Azure.
I recommend having a step back and consider one of the following options.
Run your application in a container that has all the dependencies
you are looking for.
Run your application on Linux VM IaaS instead
of Azure App Service (Linux),PaaS.
Run your application on Windows OS PaaS and add extension for your dependency.(Most likely you won't run into this problem when using Windows OS)
While I understand that none of them might be acceptable by you, but I have not found a solution for that problem in those specific circumstances.

NodeJS App Deployment via Azure DevOps 32bit issue

i am using Azure DevOps Build & Release to build my node.js react app that uses node-sass. So the Build is using the Node.js Tool Installer to specify the node.js version and then runs the npm install command. It all runs with a hosted agent that requires node.js and npm. The azure app service which runs the application is a default windows site.
After that i want to deploy it via Azure DevOps Release. I am using the Task "App Service Deploy" to deploy it. If i don't specify a deployment method it uses "Run from Package" and everything is fine. (Except that i cannot make changes in the root folder, but thats the concept of the run from package). If i change it to deploy via "Zip Deploy" i get the following error:
Error: Missing binding
D:\local\Temp\zipdeploy\extracted\node_modules\node-sass\vendor\win32-ia32-57\binding.node
Node Sass could not find a binding for your current environment:
Windows 32-bit with Node.js 8.x Found bindings for the following
environments: Windows 64-bit with Node.js 8.x
So i got this one already in my dev environment, but there i could get a simple workaround - install and use the 32bit version of node.js and then deploy it to azure (via VS Code extension). Now it is not possible to use 32bit nodejs in the Azure DevOps Build task as i saw as a limitation of the windows app services in azure.
How can i get Azure DevOps to use 32 bit when using npm install? Is the only possible way to switch to a linux app service (which runs 64bit) in azure?
Thanks!

How create build .net with MSBuild in Jenkins on Server Linux

I tried to configure jenkins that is mounted on a server with linux, is it possible to install msbuild.exe to compile a .NET application? or is it necessary for Jenkins to be on a windows server?
The .NET Core SDK can be installed on Linux and comes with a tool called dotnet which can work pretty similar to MSBuild when you run it as dotnet build.
It depends on what purpose. If it is to study, I recommend installing Jenkins on a Windows Server, then installing the .Net Framework SDK that you want to use.
If it is a productive environment, I recommend installing Jenkins Master on Linux Server and a Slave on Windows Server, then installing the .Net Framework SDK that you want to use. So you do not overload the Jenkins as you compile.
If you look at the version of the .Net Framework SDK, because if any font needs something specific, you will have to install the Microsoft Windows SDK.
For configuration see this link.

Installing python on Azure App Service -- which tools can I use?

I created an App Service on Linux in Azure portal, hoping to use if as a managed Node.js server. A simple test app works but when coming to install bip32, or other web3 related packages I get the following error:
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
The obvious next step is to install Python, but the machine doesn't have any of the usual tools used for installing. No apt-get. No yum.
Any other options I could use for installing packages?
For your issue, you could have something misunderstand. The Azure Web App Service just allow you to manage your application, do not allow you to change the running environment in the Service Plan. For example, like that, you want to install tools such as apt and npm in it.
Azure provides some built-in runtime to Web App. Just like Node.js x, Python x, etc. You can choose an appropriate one to use. Even if there is no one suitable for you, you can make your application into a Docker image and create the Web App from it. Of curse, you should make sure your application can work well in the image and you can install the tools which you need. For more details, see Use a custom Docker image for Web App for Containers. Hope this will be helpful to you.

Resources