From 5e480012416484986af2d17ffd01da09a2138dd4 Mon Sep 17 00:00:00 2001 From: Thomas Steinert Date: Tue, 30 Nov 2021 10:55:05 +0100 Subject: [PATCH 1/2] Add support for developer/enterprise edition --- README.md | 5 +++++ defaults/main.yml | 5 +++++ tasks/setup_prepare.yml | 22 +++++++++++++++++++--- vars/main.yml | 10 ++++++++-- 4 files changed, 37 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 6a2498f..0c3f15f 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,11 @@ Available variables along with default values are listed below (see `defaults/ma # Paths to temporary files sonar_temp_dir: "{{ sonar_base_dir }}/temp" + # SonarQube edition to install + sonar_edition: community + # sonar_edition: developer + # sonar_edition: enterprise + # SonarQube version to install sonar_version: 5.6.7 diff --git a/defaults/main.yml b/defaults/main.yml index 388f411..8b0c20b 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -21,6 +21,11 @@ sonar_data_dir: "{{ sonar_base_dir }}/data" # Paths to temporary files sonar_temp_dir: "{{ sonar_base_dir }}/temp" +# SonarQube edition to install +sonar_edition: community +# sonar_edition: developer +# sonar_edition: enterprise + # SonarQube version to install sonar_version: 7.3 diff --git a/tasks/setup_prepare.yml b/tasks/setup_prepare.yml index 30a458c..98ab6f1 100644 --- a/tasks/setup_prepare.yml +++ b/tasks/setup_prepare.yml @@ -1,9 +1,25 @@ --- -- name: "Overwrite SonarQube download url" +- name: "Overwrite SonarQube download url for community edition" set_fact: - sonar_download_url: "{{ __sonar_download_url }}" - when: sonar_download_url is not defined + sonar_download_url: "{{ __sonar_ce_download_url }}" + when: + - sonar_download_url is not defined + - sonar_edition == "community" + +- name: "Overwrite SonarQube download url for developer edition" + set_fact: + sonar_download_url: "{{ __sonar_de_download_url }}" + when: + - sonar_download_url is not defined + - sonar_edition == "developer" + +- name: "Overwrite SonarQube download url for enterprise edition" + set_fact: + sonar_download_url: "{{ __sonar_ee_download_url }}" + when: + - sonar_download_url is not defined + - sonar_edition == "enterprise" - name: "Overwrite SonarQube plugin base url" set_fact: diff --git a/vars/main.yml b/vars/main.yml index 20418f2..faca334 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -3,8 +3,14 @@ __sonarsource_url: "https://binaries.sonarsource.com" __sonar_marketplace_url: "https://update.sonarsource.org" __sonar_distribution_url: "{{ __sonarsource_url }}/Distribution" +__sonar_commercial_distribution_url: "{{ __sonarsource_url }}/CommercialDistribution" __sonar_archive: "sonarqube-{{ sonar_version }}.zip" -__sonar_download_url: "{{ __sonar_distribution_url }}/sonarqube/{{ __sonar_archive }}" +__sonar_de_archive: "sonarqube-developer-{{ sonar_version }}.zip" +__sonar_ee_archive: "sonarqube-enterprise-{{ sonar_version }}.zip" +__sonar_ce_download_url: "{{ __sonar_distribution_url }}/sonarqube/{{ __sonar_archive }}" +__sonar_de_download_url: "{{ __sonar_commercial_distribution_url }}/sonarqube-developer/{{ __sonar_de_archive }}" +__sonar_ee_download_url: "{{ __sonar_commercial_distribution_url }}/sonarqube-enterprise/{{ __sonar_ee_archive }}" +__sonar_commercial_download_url: "{{ __sonar_distribution_url }}/sonarqube/{{ __sonar_archive }}" __sonar_plugin_home: "{{ sonar_base_dir }}/extensions/plugins" __sonar_plugin_baseurl: "{{ __sonar_distribution_url }}" -__sonar_commercial_plugin_baseurl: "{{ __sonarsource_url }}/CommercialDistribution" +__sonar_commercial_plugin_baseurl: "{{ __sonar_commercial_distribution_url }}" From 363ac7b64234f14a7597f91b3e29aaa8a180588a Mon Sep 17 00:00:00 2001 From: Thomas Steinert Date: Fri, 10 Dec 2021 12:42:33 +0100 Subject: [PATCH 2/2] Consolidate and validate sonar_edition variable PR: https://github.com/lrk/ansible-role-sonarqube/pull/43 --- tasks/main.yml | 2 ++ tasks/setup_prepare.yml | 17 +---------------- tasks/validate_configuration.yaml | 7 +++++++ vars/main.yml | 15 ++++++++------- 4 files changed, 18 insertions(+), 23 deletions(-) create mode 100644 tasks/validate_configuration.yaml diff --git a/tasks/main.yml b/tasks/main.yml index 718c14e..f4bb385 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,6 +1,8 @@ --- # tasks file for ansible-role-sonarqube/ +- include_tasks: validate_configuration.yaml + - name: "Create SonarQube system group" group: name: "{{ sonar_group }}" diff --git a/tasks/setup_prepare.yml b/tasks/setup_prepare.yml index 98ab6f1..43ba9a4 100644 --- a/tasks/setup_prepare.yml +++ b/tasks/setup_prepare.yml @@ -2,24 +2,9 @@ - name: "Overwrite SonarQube download url for community edition" set_fact: - sonar_download_url: "{{ __sonar_ce_download_url }}" + sonar_download_url: "{{ __sonar_download_url[sonar_edition] }}" when: - sonar_download_url is not defined - - sonar_edition == "community" - -- name: "Overwrite SonarQube download url for developer edition" - set_fact: - sonar_download_url: "{{ __sonar_de_download_url }}" - when: - - sonar_download_url is not defined - - sonar_edition == "developer" - -- name: "Overwrite SonarQube download url for enterprise edition" - set_fact: - sonar_download_url: "{{ __sonar_ee_download_url }}" - when: - - sonar_download_url is not defined - - sonar_edition == "enterprise" - name: "Overwrite SonarQube plugin base url" set_fact: diff --git a/tasks/validate_configuration.yaml b/tasks/validate_configuration.yaml new file mode 100644 index 0000000..a7a6e4c --- /dev/null +++ b/tasks/validate_configuration.yaml @@ -0,0 +1,7 @@ +--- + +- name: Validate sonar_edition + assert: + that: + - sonar_edition in __sonar_download_url + fail_msg: "'sonar_edition' must be one of 'community', 'developer', 'enterprise'" diff --git a/vars/main.yml b/vars/main.yml index faca334..80450a6 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -4,13 +4,14 @@ __sonarsource_url: "https://binaries.sonarsource.com" __sonar_marketplace_url: "https://update.sonarsource.org" __sonar_distribution_url: "{{ __sonarsource_url }}/Distribution" __sonar_commercial_distribution_url: "{{ __sonarsource_url }}/CommercialDistribution" -__sonar_archive: "sonarqube-{{ sonar_version }}.zip" -__sonar_de_archive: "sonarqube-developer-{{ sonar_version }}.zip" -__sonar_ee_archive: "sonarqube-enterprise-{{ sonar_version }}.zip" -__sonar_ce_download_url: "{{ __sonar_distribution_url }}/sonarqube/{{ __sonar_archive }}" -__sonar_de_download_url: "{{ __sonar_commercial_distribution_url }}/sonarqube-developer/{{ __sonar_de_archive }}" -__sonar_ee_download_url: "{{ __sonar_commercial_distribution_url }}/sonarqube-enterprise/{{ __sonar_ee_archive }}" -__sonar_commercial_download_url: "{{ __sonar_distribution_url }}/sonarqube/{{ __sonar_archive }}" +__sonar_archive: + community: "sonarqube-{{ sonar_version }}.zip" + developer: "sonarqube-developer-{{ sonar_version }}.zip" + enterprise: "sonarqube-enterprise-{{ sonar_version }}.zip" +__sonar_download_url: + community: "{{ __sonar_distribution_url }}/sonarqube/{{ __sonar_archive['community'] }}" + developer: "{{ __sonar_commercial_distribution_url }}/sonarqube-developer/{{ __sonar_archive['developer'] }}" + enterprise: "{{ __sonar_commercial_distribution_url }}/sonarqube-enterprise/{{ __sonar_archive['enterprise'] }}" __sonar_plugin_home: "{{ sonar_base_dir }}/extensions/plugins" __sonar_plugin_baseurl: "{{ __sonar_distribution_url }}" __sonar_commercial_plugin_baseurl: "{{ __sonar_commercial_distribution_url }}"