mirror of https://github.com/ceph/ceph-ansible.git
154 lines
3.5 KiB
Plaintext
154 lines
3.5 KiB
Plaintext
---
|
|
# Defines deployment design and assigns role to server groups
|
|
|
|
- hosts:
|
|
- mons
|
|
- agents
|
|
- osds
|
|
- mdss
|
|
- rgws
|
|
- nfss
|
|
- restapis
|
|
- rbdmirrors
|
|
- clients
|
|
- mgrs
|
|
- iscsi_gws
|
|
|
|
gather_facts: false
|
|
|
|
tags:
|
|
- always
|
|
|
|
tasks:
|
|
# If we can't get python2 installed before any module is used we will fail
|
|
# so just try what we can to get it installed
|
|
- name: check for python2
|
|
stat:
|
|
path: /usr/bin/python
|
|
ignore_errors: yes
|
|
register: systempython2
|
|
|
|
- name: install python2 for debian based systems
|
|
raw: sudo apt-get -y install python-simplejson
|
|
ignore_errors: yes
|
|
when:
|
|
- systempython2.stat.exists is undefined or systempython2.stat.exists == false
|
|
|
|
- name: install python2 for fedora
|
|
raw: sudo dnf -y install python creates=/usr/bin/python
|
|
ignore_errors: yes
|
|
when:
|
|
- systempython2.stat.exists is undefined or systempython2.stat.exists == false
|
|
|
|
- name: gather and delegate facts
|
|
setup:
|
|
delegate_to: "{{ item }}"
|
|
delegate_facts: True
|
|
with_items: "{{ groups['all'] }}"
|
|
|
|
- name: install required packages for fedora > 23
|
|
raw: sudo dnf -y install python2-dnf libselinux-python ntp
|
|
when:
|
|
- ansible_distribution == 'Fedora'
|
|
- ansible_distribution_major_version|int >= 23
|
|
|
|
- hosts: mons
|
|
gather_facts: false
|
|
become: True
|
|
roles:
|
|
- ceph-defaults
|
|
- ceph-common
|
|
- ceph-config
|
|
- ceph-mon
|
|
|
|
- hosts: mgrs
|
|
gather_facts: false
|
|
become: True
|
|
roles:
|
|
- { role: ceph-defaults, when: "ceph_release_num.{{ ceph_stable_release }} > ceph_release_num.jewel" }
|
|
- { role: ceph-common, when: "ceph_release_num.{{ ceph_stable_release }} > ceph_release_num.jewel" }
|
|
- { role: ceph-config, when: "ceph_release_num.{{ ceph_stable_release }} > ceph_release_num.jewel" }
|
|
- { role: ceph-mgr, when: "ceph_release_num.{{ ceph_stable_release }} > ceph_release_num.jewel" }
|
|
|
|
- hosts: agents
|
|
gather_facts: false
|
|
become: True
|
|
roles:
|
|
- ceph-defaults
|
|
- ceph-common
|
|
- ceph-config
|
|
- ceph-agent
|
|
|
|
- hosts: osds
|
|
gather_facts: false
|
|
become: True
|
|
roles:
|
|
- ceph-defaults
|
|
- ceph-common
|
|
- ceph-config
|
|
- ceph-osd
|
|
|
|
- hosts: mdss
|
|
gather_facts: false
|
|
become: True
|
|
roles:
|
|
- ceph-defaults
|
|
- ceph-common
|
|
- ceph-config
|
|
- ceph-mds
|
|
|
|
- hosts: rgws
|
|
gather_facts: false
|
|
become: True
|
|
roles:
|
|
- ceph-defaults
|
|
- ceph-common
|
|
- ceph-config
|
|
- ceph-rgw
|
|
|
|
- hosts: nfss
|
|
gather_facts: false
|
|
become: True
|
|
roles:
|
|
- ceph-defaults
|
|
- ceph-common
|
|
- ceph-config
|
|
- ceph-nfs
|
|
|
|
- hosts: restapis
|
|
gather_facts: false
|
|
become: True
|
|
roles:
|
|
- ceph-defaults
|
|
- ceph-common
|
|
- ceph-config
|
|
- ceph-restapi
|
|
|
|
- hosts: rbdmirrors
|
|
gather_facts: false
|
|
become: True
|
|
roles:
|
|
- ceph-defaults
|
|
- ceph-common
|
|
- ceph-config
|
|
- ceph-rbd-mirror
|
|
|
|
- hosts: clients
|
|
gather_facts: false
|
|
become: True
|
|
roles:
|
|
- ceph-defaults
|
|
- ceph-common
|
|
- ceph-config
|
|
- ceph-client
|
|
|
|
- hosts: iscsi_gws
|
|
gather_facts: false
|
|
become: True
|
|
roles:
|
|
- { role: ceph-defaults, when: "ceph_release_num.{{ ceph_stable_release }} >= ceph_release_num.luminous" }
|
|
- { role: ceph-common, when: "ceph_release_num.{{ ceph_stable_release }} >= ceph_release_num.luminous" }
|
|
- { role: ceph-config, when: "ceph_release_num.{{ ceph_stable_release }} >= ceph_release_num.luminous" }
|
|
- { role: ceph-iscsi-gw, when: "ceph_release_num.{{ ceph_stable_release }} >= ceph_release_num.luminous" }
|
|
|