Jenkins: Install plugins

Hi,

I'm setting up a jenkins server using the 1.0.0 cookbook version.

I don't fully understand, what the best way to manage plugins would be.

There seem to be two ways [1]:

  • node['jenkins']['server']['plugins'] - Download the latest version of plugins in this Array, bypassing update center. The members of the Array can either be strings if the latest version desired OR a Hash of the form {'name' => 'git', 'version' => '1.4.0'} if a specific version is required.

  • jenkins_cli
    This resource can be used to execute the Jenkins cli from your recipes. For example, install plugins via update center and restart Jenkins:

%w{ git URLSCM build-publisher }.each do |plugin|
jenkins_cli "install-plugin #{plugin}"
jenkins_cli "safe-restart"
end

When I use the first way, defining the plugins through the attributes,
they are downloaded, but seem not to be enabled. What does "bypassing
update center" mean? They will not be visible there? But in my case the
added functionality also wasn't available.

With jenkins_cli, I can install them, but this resource seems to be
updated every time then (resulting in a safe-restart for every single
plugin during every chef-run.

Am I getting sth. wrong? What's they way you recommend?
If it's the first one, how can I then activate the downloaded plugins?

Thanks
Steffen

--
[1] GitHub - sous-chefs/jenkins: Development repository for the jenkins cookbook

I started using the jenkins cookbook last week and I landed on using
node['jenkins']['server']['plugins']. If you look at the cookbook code, it
will only install the plugin if the .jpi file does not exist. You'll want
to manually update your plugins, but this will take care of plugins not yet
installed.

Here's how I'm using it:

Add new plugins

node.override['jenkins']['server']['plugins'] = [ "greenballs", "gravatar" ]

Alan

On Sun, Sep 15, 2013 at 5:45 AM, Steffen Gebert st+gmane@st-g.de wrote:

Hi,

I'm setting up a jenkins server using the 1.0.0 cookbook version.

I don't fully understand, what the best way to manage plugins would be.

There seem to be two ways [1]:

  • node['jenkins']['server']['plugins'] - Download the latest version of
    plugins in this Array, bypassing update center. The members of the Array
    can either be strings if the latest version desired OR a Hash of the form
    {'name' => 'git', 'version' => '1.4.0'} if a specific version is required.

  • jenkins_cli
    This resource can be used to execute the Jenkins cli from your recipes.
    For example, install plugins via update center and restart Jenkins:

%w{ git URLSCM build-publisher }.each do |plugin|
jenkins_cli "install-plugin #{plugin}"
jenkins_cli "safe-restart"
end

When I use the first way, defining the plugins through the attributes,
they are downloaded, but seem not to be enabled. What does "bypassing
update center" mean? They will not be visible there? But in my case the
added functionality also wasn't available.

With jenkins_cli, I can install them, but this resource seems to be
updated every time then (resulting in a safe-restart for every single
plugin during every chef-run.

Am I getting sth. wrong? What's they way you recommend?
If it's the first one, how can I then activate the downloaded plugins?

Thanks
Steffen

--
[1] GitHub - sous-chefs/jenkins: Development repository for the jenkins cookbook

Thanks for your response, Alan!

When/how does Jenkins pick up those files and install it? Automatically
after couple of seconds? Are the plugins then shown in the Plugin Center?

This didn't work for me (also the functionality provided by the plugin
was not available). Just nothing happened.

Yours
Steffen

On 9/16/13 10:06 PM, Alan Ivey wrote:

I started using the jenkins cookbook last week and I landed on using
node['jenkins']['server']['plugins']. If you look at the cookbook code, it
will only install the plugin if the .jpi file does not exist. You'll want
to manually update your plugins, but this will take care of plugins not yet
installed.

Here's how I'm using it:

Add new plugins

node.override['jenkins']['server']['plugins'] = [ "greenballs", "gravatar" ]

Alan

On Sun, Sep 15, 2013 at 5:45 AM, Steffen Gebert st+gmane@st-g.de wrote:

Hi,

I'm setting up a jenkins server using the 1.0.0 cookbook version.

I don't fully understand, what the best way to manage plugins would be.

There seem to be two ways [1]:

  • node['jenkins']['server']['plugins'] - Download the latest version of
    plugins in this Array, bypassing update center. The members of the Array
    can either be strings if the latest version desired OR a Hash of the form
    {'name' => 'git', 'version' => '1.4.0'} if a specific version is required.

  • jenkins_cli
    This resource can be used to execute the Jenkins cli from your recipes.
    For example, install plugins via update center and restart Jenkins:

%w{ git URLSCM build-publisher }.each do |plugin|
jenkins_cli "install-plugin #{plugin}"
jenkins_cli "safe-restart"
end

When I use the first way, defining the plugins through the attributes,
they are downloaded, but seem not to be enabled. What does "bypassing
update center" mean? They will not be visible there? But in my case the
added functionality also wasn't available.

With jenkins_cli, I can install them, but this resource seems to be
updated every time then (resulting in a safe-restart for every single
plugin during every chef-run.

Am I getting sth. wrong? What's they way you recommend?
If it's the first one, how can I then activate the downloaded plugins?

Thanks
Steffen

--
[1] GitHub - sous-chefs/jenkins: Development repository for the jenkins cookbook

Hi Steffen. I was working with this just yesterday and I found that Jenkins needed a restart before it would pick up the plugins. I suspect this is a bug in the Jenkins cookbook as I would expect it to handle this. I'm using 0.6.0 but 1.0.0 is available, so I won't call 'bug!' until I've tried the latest verion.

In my case I'm doing a restart after dropping some new default config anyways, but in the future when I want to adjust the list of plugins I'll probably need an unconditional notify to restart the Jenkins service.

-----Original Message-----
From: Steffen Gebert [mailto:st+gmane@st-g.de]
Sent: Monday, September 16, 2013 1:19 PM
To: chef@lists.opscode.com
Subject: [chef] Re: jenkins: Install plugins

Thanks for your response, Alan!

When/how does Jenkins pick up those files and install it? Automatically after couple of seconds? Are the plugins then shown in the Plugin Center?

This didn't work for me (also the functionality provided by the plugin was not available). Just nothing happened.

Yours
Steffen

On 9/16/13 10:06 PM, Alan Ivey wrote:

I started using the jenkins cookbook last week and I landed on using
node['jenkins']['server']['plugins']. If you look at the cookbook
code, it will only install the plugin if the .jpi file does not exist.
You'll want to manually update your plugins, but this will take care
of plugins not yet installed.

Here's how I'm using it:

Add new plugins

node.override['jenkins']['server']['plugins'] = [ "greenballs",
"gravatar" ]

Alan

On Sun, Sep 15, 2013 at 5:45 AM, Steffen Gebert st+gmane@st-g.de wrote:

Hi,

I'm setting up a jenkins server using the 1.0.0 cookbook version.

I don't fully understand, what the best way to manage plugins would be.

There seem to be two ways [1]:

  • node['jenkins']['server']['plugins'] - Download the latest version
    of
    plugins in this Array, bypassing update center. The members of the
    Array can either be strings if the latest version desired OR a Hash
    of the form {'name' => 'git', 'version' => '1.4.0'} if a specific version is required.

  • jenkins_cli
    This resource can be used to execute the Jenkins cli from your recipes.
    For example, install plugins via update center and restart Jenkins:

%w{ git URLSCM build-publisher }.each do |plugin|
jenkins_cli "install-plugin #{plugin}"
jenkins_cli "safe-restart"
end

When I use the first way, defining the plugins through the
attributes, they are downloaded, but seem not to be enabled. What
does "bypassing update center" mean? They will not be visible there?
But in my case the added functionality also wasn't available.

With jenkins_cli, I can install them, but this resource seems to be
updated every time then (resulting in a safe-restart for every single
plugin during every chef-run.

Am I getting sth. wrong? What's they way you recommend?
If it's the first one, how can I then activate the downloaded plugins?

Thanks
Steffen

--
[1] GitHub - sous-chefs/jenkins: Development repository for the jenkins cookbook