Skip to content
This repository has been archived by the owner on Jul 5, 2020. It is now read-only.

Commit

Permalink
Merge pull request #51 from infOpen/plugin_management_changes
Browse files Browse the repository at this point in the history
Plugin management changes
  • Loading branch information
achaussier committed May 3, 2016
2 parents 79d1fe9 + ba40fac commit 529e6f6
Show file tree
Hide file tree
Showing 8 changed files with 194 additions and 131 deletions.
42 changes: 28 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@ Follow the possible variables with their default values
jenkins_waiting_available_retries: 10
jenkins_waiting_available_delay: 5

# Jenkins plugin management
jenkins_manage_plugin_install: True
jenkins_manage_plugin_upgrade: False

# Jenkins clouds
jenkins_main_cfg_clouds: []

Expand Down Expand Up @@ -156,11 +160,13 @@ Follow the possible variables with their default values
jenkins_plugins_state: 'latest'

# Plugins: git
jenkins_plugin_git_manage_configuration: True
jenkins_plugin_git_global_full_name: 'Jenkins GitUser'
jenkins_plugin_git_global_email: '[email protected]'
jenkins_plugin_git_create_account_based_on_email: False

# Plugins: mailer
jenkins_plugin_mailer_manage_configuration: True
jenkins_plugin_mailer_charset: 'UTF-8'
jenkins_plugin_mailer_default_suffix: ''
jenkins_plugin_mailer_reply_to: ''
Expand All @@ -171,31 +177,39 @@ Follow the possible variables with their default values
jenkins_plugin_mailer_use_ssl: False

# Plugins: github
jenkins_plugins_github_remove_servers: True
jenkins_plugins_github_servers: []
jenkins_plugin_github_manage_configuration: True
jenkins_plugin_github_remove_servers: True
jenkins_plugin_github_servers: []

# Plugins: debian package builder
jenkins_plugins_debian_package_builder_remove_repositories: True
jenkins_plugins_debian_package_builder_gpg:
jenkins_plugin_debian_package_builder_manage_configuration: True
jenkins_plugin_debian_package_builder_remove_repositories: True
jenkins_plugin_debian_package_builder_gpg:
name: 'Foo Bar'
email: '[email protected]'
public_key: 'foo_public_key'
private_key: 'foo_private_key'
passphrase: 'foo_passphrase'
jenkins_plugins_debian_package_builder_repo: []
jenkins_plugin_debian_package_builder_repo: []

# Plugins: gitlab
jenkins_plugins_gitlab_api_token: ''
jenkins_plugins_gitlab_host_url: ''
jenkins_plugins_gitlab_ignore_cert_error: False
jenkins_plugin_gitlab_manage_configuration: True
jenkins_plugin_gitlab_api_token: ''
jenkins_plugin_gitlab_host_url: ''
jenkins_plugin_gitlab_ignore_cert_error: False

# Plugins: hipchat
jenkins_plugins_hipchat_server: 'api.hipchat.com'
jenkins_plugins_hipchat_token: ''
jenkins_plugins_hipchat_v2_enabled: False
jenkins_plugins_hipchat_room: 'Continuous Integration'
jenkins_plugins_hipchat_send_as: 'Jenkins'
jenkins_plugins_hipchat_notifications: []
jenkins_plugin_hipchat_manage_configuration: True
jenkins_plugin_hipchat_server: 'api.hipchat.com'
jenkins_plugin_hipchat_token: ''
jenkins_plugin_hipchat_v2_enabled: False
jenkins_plugin_hipchat_room: 'Continuous Integration'
jenkins_plugin_hipchat_send_as: 'Jenkins'
jenkins_plugin_hipchat_notifications: []

# Plugins: docker
jenkins_plugin_docker_manage_configuration: True
jenkins_plugin_docker_clouds: []

### Specific vars values for Debian family

Expand Down
8 changes: 6 additions & 2 deletions Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,9 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
if ANSIBLE_DOWNLOAD_SOURCE == 'git'
sh.inline = "test -d /usr/local/src/ansible \
|| (sudo apt-get update \
&& sudo apt-get install python-pip curl git -y \
&& sudo apt-get install python-dev python-pip \
curl git libffi-dev \
libssl-dev -y \
&& sudo pip install paramiko PyYAML Jinja2 \
httplib2 six pytest \
ansible-lint \
Expand All @@ -60,7 +62,9 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
else
sh.inline = "test -f /usr/local/bin/ansible \
|| (sudo apt-get update \
&& sudo apt-get install python-pip curl git -y \
&& sudo apt-get install python-dev python-pip \
curl git libffi-dev \
libssl-dev -y \
&& sudo pip install paramiko PyYAML Jinja2 \
httplib2 six pytest ansible \
ansible-lint)"
Expand Down
40 changes: 25 additions & 15 deletions defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ jenkins_waiting_available_delay: 5
# Jenkins clouds
jenkins_main_cfg_clouds: []

# Jenkins plugin management
jenkins_manage_plugin_install: True
jenkins_manage_plugin_upgrade: False

# CONFIGURATION
#--------------
Expand Down Expand Up @@ -143,11 +146,13 @@ jenkins_plugins:
jenkins_plugins_state: 'latest'

# Plugins: git
jenkins_plugin_git_manage_configuration: True
jenkins_plugin_git_global_full_name: "Jenkins GitUser"
jenkins_plugin_git_global_email: "[email protected]"
jenkins_plugin_git_create_account_based_on_email: False

