mirror of https://github.com/ceph/ceph-ansible.git
ceph-common: Add initial support for openSUSE Leap distributions
openSUSE Leap 42.3 provides support for Ceph Luminous in both the distribution package and the latest available version in the OBS repository so add these as the only available installation methods for openSUSE. Signed-off-by: Markos Chandras <mchandras@suse.de>pull/2151/head
parent
b9ee96b56a
commit
849786967a
|
@ -80,6 +80,12 @@ dummy:
|
|||
# - 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
|
||||
|
||||
|
@ -116,7 +122,7 @@ dummy:
|
|||
# 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
|
||||
|
@ -134,6 +140,7 @@ dummy:
|
|||
# - dev
|
||||
# - uca
|
||||
# - custom
|
||||
# - obs
|
||||
|
||||
|
||||
# REPOSITORY: COMMUNITY VERSION
|
||||
|
@ -201,6 +208,15 @@ dummy:
|
|||
#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
|
||||
#
|
||||
|
@ -497,9 +513,9 @@ dummy:
|
|||
# do not ever change this here
|
||||
#rolling_update: false
|
||||
|
||||
|
||||
#####################
|
||||
# Docker pull retry #
|
||||
#####################
|
||||
#docker_pull_retry: 3
|
||||
#docker_pull_timeout: "300s"
|
||||
|
||||
|
|
|
@ -80,6 +80,12 @@ fetch_directory: ~/ceph-ansible-keys
|
|||
# - 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
|
||||
|
||||
|
@ -116,7 +122,7 @@ fetch_directory: ~/ceph-ansible-keys
|
|||
# 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
|
||||
|
@ -134,6 +140,7 @@ ceph_repository: rhcs
|
|||
# - dev
|
||||
# - uca
|
||||
# - custom
|
||||
# - obs
|
||||
|
||||
|
||||
# REPOSITORY: COMMUNITY VERSION
|
||||
|
@ -201,6 +208,15 @@ ceph_repository: rhcs
|
|||
#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
|
||||
#
|
||||
|
@ -497,9 +513,9 @@ ceph_repository: rhcs
|
|||
# do not ever change this here
|
||||
#rolling_update: false
|
||||
|
||||
|
||||
#####################
|
||||
# Docker pull retry #
|
||||
#####################
|
||||
#docker_pull_retry: 3
|
||||
#docker_pull_timeout: "300s"
|
||||
|
||||
|
|
|
@ -11,6 +11,9 @@ galaxy_info:
|
|||
- name: EL
|
||||
versions:
|
||||
- 7
|
||||
- name: opensuse
|
||||
versions:
|
||||
- 42.3
|
||||
categories:
|
||||
- system
|
||||
dependencies: []
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
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
|
||||
|
||||
|
@ -38,7 +38,7 @@
|
|||
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
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
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:
|
||||
|
@ -52,6 +52,13 @@
|
|||
- 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!"
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
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.
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
- name: include suse_obs_repository.yml
|
||||
include: suse_obs_repository.yml
|
||||
when:
|
||||
- ceph_repository == 'obs'
|
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
# 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
|
|
@ -0,0 +1,54 @@
|
|||
---
|
||||
- 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
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
- name: configure openSUSE ceph OBS repository
|
||||
zypper_repository:
|
||||
name: "OBS:filesystems:ceph"
|
||||
state: present
|
||||
uri: "{{ ceph_obs_repo }}"
|
||||
auto_import_keys: yes
|
||||
autorefresh: yes
|
|
@ -28,6 +28,15 @@
|
|||
# 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:
|
||||
|
@ -46,10 +55,18 @@
|
|||
# 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 in ['RedHat', 'Debian']
|
||||
- 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', 'Suse']
|
||||
- ntp_service_enabled
|
||||
# Hard code this so we will skip the entire file instead of individual tasks (Default isn't Consistent)
|
||||
static: False
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
- name: install ntp on redhat
|
||||
- name: install ntp
|
||||
package:
|
||||
name: ntp
|
||||
state: present
|
|
@ -72,6 +72,12 @@ redhat_package_dependencies:
|
|||
- 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
|
||||
|
||||
|
@ -108,7 +114,7 @@ ceph_custom: False # backward compatibility with stable-2.2, will disappear in s
|
|||
# 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
|
||||
|
@ -126,6 +132,7 @@ valid_ceph_repository:
|
|||
- dev
|
||||
- uca
|
||||
- custom
|
||||
- obs
|
||||
|
||||
|
||||
# REPOSITORY: COMMUNITY VERSION
|
||||
|
@ -193,6 +200,15 @@ ceph_rhcs_cdn_debian_repo_version: "/3-release/" # for GA, later for updates use
|
|||
#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
|
||||
#
|
||||
|
|
|
@ -43,6 +43,12 @@
|
|||
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:
|
||||
|
|
Loading…
Reference in New Issue