ace-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jan Willem Janssen <>
Subject Re: Questions on ACE
Date Thu, 24 Apr 2014 07:55:51 GMT
Hash: SHA1

Hi Philipp,

Good to hear ACE solves most of your use-cases already, see my
(lengthy) answers inline.

On 24/04/14 08:57, Philipp Buluschek wrote:
> My use case: I will have several hundred embedded systems running
> Felix which must be kept up to date. I will probably have few
> (maybe 4) different "distributions" (ie. applications), each on
> many of those systems. Here are my questions:
> Can I put targets (ie. the machines to be updated) into groups, so
> that I can easily deploy a new version of a distribution to a large
> group of targets?

There is no "real" grouping mechanism for targets yet. However, there
are two ways you could solve this right now:

* from the web UI, you can select a number of targets that need
  approval, and hit the 'A' button. This allows you to approve all of
  those in a single step. This can be made a little easier when ACE-320
  and ACE-321 are resolved;

* alternatively, you can add a custom tag to all targets that divides
  them into groups, after which you use the GoGo shell to approve them:

  w = (cw)
  each ($w lt "(customTag=target-group-X)") {$it approve}
  $w commit

> Can I configure when the update takes place - ideally some time in
> the night (when the users don't use the system) with a large jitter
> (so the server is not overloaded all at once).

The ACE agent, responsible for the deployment on the target side, is
responsible for checking whether updates are available and, if so,
downloads it. The server does not push updates to the targets. That
said, if you are worrying about the load on the ACE server, you might
consider using ACE relays to distribute the load over more servers.

At the target-side, the default agent can be configured to perform its
update-check by specifying the "-Dagent.controller.syncinterval=N",
where N is the interval in seconds. By default, it runs once every 30

> Can I configure locally (on the agent) whether it should update?

The default agent has one simple rule: if there is an update
available, it'll download and install it.

To get more control on whether an update should be installed, for
example, by explicit user intervention, you need to create a custom
controller for the agent. Examples on how to do this can be found in
the `org.apache.ace.agent.controller.itest` project (see [1]).

> Can I update the OSGI framework itself from ACE?

Just like it is currently possible to update the ACE agent itself,
updating the OSGi FW is possible as well (it is a bundle, so can be

However, it is not implemented yet, as it requires some work. For the
launcher (responsible for bootstrapping the target) to update the FW,
it must work with its own classloader (allowing you to load two OSGi
frameworks separately) and on the server side, a mechanism for
providing information on whether there are FW updates available must
be made (I'm not sure if this is a matter of configuration or whether
actual code changes need to be done).


- -- 
Met vriendelijke groeten | Kind regards

Jan Willem Janssen | Software Architect
+31 631 765 814

/My world is revolving around PulseOn and Amdatu/

Luminis Technologies B.V.
J.C. Wilslaan 29
7313 HK   Apeldoorn
+31 88 586 46 30

KvK (CoC) 09 16 28 93
BTW (VAT) NL8169.78.566.B.01
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools -
Comment: Using GnuPG with Thunderbird -


View raw message