# Plugins: mailer
jenkins_plugin_mailer_manage_configuration: True
jenkins_plugin_mailer_charset: 'UTF-8'
jenkins_plugin_mailer_default_suffix: ''
jenkins_plugin_mailer_reply_to: ''
Expand All @@ -158,31 +163,36 @@ jenkins_plugin_mailer_smtp_user: ''
jenkins_plugin_mailer_use_ssl: False

# Plugins: github
jenkins_plugins_github_remove_servers: True
jenkins_plugins_github_servers: []
jenkins_plugin_github_manage_configuration: True
jenkins_plugin_github_remove_servers: True
jenkins_plugin_github_servers: []

# Plugins: debian package builder
jenkins_plugins_debian_package_builder_remove_repositories: True
jenkins_plugins_debian_package_builder_gpg:
jenkins_plugin_debian_package_builder_manage_configuration: True
jenkins_plugin_debian_package_builder_remove_repositories: True
jenkins_plugin_debian_package_builder_gpg:
name: 'Foo Bar'
email: '[email protected]'
public_key: 'foo_public_key'
private_key: 'foo_private_key'
passphrase: 'foo_passphrase'
jenkins_plugins_debian_package_builder_repo: []
jenkins_plugin_debian_package_builder_repo: []

# Plugins: gitlab
jenkins_plugins_gitlab_api_token: ''
jenkins_plugins_gitlab_host_url: ''
jenkins_plugins_gitlab_ignore_cert_error: False
jenkins_plugin_gitlab_manage_configuration: True
jenkins_plugin_gitlab_api_token: ''
jenkins_plugin_gitlab_host_url: ''
jenkins_plugin_gitlab_ignore_cert_error: False

# Plugins: hipchat
jenkins_plugins_hipchat_server: 'api.hipchat.com'
jenkins_plugins_hipchat_token: ''
jenkins_plugins_hipchat_v2_enabled: False
jenkins_plugins_hipchat_room: 'Continuous Integration'
jenkins_plugins_hipchat_send_as: 'Jenkins'
jenkins_plugins_hipchat_notifications: []
jenkins_plugin_hipchat_manage_configuration: True
jenkins_plugin_hipchat_server: 'api.hipchat.com'
jenkins_plugin_hipchat_token: ''
jenkins_plugin_hipchat_v2_enabled: False
jenkins_plugin_hipchat_room: 'Continuous Integration'
jenkins_plugin_hipchat_send_as: 'Jenkins'
jenkins_plugin_hipchat_notifications: []

# Plugins: docker
jenkins_plugins_docker_clouds: []
jenkins_plugin_docker_manage_configuration: True
jenkins_plugin_docker_clouds: []
66 changes: 7 additions & 59 deletions tasks/manage_plugins.yml
Original file line number Diff line number Diff line change
@@ -1,67 +1,15 @@
---

# Tasks about Jenkins plugins
# Tasks about plugin management

- name: 'Get all plugin dependencies'
become: True
become_user: "{{ jenkins_etc_user }}"
register: 'jenkins_tasks_dependencies_plugins'
get_plugin_dependencies:
name: "{{ item.name }}"
cli_path: '/var/lib/jenkins/jenkins-cli.jar'
use_ssh_key: "{{ (jenkins_authentication_disabled is defined)
and (jenkins_authentication_disabled | skipped) }}"
with_items: "{{ jenkins_plugins }}"
changed_when: False


- name: 'Install plugins'
become: True
become_user: "{{ jenkins_etc_user }}"
register: 'jenkins_tasks_install_plugins'
install_jenkins_plugin:
name: "{{ item.1 }}"
state: "{{ jenkins_plugins_state }}"
cli_path: '/var/lib/jenkins/jenkins-cli.jar'
use_ssh_key: "{{ (jenkins_authentication_disabled is defined)
and (jenkins_authentication_disabled | skipped) }}"
with_subelements:
- "{{ jenkins_tasks_dependencies_plugins.results }}"
- 'output'


- name: 'Restart Jenkins once all plugins installed'
include: "{{ role_path }}/handlers/restart_and_waiting_jenkins.yml"
when: "{{ jenkins_tasks_install_plugins.changed }}"


- name: 'Get plugins should be upgraded'
become: True
become_user: "{{ jenkins_etc_user }}"
get_jenkins_plugins:
cli_path: '/var/lib/jenkins/jenkins-cli.jar'
use_ssh_key: "{{ (jenkins_authentication_disabled is defined)
and (jenkins_authentication_disabled | skipped) }}"
register: 'jenkins_list_plugins_for_upgrade'
changed_when: False
- name: 'Manage plugins installation'
include: "{{ role_path }}/tasks/manage_plugins_installation.yml"
when: "{{ jenkins_manage_plugin_install }}"


- name: 'Upgrade plugins'
become: True
become_user: "{{ jenkins_etc_user }}"
register: 'jenkins_tasks_upgrade_plugins'
install_jenkins_plugin:
name: "{{ item }}"
cli_path: '/var/lib/jenkins/jenkins-cli.jar'
state: 'latest'
use_ssh_key: "{{ (jenkins_authentication_disabled is defined)
and (jenkins_authentication_disabled | skipped) }}"
with_items: "{{ jenkins_list_plugins_for_upgrade.has_update }}"


- name: 'Restart Jenkins once all plugins upgraded'
include: "{{ role_path }}/handlers/restart_and_waiting_jenkins.yml"
when: "{{ jenkins_tasks_upgrade_plugins.changed }}"
- name: 'Manage plugins upgrade'
include: "{{ role_path }}/tasks/manage_plugins_upgrade.yml"
when: "{{ jenkins_manage_plugin_upgrade }}"


- name: 'Enable plugins'
Expand Down
Loading

0 comments on commit 529e6f6

Please sign in to comment.