/appfirst-boshrelease

AppFirst BOSH Release (ABR)

Primary LanguageShellOtherNOASSERTION

BOSH Release for appfirst

This AppFirst BOSH Release is intended on being a collocated bosh release to be collocated with all other BOSH releases deployed by BOSH.

AppFirst is an exteremly low overhead collection agent.

Maintainer

Wayne E. Seguin wayneeseguin@gmail.com

License

MIT, see LICENSE file.

Usage: Configuration & Delpoyment

We will walk through an example of using with Cloud Foundry.

To use this bosh release, first upload it to your bosh:

bosh target $BOSH_HOST
git clone https://github.com/wayneeseguin/appfirst-boshrelease.git
cd appfirst-boshrelease
bosh upload release releases/appfirst-1.yml

Next download your manifest file for the deployment targeted so we can edit it and add the appfirst release.

mkdir -p ~/workspace/manifests
bosh download manifest cf-staging ~/workspace/manifests/cf-staging.yml
bosh deployment ~/workspace/manifests/cf-staging.yml

Edit the manifest file you downloaded (~/workspace/manifests/cf-staging.yml) and add settings as follows.

Add appfirst to the list of known releases:

releases:
#...
- name: appfirst
  version: latest

For consistency also add appfirst to the releases: section under meta:

meta:
  environment: cf-staging
  releases:
  - name: cf
    version: latest
  - name: appfirst
    version: latest

Add appfirst properties including your tenant id, for this example we are deploying appfirst on our Cloud Foundry environment so we also added a 'cloudfoundry' server tag.

Fist log into the AppFirst UI and find your tenant_id which is listed as 'Account ID' under the admin|accounts page.

properties:
# ... lots of properties ... at bottom put vv
  appfirst:
    tenant_id: {{Account ID}}
    server_tags:
    - cloudfoundry

NOTE: If you have a managed or on-prem AppFirst backend then you also have to set the frontend_url: and backend_url: properties.

Now, for every instances: entry under jobs: add the following in the templates: section:

  - name: appfirst
    release: appfirst

Now you can deploy,

bosh -n deploy

Development

Download your manifest file for the deployment targeted.

bosh target {{BOSH_DIRECTOR_URL/IP}}:25555
mkdir -p ~/workspace/manifests
bosh download manifest cf-staging ~/workspace/manifests/cf-staging.yml
bosh deployment ~/workspace/manifests/cf-staging.yml

Make your changes to the release and then create a new development release by running:

bosh create release --with-tarball --force && bosh -n upload release

For the two appfirst release version: entries change 'latest' to the '0+dev.N' version generated by the above command. Deploy your changes to take effect in the BOSH environment you have targeted.

bosh -n deploy

If you want to test your changes on one specific job, say runner_z0/0, instead of all jobs:

bosh -n recreate runner_z1 0 --force
bosh ssh runner_z1 0 # Hop on and have a look around...

Note, to restart all processes except AppFirst via Monit on a host run the following command as root on the host.

monit summary | awk -F\' '/Process/&& !/appfirst/{print $2}' | xargs -n1 monit restart