You can use AMP to deploy and manage the metering service using this blueprint:
location: ibm-bluebox-lon-vpn services: - type: org.apache.brooklyn.entity.database.mysql.MySqlNode name: MySqlNode id: mysql-node brooklyn.initializers: - type: org.apache.brooklyn.core.sensor.StaticSensor brooklyn.config: name: microservice.sql.user static.value: micro-user - type: org.apache.brooklyn.core.sensor.StaticSensor brooklyn.config: name: microservice.sql.password static.value: kjr67GHSGDH2jvnna - type: org.apache.brooklyn.core.sensor.StaticSensor brooklyn.config: name: microservice.host static.value: $brooklyn:component("microservice").attributeWhenReady("host.address") brooklyn.config: pre.install.command: > which yum && sudo yum update -y which apt-get && sudo apt-get update -y && sudo apt-get upgrade -y creationScriptTemplateUrl: #link to freemarker creation template (I.E. creation_script.mysql.ftl) provisioning.properties: minRam: 4gb minCores: 4 minDisk: 100gb - type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess id: microservice name: microservice brooklyn.initializers: - type: org.apache.brooklyn.core.sensor.StaticSensor brooklyn.config: name: microservice.admin.user static.value: admin - type: org.apache.brooklyn.core.sensor.StaticSensor brooklyn.config: name: microservice.admin.password static.value: mypassword brooklyn.config: download.url: #link to JAR. E.G. artifactory link install.command: | which java || \ { sudo apt-get update && sudo apt-get -y install openjdk-7-jre ; } || \ { sudo yum update && sudo yum install java-1.7.0-openjdk ; } || \ { echo WARNING: cannot install Java && exit 1 ; } #metering-microservice-1.0.jar to be replaced by name of artifact downloaded by download.url statement launch.command: | $brooklyn:formatString(" nohup java -jar metering-microservice-1.0.jar \\ --spring.datasource.username=%s \\ --spring.datasource.password=%s \\ --spring.datasource.url=jdbc:%smydb \\ --security.user.name=%s \\ --security.user.password=%s & ", $brooklyn:component("mysql-node").attributeWhenReady("microservice.sql.user"), $brooklyn:component("mysql-node").attributeWhenReady("microservice.sql.password"), $brooklyn:component("mysql-node").attributeWhenReady("datastore.url"), attributeWhenReady("microservice.admin.user"), attributeWhenReady("microservice.admin.password") ) checkRunning.command: | $brooklyn:formatString("counter=`wget -T 15 -q -O- %s:8080/health --http-user=%s --http-password=%s | grep -c \"status.:.UP\"`; if [ $counter -eq 0 ]; then exit 1; fi", $brooklyn:attributeWhenReady("host.address"), attributeWhenReady("microservice.admin.user"), attributeWhenReady("microservice.admin.password") ) provisioning.properties: minRam: 4gb minCores: 4 minDisk: 5gb
Download the YAML file