landscape server #17

Description

A multi server Landscape Dedicated Server charm.

Overview

The Landscape systems management tool helps you monitor, manage and update your
entire Ubuntu infrastructure from a single interface. Part of Canonical's
Ubuntu Advantage support service, Landscape brings you intuitive systems
management tools combined with world-class support.

This charm will deploy Landscape Dedicated Server (LDS), and needs to be
connected to other charms to be fully functional. Example deployments are given
below.

For more information about Landscape, go to Ubuntu Advantage

Standard Usage

The typical deployment of Landscape happens using a Juju bundle. This charm is
not useful without a deployed bundle of services.

Please use one of the following bundle types depending on your needs:

For the landscape-scalable case:

$ sudo apt-add-repository ppa:juju/stable
$ sudo apt-get update
$ sudo apt-get install juju-quickstart
$ juju quickstart u/landscape/landscape-scalable

Customized Deployments

The standard deployment of Landscape will give you the latest released code.
If you want a different version, different options, etc, you will need to
download one of the bundles, and add/change options in the file before
supplying it to juju quickstart.

On the bundle page, download the bundle.yaml file.

Configuration

Landscape is a commercial product which is bundled with a license
allowing management of up to 10 physical machines and 10 more virtual
machines, for a total of 20.

If you need to manage more machines then you'll need to configure a
license and password protected repository before deployment. Please
login to your hosted account to
gather these details after purchasing seats for LDS. All information
is found by following a link on the left side of the page called
"access the Landscape Dedicated Server archive"

license-file

You can set this as a Juju configuration option after deployment
on each deployed landscape-service like:

$ juju set <landscape-service> "license-file=$(cat license-file)"

SSL

The pre-packaged bundles will ask Apache to generate a self signed certificate.
While useful for testing, this must not be used for production deployments.

For production deployments, you should include a "real" SSL certificate key
pair that has been signed by a CA that your clients trust in the Apache charm
configuration.

Unit Testing

The Landscape charm is unit tested and new code changes should be
submitted with unit tests. You can run them like this:

$ sudo apt-get install python-twisted-core
$ make test

Integration Testing

This charm makes use of
juju-deployer and
charm-tools to
enable end-to-end integration testing. This is how you proceed with
running them:

# Make sure your JUJU_ENV is *not* bootstrapped, and:
$ sudo apt-get install python-pyscopg2 python-mocker python-psutil
$ JUJU_ENV=<env> make integration-test

Configuration

service-count
(string) Many landscape services can have multiple instances started up. By altering this setting, you can increase the launch count. A numeric value will tell all capable landscape services on this juju unit to spawn that number of instances. Leave at the default of "AUTO", to let the charm determine the optimum number of services given the discovered properties of the box (RAM, Disk Space, CPU). You can also supply a syntax of: "<service-name>:<number> <service-name>:<number>" as a value, to control the launch of individual services. Services that cannot "scale" in this way will politely ignore these settings.
AUTO
upgrade-schema
(boolean) When daemons attempt to start, they will first try to update the schema (instead of just validating that it is correct). This should only typically be enabled as part of a landscape maintenance cycle.
admin-email
(string) Email of the account administrator. To have any effect, needs to specified in conjunction with admin-name and admin-password. Has no effect if changed after a deployment.
repository
(string) APT repository (URL only) to use for installing Landscape.
license-file
(string) License file for LDS.
admin-name
(string) Name of the account administrator. If this, admin-email and admin-password are specified, then the standalone account will be created as part of the deployment, and this person will be its administrator. If not specified, Landscape will prompt for these details when it is first accessed with a web browser. Has no effect if changed after a deployment.
maintenance
(boolean) Put this landscape service unit into a maintenance mode. Stop all services and prevent any attempts to start them. Cron jobs will also not run. Upgrade schema attempts will still be allowed to process.
services
(string) Landscape services listed as space-separated entries. Valid services are: appserver, msgserver, pingserver, combo-loader, async-frontend, apiserver, package-upload, jobhandler, package-search, juju-sync, cron and static.
appserver msgserver pingserver combo-loader async-frontend apiserver package-upload jobhandler package-search juju-sync cron static
landscape-password
(string) The password to use for the landscape DB user. If you change this post-deployment via juju set, you will have to change the password in the DB manually as the charm will not do it for you yet.
landscape
admin-password
(string) Password of the account administrator. To have any effect, needs to be specified in conjunction with admin-name and admin-email. Has no effect if changed after a deployment.