# - hdparm
# - python-setuptools
+#suse_package_dependencies:
+# - python-pycurl
+# - python-xml
+# - hdparm
+# - python-setuptools
+
# Whether or not to install the ceph-test package.
#ceph_test: false
# ORIGIN SOURCE
#
# Choose between:
-# - 'repository' means that you will get ceph installed through a new repository. Later below choose between 'community', 'rhcs' or 'dev'
+# - 'repository' means that you will get ceph installed through a new repository. Later below choose between 'community', 'rhcs', 'dev' or 'obs'
# - 'distro' means that no separate repo file will be added
# you will get whatever version of Ceph is included in your Linux distro.
# 'local' means that the ceph binaries will be copied over from the local machine
# - dev
# - uca
# - custom
+# - obs
# REPOSITORY: COMMUNITY VERSION
#ceph_stable_openstack_release_uca: liberty
#ceph_stable_release_uca: "{{ansible_lsb.codename}}-updates/{{ceph_stable_openstack_release_uca}}"
+# REPOSITORY: openSUSE OBS
+#
+# Enabled when ceph_repository == 'obs'
+#
+# This allows the install of Ceph from the openSUSE OBS repository. The OBS repository
+# usually has newer Ceph releases than the normal distro repository.
+#
+#
+#ceph_obs_repo: "https://download.opensuse.org/repositories/filesystems:/ceph:/luminous/openSUSE_Leap_{{ ansible_distribution_version }}/"
# REPOSITORY: DEV
#
# do not ever change this here
#rolling_update: false
-
#####################
# Docker pull retry #
#####################
#docker_pull_retry: 3
#docker_pull_timeout: "300s"
+
# - hdparm
# - python-setuptools
+#suse_package_dependencies:
+# - python-pycurl
+# - python-xml
+# - hdparm
+# - python-setuptools
+
# Whether or not to install the ceph-test package.
#ceph_test: false
# ORIGIN SOURCE
#
# Choose between:
-# - 'repository' means that you will get ceph installed through a new repository. Later below choose between 'community', 'rhcs' or 'dev'
+# - 'repository' means that you will get ceph installed through a new repository. Later below choose between 'community', 'rhcs', 'dev' or 'obs'
# - 'distro' means that no separate repo file will be added
# you will get whatever version of Ceph is included in your Linux distro.
# 'local' means that the ceph binaries will be copied over from the local machine
# - dev
# - uca
# - custom
+# - obs
# REPOSITORY: COMMUNITY VERSION
#ceph_stable_openstack_release_uca: liberty
#ceph_stable_release_uca: "{{ansible_lsb.codename}}-updates/{{ceph_stable_openstack_release_uca}}"
+# REPOSITORY: openSUSE OBS
+#
+# Enabled when ceph_repository == 'obs'
+#
+# This allows the install of Ceph from the openSUSE OBS repository. The OBS repository
+# usually has newer Ceph releases than the normal distro repository.
+#
+#
+#ceph_obs_repo: "https://download.opensuse.org/repositories/filesystems:/ceph:/luminous/openSUSE_Leap_{{ ansible_distribution_version }}/"
# REPOSITORY: DEV
#
# do not ever change this here
#rolling_update: false
-
#####################
# Docker pull retry #
#####################
#docker_pull_retry: 3
#docker_pull_timeout: "300s"
+
- name: EL
versions:
- 7
+ - name: opensuse
+ versions:
+ - 42.3
categories:
- system
dependencies: []
msg: "make sure ceph_stable_release ( {{ ceph_stable_release }} ) is set to a release name (e.g: luminous), http://docs.ceph.com/docs/master/release-notes/"
when:
- ceph_stable_release == 'dummy'
- - ceph_repository not in ['rhcs', 'dev']
+ - ceph_repository not in ['rhcs', 'dev', 'obs']
tags:
- package-install
when:
- ceph_stable_release not in ceph_release_num
- ceph_origin == 'repository'
- - ceph_repository not in ['rhcs', 'dev']
+ - ceph_repository not in ['rhcs', 'dev', 'obs']
tags:
- package-install
fail:
msg: "Distribution not supported {{ ansible_os_family }}"
when:
- - ansible_os_family not in ['Debian', 'RedHat', 'ClearLinux']
+ - ansible_os_family not in ['Debian', 'RedHat', 'ClearLinux', 'Suse']
- name: fail on unsupported distribution for red hat ceph storage
fail:
- ceph_repository == 'uca'
- ansible_distribution != 'Ubuntu'
+- name: fail on unsupported openSUSE distribution
+ fail:
+ msg: "Distribution not supported: {{ ansible_distribution }}"
+ when:
+ - ansible_distribution == 'openSUSE Leap'
+ - ansible_distribution_version | version_compare('42.3', '<')
+
- name: fail on unsupported ansible version
fail:
msg: "Ansible version must be >= 2.3.x, please update!"
line: "CLUSTER={{ cluster }}"
regexp: "^CLUSTER="
when:
- - ansible_os_family == "RedHat"
+ - ansible_os_family in ["RedHat", "Suse"]
# NOTE(leseb): we are performing the following check
# to ensure any Jewel installation will not fail.
--- /dev/null
+---
+- name: include suse_obs_repository.yml
+ include: suse_obs_repository.yml
+ when:
+ - ceph_repository == 'obs'
--- /dev/null
+---
+# SUSE only supports the following:
+# - ceph_origin == 'distro'
+# - ceph_origin == 'repository' and ceph_repository == 'obs'
+- name: Check for supported installation method on suse
+ fail:
+ msg: "Unsupported installation method origin:{{ ceph_origin }} repo:{{ ceph_repository }}'"
+ when:
+ - ceph_origin != 'distro' or (ceph_origin == 'repository' and ceph_repository != 'obs')
+
+- name: include configure_suse_repository_installation.yml
+ include: configure_suse_repository_installation.yml
+ when:
+ - ceph_origin == 'repository'
+
+- name: install dependencies
+ zypper:
+ name: "{{ item }}"
+ state: present
+ update_cache: yes
+ with_items: "{{ suse_package_dependencies }}"
+
+- name: include install_suse_packages.yml
+ include: install_suse_packages.yml
--- /dev/null
+---
+- name: install suse dependencies
+ package:
+ name: "{{ suse_package_dependencies }}"
+ state: present
+ when:
+ - ansible_distribution == 'Suse'
+
+- name: install suse ceph-common
+ package:
+ name: "ceph-common"
+ state: "{{ (upgrade_ceph_packages|bool) | ternary('latest','present') }}"
+
+- name: install suse ceph-mon package
+ package:
+ name: "ceph-mon"
+ state: "{{ (upgrade_ceph_packages|bool) | ternary('latest','present') }}"
+ when:
+ - mon_group_name in group_names
+
+- name: install suse ceph-osd package
+ package:
+ name: "ceph-osd"
+ state: "{{ (upgrade_ceph_packages|bool) | ternary('latest','present') }}"
+ when:
+ - osd_group_name in group_names
+
+- name: install suse ceph-fuse package
+ package:
+ name: "ceph-fuse"
+ state: "{{ (upgrade_ceph_packages|bool) | ternary('latest','present') }}"
+ when:
+ - client_group_name in group_names
+
+- name: install suse ceph-base package
+ package:
+ name: "ceph-base"
+ state: "{{ (upgrade_ceph_packages|bool) | ternary('latest','present') }}"
+ when:
+ - client_group_name in group_names
+
+- name: install suse ceph-test package
+ package:
+ name: ceph-test
+ state: "{{ (upgrade_ceph_packages|bool) | ternary('latest','present') }}"
+ when:
+ - ceph_test
+
+- name: install suse ceph-radosgw package
+ package:
+ name: ceph-radosgw
+ state: "{{ (upgrade_ceph_packages|bool) | ternary('latest','present') }}"
+ when:
+ - rgw_group_name in group_names
--- /dev/null
+---
+- name: configure openSUSE ceph OBS repository
+ zypper_repository:
+ name: "OBS:filesystems:ceph"
+ state: present
+ uri: "{{ ceph_obs_repo }}"
+ auto_import_keys: yes
+ autorefresh: yes
# Hard code this so we will skip the entire file instead of individual tasks (Default isn't Consistent)
static: False
+- name: include installs/install_on_suse.yml
+ include: installs/install_on_suse.yml
+ when:
+ - ansible_os_family == 'Suse'
+ tags:
+ - package-install
+ # Hard code this so we will skip the entire file instead of individual tasks (Default isn't Consistent)
+ static: False
+
- name: include installs/install_on_debian.yml
include: installs/install_on_debian.yml
when:
# Hard code this so we will skip the entire file instead of individual tasks (Default isn't Consistent)
static: False
-- name: include ntp setup tasks
- include: "misc/ntp_{{ ansible_os_family | lower }}.yml"
+- name: include ntp debian setup tasks
+ include: "misc/ntp_debian.yml"
+ when:
+ - ansible_os_family == 'Debian'
+ - ntp_service_enabled
+ # Hard code this so we will skip the entire file instead of individual tasks (Default isn't Consistent)
+ static: False
+
+- name: include ntp rpm setup tasks
+ include: "misc/ntp_rpm.yml"
when:
- - ansible_os_family in ['RedHat', 'Debian']
+ - ansible_os_family in ['RedHat', 'Suse']
- ntp_service_enabled
# Hard code this so we will skip the entire file instead of individual tasks (Default isn't Consistent)
static: False
+++ /dev/null
----
-- name: install ntp on redhat
- package:
- name: ntp
- state: present
-
-- name: start the ntp service
- service:
- name: ntpd
- enabled: yes
- state: started
--- /dev/null
+---
+- name: install ntp
+ package:
+ name: ntp
+ state: present
+
+- name: start the ntp service
+ service:
+ name: ntpd
+ enabled: yes
+ state: started
- hdparm
- python-setuptools
+suse_package_dependencies:
+ - python-pycurl
+ - python-xml
+ - hdparm
+ - python-setuptools
+
# Whether or not to install the ceph-test package.
ceph_test: false
# ORIGIN SOURCE
#
# Choose between:
-# - 'repository' means that you will get ceph installed through a new repository. Later below choose between 'community', 'rhcs' or 'dev'
+# - 'repository' means that you will get ceph installed through a new repository. Later below choose between 'community', 'rhcs', 'dev' or 'obs'
# - 'distro' means that no separate repo file will be added
# you will get whatever version of Ceph is included in your Linux distro.
# 'local' means that the ceph binaries will be copied over from the local machine
- dev
- uca
- custom
+ - obs
# REPOSITORY: COMMUNITY VERSION
#ceph_stable_openstack_release_uca: liberty
#ceph_stable_release_uca: "{{ansible_lsb.codename}}-updates/{{ceph_stable_openstack_release_uca}}"
+# REPOSITORY: openSUSE OBS
+#
+# Enabled when ceph_repository == 'obs'
+#
+# This allows the install of Ceph from the openSUSE OBS repository. The OBS repository
+# usually has newer Ceph releases than the normal distro repository.
+#
+#
+#ceph_obs_repo: "https://download.opensuse.org/repositories/filesystems:/ceph:/luminous/openSUSE_Leap_{{ ansible_distribution_version }}/"
# REPOSITORY: DEV
#
when:
- systempython2.stat.exists is undefined or systempython2.stat.exists == false
+ - name: install python2 for opensuse
+ raw: sudo zypper -n install python-base creates=/usr/bin/python2.7
+ ignore_errors: yes
+ when:
+ - systempython2.stat.exists is undefined or systempython2.stat.exists == false
+
- name: gather facts
setup:
when: