From: Daniel Gryniewicz Date: Wed, 22 Jun 2016 14:13:55 +0000 (-0400) Subject: Add a custom repo ability X-Git-Tag: v1.0.6~72^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F858%2Fhead;p=ceph-ansible.git Add a custom repo ability Add the ability to use a custom repo, rather than just upstream, RHEL, and distro. This allows ansible to be used for internal testing. Signed-off-by: Daniel Gryniewicz --- diff --git a/group_vars/all.sample b/group_vars/all.sample index 963b4a128..372b50f5a 100644 --- a/group_vars/all.sample +++ b/group_vars/all.sample @@ -43,7 +43,7 @@ dummy: # is not needed for versions after infernalis. #use_server_package_split: true -# /!\ EITHER ACTIVE ceph_stable OR ceph_stable_ice OR ceph_stable_uca OR ceph_dev /!\ +# /!\ EITHER ACTIVE ceph_stable OR ceph_stable_ice OR ceph_stable_uca OR ceph_dev OR ceph_custom /!\ #debian_package_dependencies: # - python-pycurl @@ -174,6 +174,15 @@ dummy: # For rhel, please pay attention to the versions: 'rhel6 3' or 'rhel 4', the fullname is _very_ important. #ceph_dev_redhat_distro: centos7 +# CUSTOM +# ### + +# Use a custom repository to install ceph. For RPM, ceph_custom_repo should be +# a URL to the .repo file to be installed on the targets. For deb, +# ceph_custom_repo should be the URL to the repo base. +#ceph_custom: false # use custom ceph repository +#ceph_custom_repo: https://server.domain.com/ceph-custom-repo + ###################### # CEPH CONFIGURATION # diff --git a/roles/ceph-common/README.md b/roles/ceph-common/README.md index c3c4dbd9e..0270c3bcc 100644 --- a/roles/ceph-common/README.md +++ b/roles/ceph-common/README.md @@ -27,6 +27,7 @@ Have a look at `defaults/main.yml`. * `ceph_dev` * `ceph_stable_ice` * `ceph_stable_rh_storage` + * `ceph_custom` * `journal_size` * `monitor_interface` * `public_network` diff --git a/roles/ceph-common/defaults/main.yml b/roles/ceph-common/defaults/main.yml index a8d135437..0542b0cc3 100644 --- a/roles/ceph-common/defaults/main.yml +++ b/roles/ceph-common/defaults/main.yml @@ -35,7 +35,7 @@ upgrade_ceph_packages: False # is not needed for versions after infernalis. use_server_package_split: true -# /!\ EITHER ACTIVE ceph_stable OR ceph_stable_ice OR ceph_stable_uca OR ceph_dev /!\ +# /!\ EITHER ACTIVE ceph_stable OR ceph_stable_ice OR ceph_stable_uca OR ceph_dev OR ceph_custom /!\ debian_package_dependencies: - python-pycurl @@ -166,6 +166,15 @@ ceph_dev_branch: master # development branch you would like to use e.g: master, # For rhel, please pay attention to the versions: 'rhel6 3' or 'rhel 4', the fullname is _very_ important. ceph_dev_redhat_distro: centos7 +# CUSTOM +# ### + +# Use a custom repository to install ceph. For RPM, ceph_custom_repo should be +# a URL to the .repo file to be installed on the targets. For deb, +# ceph_custom_repo should be the URL to the repo base. +ceph_custom: false # use custom ceph repository +ceph_custom_repo: https://server.domain.com/ceph-custom-repo + ###################### # CEPH CONFIGURATION # diff --git a/roles/ceph-common/tasks/installs/debian_ceph_repository.yml b/roles/ceph-common/tasks/installs/debian_ceph_repository.yml index 92b8c3cc9..48eb7d579 100644 --- a/roles/ceph-common/tasks/installs/debian_ceph_repository.yml +++ b/roles/ceph-common/tasks/installs/debian_ceph_repository.yml @@ -49,3 +49,11 @@ state: present changed_when: false when: ceph_stable_uca + +- name: add custom repo + apt_repository: + repo: "deb {{ ceph_custom_repo }} {{ ansible_lsb.codename }} main" + state: present + changed_when: false + when: ceph_custom + diff --git a/roles/ceph-common/tasks/installs/install_on_redhat.yml b/roles/ceph-common/tasks/installs/install_on_redhat.yml index 3e5e91f32..60a2d0afa 100644 --- a/roles/ceph-common/tasks/installs/install_on_redhat.yml +++ b/roles/ceph-common/tasks/installs/install_on_redhat.yml @@ -46,6 +46,7 @@ - (ceph_stable and ceph_stable_release not in ceph_stable_releases) or ceph_dev or ceph_origin == "distro" + or ceph_custom - name: install distro or red hat storage ceph mon dnf: @@ -57,6 +58,7 @@ - (ceph_stable and ceph_stable_release not in ceph_stable_releases) or ceph_origin == "distro" or ceph_dev + or ceph_custom - name: install distro or red hat storage ceph osd yum: @@ -68,6 +70,7 @@ - (ceph_stable and ceph_stable_release not in ceph_stable_releases) or ceph_origin == "distro" or ceph_dev + or ceph_custom - name: install distro or red hat storage ceph osd dnf: @@ -79,46 +82,55 @@ - (ceph_stable and ceph_stable_release not in ceph_stable_releases) or ceph_origin == "distro" or ceph_dev + or ceph_custom - name: install distro or red hat storage ceph mds yum: name: "ceph-mds" state: "{{ (upgrade_ceph_packages|bool) | ternary('latest','present') }}" when: - (ceph_origin == "distro" or ceph_dev or - (ceph_stable and ceph_stable_release not in ceph_stable_releases)) and - mds_group_name in group_names and - ansible_pkg_mgr == "yum" + - mds_group_name in group_names + - ansible_pkg_mgr == "yum" + - (ceph_stable and ceph_stable_release not in ceph_stable_releases) + or ceph_origin == "distro" + or ceph_dev + or ceph_custom - name: install distro or red hat storage ceph mds dnf: name: "ceph-mds" state: "{{ (upgrade_ceph_packages|bool) | ternary('latest','present') }}" when: - (ceph_origin == "distro" or ceph_dev or - (ceph_stable and ceph_stable_release not in ceph_stable_releases)) and - mds_group_name in group_names and - ansible_pkg_mgr == "dnf" + - mds_group_name in group_names + - ansible_pkg_mgr == "dnf" + - (ceph_stable and ceph_stable_release not in ceph_stable_releases) + or ceph_origin == "distro" + or ceph_dev + or ceph_custom - name: install distro or red hat storage ceph base yum: name: "ceph-base" state: "{{ (upgrade_ceph_packages|bool) | ternary('latest','present') }}" when: - (ceph_origin == "distro" or ceph_dev or - (ceph_stable and ceph_stable_release not in ceph_stable_releases)) and - client_group_name in group_names and - ansible_pkg_mgr == "yum" + - client_group_name in group_names + - ansible_pkg_mgr == "yum" + - (ceph_stable and ceph_stable_release not in ceph_stable_releases) + or ceph_origin == "distro" + or ceph_dev + or ceph_custom - name: install distro or red hat storage ceph base dnf: name: "ceph-base" state: "{{ (upgrade_ceph_packages|bool) | ternary('latest','present') }}" when: - (ceph_origin == "distro" or ceph_dev or - (ceph_stable and ceph_stable_release not in ceph_stable_releases)) and - client_group_name in group_names and - ansible_pkg_mgr == "dnf" + - client_group_name in group_names + - ansible_pkg_mgr == "dnf" + - (ceph_stable and ceph_stable_release not in ceph_stable_releases) + or ceph_origin == "distro" + or ceph_dev + or ceph_custom - name: install ceph-test yum: diff --git a/roles/ceph-common/tasks/installs/redhat_ceph_repository.yml b/roles/ceph-common/tasks/installs/redhat_ceph_repository.yml index 049818eda..f02bbf996 100644 --- a/roles/ceph-common/tasks/installs/redhat_ceph_repository.yml +++ b/roles/ceph-common/tasks/installs/redhat_ceph_repository.yml @@ -57,3 +57,11 @@ group: root mode: 0644 when: ceph_stable_ice + +- name: add custom repo + get_url: + url: "{{ ceph_custom_repo }}" + dest: /etc/yum.repos.d + owner: root + group: root + when: ceph_custom