You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@ace.apache.org by Marco Westermann <Ma...@gmx.de> on 2013/12/18 14:03:25 UTC

ace setup

Hi,

I think about using ace for automated deployment of my osgi bundles. 
First of all let me say that its a great idea to have such a software 
platform like ace.

But nevertheless I have some problems in how to setup ace the "proper" 
way. At the moment we use nexus and upload our bundles with mvn deploy. 
Furthermore we use features to group our bundles. In karaf we use the 
features: commands to install the bundles from nexus.

At the moment I think of deploying the bundles to ace obr by jenkins but 
I cannot find any information how I would do that. Also I miss 
informations in how I would deal with snapshot / relase versions.

What I really would appreciate is a real world example in how to setup 
ace with all participating stakeholder:

developer
CI-Server
testserver
productionserver.

Thank you for all hints you can give.

best regards,

Marco

Re: ace setup

Posted by Marcel Offermans <ma...@luminis.nl>.
Hello Marco,

On 19 Dec 2013, at 17:05 , Marco Westermann <Ma...@gmx.de> wrote:

> thank you for your answer. Yes, I already watched that video and liked the way you are describing in the video. But as you said: there are still some questions. I will try to ask concrete questions where I have problems.
> 
> At the moment I think of the following scenario:
> 
> I setup an OBR like karaf OBR on my server and configure my bundles so they are pushed to the OBR.
> 
> That leads me to my first question: what do I have to do to setup ace that it uses repository on server xyz. Or in other words: where do I configure ace what repo to use.

> If I'm right pushing to my remote OBR wouldn't be enough as I also have to provide ace with meta-informations about my bundle. So I would have to tell ace that there is a new artifact available ?! This may be done about a gogo shell script ?!

Yes.

Let me start by stating that for ACE, an artifact (bundle, configuration file, whatever) is just an object with some metadata. For artifacts, the most important properties are the type of artifact and its URL. The latter points to where the artifact is stored, and when a target requests an update, such URLs are used to fetch the correct artifacts.

