Is there a simpler way to deploy to WebSphere? - ant

I have seen this question about deploying to WebSphere using the WAS ant tasks.
Is there a simpler way to do this? In the past I have deployed to Tomcat by dropping a war file into a directory. I was hoping there would be a similar mechanism for WebSphere that doesn't involve calling the IBM libraries or rely on RAD to be installed on your workstation.

Just a hint: if you activate "Log command assistance commands" in System Administration / Console preferences, you will get a logfile in the server log directory that contains the jython scripts for all actions you did on the console. So you can just deploy your stuff per console the first time, and then grab the commands for later and feed them into wsadmin.bat -lang jython "thecommandscomehere" for the next deployment.

There is the concept of WebSphere Rapid Deployment. It's supposed to be the same experience as what you describe for Tomcat.

One way to do it could be using Jython or jacl scripts. See those samples at IBM site.
[EDIT] Especially the wsadminlib.py.zip download near the bottom of the page contains a huge set of examples and helper functions to get you started.

WAS does provide a client jar containing some custom ant tasks. However they seem to be extremely bugy and dont work with remote servers.
IBM ANT TASK Javadoc
Netbeans also has support for was 6 and 6.1 but this again is still quite buggy, however it can be useful for generating some the bindings files etc.

Related

TFS Release Task to Deploy a Web Deploy Package to specific directory

I've been digging for hours and i haven't been able to find what i would think is a pretty common scenario.
I am attempting to deploy a Web Deploy Package to my existing Web Site\Web App via a TFS Release. The location of my existing Web Apps is mapped to a different drive. My source code on my web server is not in C:\inetpub lets say its in D:\MyFiles.
I'm open to using any TFS task to do this. It seems like my two options are:
Run Batch Script - point to myApp.deploy.cmd
WinRm IIS Web App Deployment
I've seen lots of examples of overriding the computer name via the setParamater file but I have not seen one example of how to set the target path for the package?
Again, i want to deploy a web package via a TFS release to D:\MyFiles. I've created the package and it deploys locally to c:inetpub, I would assume if I can get it to deploy to a specified Target location locally then when I run that same. CMD file from TFS release it will use that location on the deploy to server.
UPDATE:
So... this just started working. I'm not sure what the issue was but the WinRm Task didn't do the deploy on Friday but did the deploy on Monday. I'm thinking it may have been related to a FQDN for the server path? Honestly I'm not sure what fixed it or what to do with this post? The answer below by #Andy may help someone so I won't delete it. That link is a good one and it showed me how to perform IIS configuration with Web Deploy.
Thanks in advance,
Greg
Seems you are trying to change the physical path of an IIS site/app using MSDeploy.
Just try adding an additional command (appcmd) to the MSDeploy package manifest to change the physical path of the IIS site during the deployment:
<runcommand path="%windir%\system32\inetsrv\appcmd set app /app.name:"Default Web Site/app12" /[path='/'].physicalPath:C:\temp\app12" waitInterval="5000"/>
Refer to this article for details:
WebDeploy/MSDeploy Quick TIP: Change IIS Site/APP Physical Path with MSDeploy

How to bundle Electron application and windows service together?

I am very new with electron application. I need some help with election installation.
I have an Electron desktop application and a windows service.
I can start and stop my pre installed services by using sudo-prompt package.
I am creating windows installer by using electron-winstaller package.
But I want to bundle my windows service along with my electron application. My requirement is when I install my electron package then it should install my service also, when I uninstall my package then that service should be uninstalled.
Please help me out. Any clue, Any suggestions will be appreciated.
If you think this should be achieved with something else then please do suggest me.
Electron's windows installer packager strikes me a specific case tool that would likely hit limitations in scenarios like this. I would use a general case tool instead such as the Free and Open Source Windows Installer XML Toolset aka WiX. I would also use with that another FOSS application called Industrial Strength Windows Installer XML aka IsWiX.
WiX allows you to describe and build MSI databases using an XML/XSD domain specific language. It supports MSBuild for easy integration with your CI/CD pipeline. IsWiX* is a set of project templates and graphical designers that provide an opinionated project structuring (scaffolding) and greatly speeds up the learning curve and implementation. For example, this installer you describe could be done without writing a single line of XML.
For more information see: https://github.com/iswix-llc/iswix-tutorials
The desktop-application and windows-service tutorials should** show you everything you need to know to author this installer. Basically follow the desktop-application all the way through and then skip to the final portion of the windows-service tutorial where you define the windows service.
I'm the maintainer of IsWiX
** This assumes your service exe is a proper Windows service that interfaces with the windows service control manager. If it's really just a console app that runs as a service you will need to include a program such as srvany.exe. This will require one line of hand crafted XML to extended the service definition in the registry with the proper command line value to be passed to your exe. An example can be found here: Wix installer to replace INSTSRV and SRVANY for user defined service installation

