mirror of https://github.com/ceph/ceph-ansible.git
117 lines
4.2 KiB
YAML
117 lines
4.2 KiB
YAML
---
|
|
- name: red hat based systems tasks
|
|
when: ansible_facts['os_family'] == 'RedHat'
|
|
block:
|
|
- name: set_fact common_pkgs
|
|
set_fact:
|
|
common_pkgs:
|
|
- tcmu-runner
|
|
- targetcli
|
|
|
|
- name: set_fact base iscsi pkgs if new style ceph-iscsi
|
|
set_fact:
|
|
iscsi_base:
|
|
- ceph-iscsi
|
|
when: use_new_ceph_iscsi | bool
|
|
|
|
- name: set_fact base iscsi pkgs if using older ceph-iscsi-config
|
|
set_fact:
|
|
iscsi_base:
|
|
- ceph-iscsi-cli
|
|
- ceph-iscsi-config
|
|
when: not use_new_ceph_iscsi | bool
|
|
|
|
- name: when ceph_iscsi_config_dev is true
|
|
when:
|
|
- ceph_origin == 'repository'
|
|
- ceph_repository in ['dev', 'community']
|
|
- ceph_iscsi_config_dev | bool
|
|
block:
|
|
- name: get latest available build for tcmu-runner
|
|
uri:
|
|
url: "https://shaman.ceph.com/api/search/?status=ready&project=tcmu-runner&flavor=default&distros=centos/{{ ansible_facts['distribution_major_version'] }}/{{ ansible_facts['architecture'] }}&ref={{ ceph_dev_branch }}&sha1={{ ceph_dev_sha1 }}"
|
|
return_content: yes
|
|
run_once: true
|
|
register: latest_build_tcmu_runner
|
|
|
|
- name: fetch ceph red hat development repository for tcmu-runner
|
|
uri:
|
|
# Use the centos repo since we don't currently have a dedicated red hat repo
|
|
url: "{{ (latest_build_tcmu_runner.content | from_json)[0]['chacra_url'] }}repo"
|
|
return_content: yes
|
|
register: ceph_dev_yum_repo_tcmu_runner
|
|
|
|
- name: configure ceph red hat development repository for tcmu-runner
|
|
copy:
|
|
content: "{{ ceph_dev_yum_repo_tcmu_runner.content }}"
|
|
dest: '/etc/yum.repos.d/tcmu-runner-dev.repo'
|
|
owner: root
|
|
group: root
|
|
backup: yes
|
|
|
|
- name: get latest available build for ceph-iscsi
|
|
uri:
|
|
url: "https://shaman.ceph.com/api/search/?status=ready&project={{ item }}&flavor=default&distros=centos/{{ ansible_facts['distribution_major_version'] }}/noarch&ref={{ ceph_dev_branch }}&sha1={{ ceph_dev_sha1 }}"
|
|
return_content: yes
|
|
run_once: true
|
|
register: latest_build_ceph_iscsi
|
|
with_items: "{{ iscsi_base }}"
|
|
|
|
- name: fetch ceph red hat development repository for ceph-iscsi
|
|
uri:
|
|
# Use the centos repo since we don't currently have a dedicated red hat repo
|
|
url: "{{ (item.content | from_json)[0]['chacra_url'] }}repo"
|
|
return_content: yes
|
|
register: ceph_dev_yum_repo_ceph_iscsi
|
|
with_items: "{{ latest_build_ceph_iscsi.results }}"
|
|
|
|
- name: configure ceph red hat development repository for tcmu-runner
|
|
copy:
|
|
content: "{{ item.content }}"
|
|
dest: '/etc/yum.repos.d/{{ item.item.item }}-dev.repo'
|
|
owner: root
|
|
group: root
|
|
backup: yes
|
|
with_items: '{{ ceph_dev_yum_repo_ceph_iscsi.results }}'
|
|
|
|
- name: ceph-iscsi stable repository
|
|
get_url:
|
|
url: "https://download.ceph.com/ceph-iscsi/{{ '3' if use_new_ceph_iscsi | bool else '2' }}/rpm/el{{ ansible_facts['distribution_major_version'] }}/ceph-iscsi.repo"
|
|
dest: /etc/yum.repos.d/ceph-iscsi.repo
|
|
force: true
|
|
register: result
|
|
until: result is succeeded
|
|
when: ceph_repository == 'community'
|
|
|
|
- name: install ceph iscsi package
|
|
package:
|
|
name: "{{ common_pkgs + iscsi_base }}"
|
|
state: "{{ (upgrade_ceph_packages|bool) | ternary('latest','present') }}"
|
|
register: result
|
|
until: result is succeeded
|
|
|
|
- name: check the status of the target.service override
|
|
stat:
|
|
path: /etc/systemd/system/target.service
|
|
register: target
|
|
|
|
- name: mask the target service - preventing manual start
|
|
systemd:
|
|
name: target
|
|
masked: yes
|
|
enabled: no
|
|
when:
|
|
- target.stat.exists
|
|
- not target.stat.islnk
|
|
|
|
# Only start tcmu-runner, so configure_iscsi.yml can create disks.
|
|
# We must start rbd-target-gw/api after configure_iscsi.yml to avoid
|
|
# races where they are both trying to setup the same object during
|
|
# a rolling update.
|
|
- name: start tcmu-runner
|
|
service:
|
|
name: tcmu-runner
|
|
state: started
|
|
enabled: yes
|
|
masked: no
|