From: Zack Cerza Date: Mon, 25 Sep 2017 23:49:58 +0000 (-0600) Subject: Add support for custom repos X-Git-Tag: v1.0~16^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F128%2Fhead;p=cephmetrics.git Add support for custom repos This is to enable testing packages built from non-master branches with devel_mode=False Signed-off-by: Zack Cerza --- diff --git a/ansible/README.md b/ansible/README.md index 78bc4c1..fa1d7b8 100644 --- a/ansible/README.md +++ b/ansible/README.md @@ -61,6 +61,13 @@ You may override certain variables by creating a `vars.yml` file: - ['15m', '5y'] ``` - `update_alerts`: Whether to update the alerts dashboard along with the rest. Removes any user-defined alerts. Default: false +- `custom_repos`: A list of custom package repositories to enable. Currently supports yum systems only. Format: + ``` + custom_repos: + yum: + - name: my_repo + baseurl: http://example.com/my/repo + ``` These variables are only relevent when `devel_mode` is true: - `use_epel`: Whether or not to use EPEL and grafana.com instead of ceph.com-sourced packages for dependencies. Default: false diff --git a/ansible/common/templates/cephmetrics-custom.repo b/ansible/common/templates/cephmetrics-custom.repo new file mode 100644 index 0000000..1aa7b32 --- /dev/null +++ b/ansible/common/templates/cephmetrics-custom.repo @@ -0,0 +1,9 @@ +{% for repo in custom_repos.yum %} +[{{ repo.name }}] +name={{ repo.name }} +baseurl={{ repo.baseurl }} +enabled={{ repo.enabled|default('1') }} +gpgcheck={{ repo.gpgcheck|default('0') }} +type={{ repo.type|default('rpm-md') }} + +{% endfor %} diff --git a/ansible/roles/ceph-collectd/tasks/setup_repos.yml b/ansible/roles/ceph-collectd/tasks/setup_repos.yml index 7d867a1..3a63462 100644 --- a/ansible/roles/ceph-collectd/tasks/setup_repos.yml +++ b/ansible/roles/ceph-collectd/tasks/setup_repos.yml @@ -55,3 +55,19 @@ when: - ansible_pkg_mgr == "yum" - not devel_mode + +- name: Add custom repos + template: + src: cephmetrics-custom.repo + dest: /etc/yum.repos.d/cephmetrics-custom.repo + when: + - ansible_pkg_mgr == "yum" + - custom_repos is defined + +- name: Remove custom repos + file: + path: /etc/yum.repos.d/cephmetrics-custom.repo + state: absent + when: + - ansible_pkg_mgr == "yum" + - custom_repos is not defined diff --git a/ansible/roles/ceph-collectd/templates/cephmetrics-custom.repo b/ansible/roles/ceph-collectd/templates/cephmetrics-custom.repo new file mode 120000 index 0000000..84ad75a --- /dev/null +++ b/ansible/roles/ceph-collectd/templates/cephmetrics-custom.repo @@ -0,0 +1 @@ +../../../common/templates/cephmetrics-custom.repo \ No newline at end of file diff --git a/ansible/roles/ceph-grafana/tasks/setup_repos.yml b/ansible/roles/ceph-grafana/tasks/setup_repos.yml index 38bd5ca..edac3f3 100644 --- a/ansible/roles/ceph-grafana/tasks/setup_repos.yml +++ b/ansible/roles/ceph-grafana/tasks/setup_repos.yml @@ -81,3 +81,19 @@ when: - ansible_pkg_mgr == "yum" - not devel_mode + +- name: Add custom repos + template: + src: cephmetrics-custom.repo + dest: /etc/yum.repos.d/cephmetrics-custom.repo + when: + - ansible_pkg_mgr == "yum" + - custom_repos is defined + +- name: Remove custom repos + file: + path: /etc/yum.repos.d/cephmetrics-custom.repo + state: absent + when: + - ansible_pkg_mgr == "yum" + - custom_repos is not defined diff --git a/ansible/roles/ceph-grafana/templates/cephmetrics-custom.repo b/ansible/roles/ceph-grafana/templates/cephmetrics-custom.repo new file mode 120000 index 0000000..84ad75a --- /dev/null +++ b/ansible/roles/ceph-grafana/templates/cephmetrics-custom.repo @@ -0,0 +1 @@ +../../../common/templates/cephmetrics-custom.repo \ No newline at end of file