Apache Service Mix Deployment Approaches

Folks,
We have got an enterprise application which uses Apache Service Mix for deployment. The application consists of various services and each is created as separate Maven project (bundle).During development, we are actually building each service separately and in-order to deploy it,its being put in the deploy folder. Also, we have to uninstall the bundle from the container(say; karaf) and then install it again from the console to bring the new changes in effect. This is fine during the development phase.
Now we want to deploy the code to an UAT environment (Amazon EC2) for the client to do the testing. We are now confused about how to deploy the bundles to the remote environment. Do we have a standard approach for CI using Jenkins(or some other tool) to automate the build and deploy process , so that someone who has no knowledge about the bundles(SMX) can deploy the code. We are using Github for source code management.
We have searched a lot in this regard and couldn't find any resources which provide some leads/hints on this.
Any help/tips is highly appreciated. If you need more info, I can give more details.
~Ragesh
We do have exactly similar setup and we use the Jenkins to build and let the Sysadmin to copy the bundles to one server and then he enables the rsync to rest of the servers.
Remember, always deploy the dependent bundle first and then remaining ..
Since we have this dependency ,we can't go automating this process.

Customizing web deploy publish procedure

I'm investigating the powerful of WebDeploy based on Scott Hanselman's post. I was using Web Setup Project before, and trying to find an analog for Custom Actions in Web Deploy.
Generally, is there a place in WebDeploy procedure I could integrate into, and execute some particular c# code that could perform some install/upgrade actions?
If you use the command-line version of Web Deploy, you can leverage the runCommand provider or the preSync or postSync command line switches to run an executable on the destination server as part of a Web Deploy operation. For more information, see my answer to the StackOverflow question Use MSDeploy to copy an executable to a server and to then run same.

Automating installation in Websphere Application server

I'm using IBM RAD as the IDE and Websphere Application Server v6.0 to deploy applications.
I'm working on a EJB application and build it using ANT and then deploy it using the Admin Console of the server. For every change this deploying is time consuming. 'Run on server' on the EAR file does not work sometimes.
Is it possible to automate the installation of the ear file too?
When I build the ear file, I should be able to deploy it to the server too from command line or from ant script.
Can you please help me with your suggestions?
Try the Rapid Deployment (WRD) and see if that helps you.
Pretty much what you do is drop your EAR into a designated directory that WRD monitors and it takes care of the installation,uninstallation and updates.
The best alternative is to have the build script that does the installation using ws_ant tasks. For a start i would suggest you try this approach too and see if that is useful.
HTH
Manglu
First, my usual pattern using RAD is to have a WebSphere Test environment set up and "run with resources in workspace". This is quick, requires no extra build or deploy steps, no routine use of the admin console.
Sometimes one does need to make sure that everything on the server is tidied up - then I remove the projects from the server (in RAD) and also make sure they are stopped and deleted in the admin console.
Second, everything you do in the admin console can be scripted using the command line tool wsadmin. So yes you can deploy your ear files automatically. If you are intending to do that I recommend that you create a new Server profile, do not run it from inside RAD - just to avoid confusion.
I only use stand alone servers for specialised testing, it's clearly more work that the simple save and run made possible when running on a test server with resources in workspace.
If you find the native RAD approach unreliable I suggest you add some mroe questions ... it does work in general.
Agreed, keep the setup simple as possible and create the project from scratch in RAD to make sure it deploys ok.
Bit of a pain as you will then need to maintain a separate ant script but RAD does work well in general.
Karl
It's pretty easy to write a wsadmin script that will update/redeploy your application after you rebuild.
-Rick

Resources