So, in theory, anything that provides artifacts via a URL can act as an “OBR” for ACE (you can even use file:/// URLs but in general I would not recommend that).

To tell ACE about an artifact, you have to define it. Manipulating artifacts, features, etc. in general is done by the ACE client, and for that client we provide three different interfaces: a WebUI, a REST UI and a Gogo Shell UI. We tend to use the shell the most when automating things, because the scripting language is quite powerful. If you, through any of these client interfaces, fill out the URL and other metadata by hand, you don’t even need to configure an OBR.

Now, the ACE client can be configured to work with an OBR. In the “conf” folder (of run-client, if you’re running ACE from Eclipse, or your client distribution otherwise) you can configure where this OBR is. Actually, within Eclipse, also look at the client.bndrun as it contains a variable for the OBR location. If you do that, for example in the WebUI you can upload bundles to such an OBR directly from your browser. There is one requirement though, since the OBR specification does not specify any way of “uploading” artifacts to an OBR, in ACE we extended that spec a bit by adding a REST interface for that. In other words, for uploading to work, you need to use “our” OBR. Contributions in this area, to make such a feature work for Nexus for example, would be welcome.

> If until here everything would work I would have my bundles in ace so I can configure features, distributions and targets etc.
> 
> Then my next problem would be:
> 
> My OSGI bundles use other external bundles available in maven central ( my bundles use camel, activemq, cxf etc )
> 
> is it possible that ace can provide my target(s) with these bundles, too without manually adding the bundles to ace. ( maybe by proxying maven central with my own obr ?!)

Yes, see above, as long as you can provide an URL to such bundles, you can use them.

> And the last question for today:
> 
> I cannot find detailed instructions on how to tell ace where my targets are. I have some instances of karaf running on different servers. How would I configure that ace knows how to provide my karaf instance. I think I've read that I need to install an ace bundle to the target container but I cannot figure out what bundle I need and how to configure it.

On the target you need to run a management agent bundle. This is an ordinary bundle. It can be configured with, amongst other things, a “target ID” (which is the ID that shows up in the target column of ACE) and a URL to the ACE server (these properties are called identification and discovery and can be provided as system properties).

Technically, the ACE server does not need to know where the targets are, as the targets poll the server for updates.

Greetings, Marcel


Re: ace setup

Posted by Marco Westermann <Ma...@gmx.de>.
Hi Marcel,

thank you for your answer. Yes, I already watched that video and liked 
the way you are describing in the video. But as you said: there are 
still some questions. I will try to ask concrete questions where I have 
problems.

At the moment I think of the following scenario:

I setup an OBR like karaf OBR on my server and configure my bundles so 
they are pushed to the OBR.

That leads me to my first question: what do I have to do to setup ace 
that it uses repository on server xyz. Or in other words: where do I 
configure ace what repo to use.

If I'm right pushing to my remote OBR wouldn't be enough as I also have 
to provide ace with meta-informations about my bundle. So I would have 
to tell ace that there is a new artifact available ?! This may be done 
about a gogo shell script ?!

If until here everything would work I would have my bundles in ace so I 
can configure features, distributions and targets etc.

Then my next problem would be:

My OSGI bundles use other external bundles available in maven central ( 
my bundles use camel, activemq, cxf etc )

is it possible that ace can provide my target(s) with these bundles, too 
without manually adding the bundles to ace. ( maybe by proxying maven 
central with my own obr ?!)

And the last question for today:

I cannot find detailed instructions on how to tell ace where my targets 
are. I have some instances of karaf running on different servers. How 
would I configure that ace knows how to provide my karaf instance. I 
think I've read that I need to install an ace bundle to the target 
container but I cannot figure out what bundle I need and how to 
configure it.

best regards,

Marco

Am 19.12.2013 16:35, schrieb Marcel Offermans:
> Hello Marco,
>
> On 18 Dec 2013, at 14:03 , Marco Westermann <Ma...@gmx.de> wrote:
>
>> I think about using ace for automated deployment of my osgi bundles. First of all let me say that its a great idea to have such a software platform like ace.
> Thanks for the kind words!
>
>> But nevertheless I have some problems in how to setup ace the "proper" way. At the moment we use nexus and upload our bundles with mvn deploy. Furthermore we use features to group our bundles. In karaf we use the features: commands to install the bundles from nexus.
> That sounds like a pretty common scenario.
>
>> At the moment I think of deploying the bundles to ace obr by jenkins but I cannot find any information how I would do that. Also I miss informations in how I would deal with snapshot / relase versions.
> Both good questions… and I admit that we can still improve our documentation, so keep asking such questions!
>
> Deploying bundles to an OBR:
>
> Here you have different options. In your case, you’re already using Nexus, which can act as an OBR itself. One option you have is to leverage that and use Nexus with ACE.
>
> Another option is to use a shell script, using the GoGo shell, to deploy bundles from the CI build to an OBR. A colleague and me recently did a presentation on that at the latest OSGi Community Event. You can find it on YouTube: http://www.youtube.com/watch?v=4S_zvgG_MLw
>
> That presentation also talks about dealing with snapshot and release versions, so I recommend you take a look at it.
>
>> What I really would appreciate is a real world example in how to setup ace with all participating stakeholder:
>>
>> developer
>> CI-Server
>> testserver
>> productionserver.
> The video touches on some of these topics as well, but I can imagine there will be a few questions left. There are also multiple ways of doing this, so again, keep asking here. At our company, we use ACE pretty much in the way that is described in the video, and we develop our OSGi applications using Bndtools and Eclipse. Test and production servers are all running in the cloud.
>
> Greetings, Marcel
>
>


Re: ace setup

Posted by Marcel Offermans <ma...@luminis.nl>.
Hello Marco,

On 18 Dec 2013, at 14:03 , Marco Westermann <Ma...@gmx.de> wrote:

> I think about using ace for automated deployment of my osgi bundles. First of all let me say that its a great idea to have such a software platform like ace.

Thanks for the kind words!

> But nevertheless I have some problems in how to setup ace the "proper" way. At the moment we use nexus and upload our bundles with mvn deploy. Furthermore we use features to group our bundles. In karaf we use the features: commands to install the bundles from nexus.

That sounds like a pretty common scenario.

> At the moment I think of deploying the bundles to ace obr by jenkins but I cannot find any information how I would do that. Also I miss informations in how I would deal with snapshot / relase versions.

Both good questions… and I admit that we can still improve our documentation, so keep asking such questions!

Deploying bundles to an OBR:

Here you have different options. In your case, you’re already using Nexus, which can act as an OBR itself. One option you have is to leverage that and use Nexus with ACE.

Another option is to use a shell script, using the GoGo shell, to deploy bundles from the CI build to an OBR. A colleague and me recently did a presentation on that at the latest OSGi Community Event. You can find it on YouTube: http://www.youtube.com/watch?v=4S_zvgG_MLw

That presentation also talks about dealing with snapshot and release versions, so I recommend you take a look at it.

> What I really would appreciate is a real world example in how to setup ace with all participating stakeholder:
> 
> developer
> CI-Server
> testserver
> productionserver.

The video touches on some of these topics as well, but I can imagine there will be a few questions left. There are also multiple ways of doing this, so again, keep asking here. At our company, we use ACE pretty much in the way that is described in the video, and we develop our OSGi applications using Bndtools and Eclipse. Test and production servers are all running in the cloud.

Greetings, Marcel