mirror of https://github.com/ceph/ceph-ansible.git
common: automate setting up online repositories for ceph deployments on debian nodes
This commits automates the process of setting up online repositories for Red Hat Ceph Storage on Debian nodes. The manual steps are currently described here: https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/2/html/installation_guide_for_ubuntu/prerequisites#online_repositories If you are an RHCS customer and run a Debian based system you can now access package through the Red Hat CDN. For this set: ceph_rhcs and ceph_rhcs_cdn_install to true. Then set your customer credentials in ceph_rhcs_cdn_debian_repo. Replace customername:customerpasswd with your details. Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1434175 Signed-off-by: Sébastien Han <seb@redhat.com>pull/1734/head
parent
6e379157ec
commit
7559a2deff
|
@ -159,6 +159,7 @@ dummy:
|
|||
# version. The previous version was 1.3. The current version is 2.
|
||||
#ceph_rhcs_version: "{{ ceph_stable_rh_storage_version | default(2) }}"
|
||||
#ceph_rhcs_cdn_install: "{{ ceph_stable_rh_storage_cdn_install | default(false) }}" # assumes all the nodes can connect to cdn.redhat.com
|
||||
#ceph_rhcs_cdn_debian_repo: https://customername:customerpasswd@rhcs.download.redhat.com
|
||||
#ceph_rhcs_iso_install: "{{ ceph_stable_rh_storage_iso_install | default(false) }}" # usually used when nodes don't have access to cdn.redhat.com
|
||||
#ceph_rhcs_iso_path: "{{ ceph_stable_rh_storage_iso_path | default('') }}"
|
||||
#ceph_rhcs_mount_path: "{{ ceph_stable_rh_storage_mount_path | default('/tmp/rh-storage-mount') }}"
|
||||
|
|
|
@ -51,6 +51,17 @@
|
|||
tags:
|
||||
- package-install
|
||||
|
||||
- name: verify that ceph_rhcs_cdn_debian_repo url is valid for red hat storage
|
||||
fail:
|
||||
msg: "ceph_rhcs_cdn_debian_repo url is invalid, please set your customername:customerpasswd"
|
||||
when:
|
||||
- ceph_rhcs
|
||||
- ceph_rhcs_cdn_install
|
||||
- ansible_os_family == 'Debian'
|
||||
- ceph_rhcs_cdn_debian_repo == 'https://customername:customerpasswd@rhcs.download.redhat.com'
|
||||
tags:
|
||||
- package-install
|
||||
|
||||
- name: make sure monitor_interface or monitor_address is defined
|
||||
fail:
|
||||
msg: "you must set monitor_interface or monitor_address"
|
||||
|
|
|
@ -1,40 +1,4 @@
|
|||
---
|
||||
# NOTE: this assumes that the ISO will always have a MON directory. Current
|
||||
# ISOs have MON, OSD, Tools, and Agent. If ISOs change the layout or provide
|
||||
# certain repos depending on the type of node this task will require a more
|
||||
# intelligent way to determine the location of the key.
|
||||
- name: install the red hat ceph storage repository key
|
||||
apt_key:
|
||||
file: "{{ ceph_rhcs_repository_path }}/MON/release.asc"
|
||||
state: present
|
||||
when: ceph_rhcs_iso_install
|
||||
|
||||
- name: add red hat ceph storage repositories
|
||||
apt_repository:
|
||||
repo: "deb file://{{ ceph_rhcs_repository_path }}/{{ item }}/ {{ ansible_lsb.codename }} main"
|
||||
state: present
|
||||
changed_when: false
|
||||
with_items:
|
||||
- "MON"
|
||||
- "OSD"
|
||||
- "Tools"
|
||||
- "Agent"
|
||||
when: ceph_rhcs_iso_install
|
||||
|
||||
- name: set apt pinning for red hat ceph storage
|
||||
template:
|
||||
src: "{{ role_path }}/templates/rhcs.pref.j2"
|
||||
dest: /etc/apt/preferences.d/rhcs.pref
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
|
||||
- name: add red hat storage apt-key
|
||||
apt_key:
|
||||
data: "{{ lookup('file', role_path+'/files/cephstablerhcs.asc') }}"
|
||||
state: present
|
||||
when: not ceph_rhcs_iso_install
|
||||
|
||||
- name: install dependencies
|
||||
apt:
|
||||
pkg: "{{ item }}"
|
||||
|
|
|
@ -31,6 +31,16 @@
|
|||
# Hard code this so we will skip the entire file instead of individual tasks (Default isn't Consistent)
|
||||
static: False
|
||||
|
||||
- include: ./pre_requisites/prerequisite_rhcs_cdn_install_debian.yml
|
||||
when:
|
||||
- ceph_rhcs
|
||||
- ceph_rhcs_cdn_install
|
||||
- ansible_os_family == "Debian"
|
||||
tags:
|
||||
- package-install
|
||||
# Hard code this so we will skip the entire file instead of individual tasks (Default isn't Consistent)
|
||||
static: False
|
||||
|
||||
- include: ./installs/install_on_redhat.yml
|
||||
when:
|
||||
- ansible_os_family == 'RedHat'
|
||||
|
@ -40,19 +50,19 @@
|
|||
# Hard code this so we will skip the entire file instead of individual tasks (Default isn't Consistent)
|
||||
static: False
|
||||
|
||||
- include: ./installs/install_rh_storage_on_redhat.yml
|
||||
- include: ./installs/install_on_debian.yml
|
||||
when:
|
||||
- ansible_distribution == "RedHat"
|
||||
- ceph_rhcs
|
||||
- ansible_os_family == 'Debian'
|
||||
- not ceph_rhcs
|
||||
tags:
|
||||
- package-install
|
||||
# Hard code this so we will skip the entire file instead of individual tasks (Default isn't Consistent)
|
||||
static: False
|
||||
|
||||
- include: ./installs/install_on_debian.yml
|
||||
- include: ./installs/install_rh_storage_on_redhat.yml
|
||||
when:
|
||||
- ansible_os_family == 'Debian'
|
||||
- not ceph_rhcs
|
||||
- ceph_rhcs
|
||||
- ansible_distribution == "RedHat"
|
||||
tags:
|
||||
- package-install
|
||||
# Hard code this so we will skip the entire file instead of individual tasks (Default isn't Consistent)
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
- name: install red hat storage repository key for debian systems
|
||||
apt_key:
|
||||
data: "{{ lookup('file', role_path+'/files/cephstablerhcs.asc') }}"
|
||||
state: present
|
||||
|
||||
- name: enable red hat storage monitor repository for debian systems
|
||||
apt_repository:
|
||||
repo: "deb {{ ceph_rhcs_cdn_debian_repo }}/2-updates/MON {{ ceph_stable_distro_source | default(ansible_lsb.codename) }} main"
|
||||
state: present
|
||||
changed_when: false
|
||||
when: mon_group_name in group_names
|
||||
|
||||
- name: enable red hat storage osd repository for debian systems
|
||||
apt_repository:
|
||||
repo: "deb {{ ceph_rhcs_cdn_debian_repo }}/2-updates/OSD {{ ceph_stable_distro_source | default(ansible_lsb.codename) }} main"
|
||||
state: present
|
||||
changed_when: false
|
||||
when: osd_group_name in group_names
|
||||
|
||||
- name: enable red hat storage rados gateway / mds repository for debian systems
|
||||
apt_repository:
|
||||
repo: "deb {{ ceph_rhcs_cdn_debian_repo }}/2-updates/Tools {{ ceph_stable_distro_source | default(ansible_lsb.codename) }} main"
|
||||
state: present
|
||||
changed_when: false
|
||||
when: (rgw_group_name in group_names or mds_group_name in group_names)
|
||||
|
||||
- name: enable red hat storage agent repository for debian systems
|
||||
apt_repository:
|
||||
repo: "deb {{ ceph_rhcs_cdn_debian_repo }}/2-updates/Agent {{ ceph_stable_distro_source | default(ansible_lsb.codename) }} main"
|
||||
state: present
|
||||
changed_when: false
|
|
@ -41,3 +41,22 @@
|
|||
src: "{{ ceph_rhcs_iso_path }}"
|
||||
fstype: iso9660
|
||||
state: unmounted
|
||||
|
||||
- name: install the red hat ceph storage repository key
|
||||
apt_key:
|
||||
file: "{{ ceph_rhcs_repository_path }}/MON/release.asc"
|
||||
state: present
|
||||
when: ceph_rhcs_iso_install
|
||||
|
||||
- name: add red hat ceph storage repositories
|
||||
apt_repository:
|
||||
repo: "deb file://{{ ceph_rhcs_repository_path }}/{{ item }}/ {{ ansible_lsb.codename }} main"
|
||||
state: present
|
||||
changed_when: false
|
||||
with_items:
|
||||
- "MON"
|
||||
- "OSD"
|
||||
- "Tools"
|
||||
- "Agent"
|
||||
when: ceph_rhcs_iso_install
|
||||
|
||||
|
|
|
@ -151,6 +151,7 @@ ceph_rhcs: "{{ ceph_stable_rh_storage | default(false) }}"
|
|||
# version. The previous version was 1.3. The current version is 2.
|
||||
ceph_rhcs_version: "{{ ceph_stable_rh_storage_version | default(2) }}"
|
||||
ceph_rhcs_cdn_install: "{{ ceph_stable_rh_storage_cdn_install | default(false) }}" # assumes all the nodes can connect to cdn.redhat.com
|
||||
ceph_rhcs_cdn_debian_repo: https://customername:customerpasswd@rhcs.download.redhat.com
|
||||
ceph_rhcs_iso_install: "{{ ceph_stable_rh_storage_iso_install | default(false) }}" # usually used when nodes don't have access to cdn.redhat.com
|
||||
ceph_rhcs_iso_path: "{{ ceph_stable_rh_storage_iso_path | default('') }}"
|
||||
ceph_rhcs_mount_path: "{{ ceph_stable_rh_storage_mount_path | default('/tmp/rh-storage-mount') }}"
|
||||
|
|
Loading…
Reference in New Issue