0

I am looking for an entity or a yaml file to install a Tibco Spotfire in a Windows OS via Apache Brooklyn.

Amazon Web Services (AWS) offers the installation of this service: https://aws.amazon.com/marketplace/pp/B00PB74KYY

This is my yaml file which install successfully in AWS a windows Server:

name: Windows_OS_Example
location: 
  jclouds:aws-ec2:
    region: eu-central-1
    identity: <identity>
    credential: <credential>
    imageNameRegex: Windows_Server-2012-R2_RTM-English-64Bit-Base
    hardwareId: m3.medium
    useJcloudsSshInit: false
    templateOptions: {mapNewVolumeToDeviceName: ["/dev/sda1", 100, true]}
services:
- type: brooklyn.entity.basic.VanillaWindowsProcess
  brooklyn.config:
    install.command: echo true
    customize.command: echo true
    launch.command: echo true
    stop.command: echo true
    checkRunning.command: echo true

I think that maybe,

  • there is another image (imageNameRegex) which has the Windows Server and the Spotfire together
  • or one Service or something similar which it could be added to jclouds spec in the yaml file to install a Spotfire after the Windows Server installation
  • or an example/workaround of a Java Entity to install the Spotfire

If somebody knows some of these solutions or another one, I really appreciate it.

Iker Aguayo
  • 3,980
  • 4
  • 37
  • 49

1 Answers1

1

The most common Brooklyn way is to write a Brooklyn entity that installs Spotfire. This could make use of Powershell scripts, or Chef recipes etc (e.g. over WinRM). I don't know of any such pre-existing entity in the Brooklyn community yet, and not sure how complex it is to automate the installation of Spotfire.

The simplest approach for you would be to use the AMI from the amazon marketplace, which is provided by TIBCO. You can replace imageNameRegex with the imageId (ensuring that the region of the AMI matches that of the location). Note you will first need to click "accept terms" under the manual launch of the marketplace VM (otherwise you will get a 401 unauthorized).

The example blueprint below opens the required ports (creating a new security group to do so). If you already have a security group that you want to use, then you can use securityGroups: nameOfMySecurityGroup.

Note that it is sneakily (!) using EmptySoftwareProcess. This expects an ssh'able location, but then is configured to do nothing with it (so giving it a Windows VM is fine). Unfortunately there isn't an equivalent "no-op entity" for Windows. The VanillaWindowsProcess expects to be able to use WinRM - see https://issues.apache.org/jira/browse/BROOKLYN-160.

name: Spotfire @ AWS
location: 
  jclouds:aws-ec2:
    region: eu-central-1
    imageId: eu-central-1/ami-08330d15
    hardwareId: m3.medium
    templateOptions: {mapNewVolumeToDeviceName: ["/dev/sda1", 100, true]}
    useJcloudsSshInit: false
    waitForWinRmAvailable: false
    waitForSshable: false
    osFamilyOverride: linux
services:
- type: brooklyn.entity.basic.EmptySoftwareProcess
  brooklyn.config:
    requiredOpenLoginPorts: [3389, 80, 8080]  
    onbox.base.dir.skipResolution: true
Aled Sage
  • 766
  • 7
  • 12
  • I already accepted the terms but I get always a 401 unauthorized with your blueprint. I do not know if it is important, but the free trial period of Spotfire is expired. Did you try it with success? – Iker Aguayo Aug 07 '15 at 07:58
  • I used this successfully (within the free trial period). Can you check if the AMI is usable in your account by creating a VM using the given marketplace AMI in your chosen region (e.g. using the AWS web-console or the AWS cli (https://aws.amazon.com/cli) to see if that also gives (the equivalent of) a 401? – Aled Sage Aug 10 '15 at 19:48
  • Aled Sage, I created it manually with the AMI and it works, but with brooklyn I get a 401. Maybe it is not possible, but it would be great if somebody could test with the free trial expired. – Iker Aguayo Aug 11 '15 at 07:26