X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=playbooks%2Fsite.yml;fp=playbooks%2Fsite.yml;h=be2fc87c771d101627418517a02171aac0603d2c;hb=74a49ba6ef2ea715fa492db0bcd85c30398688e8;hp=0000000000000000000000000000000000000000;hpb=a936af362724cca0c5dc2c424902d398f9833410;p=ta%2Finfra-ansible.git diff --git a/playbooks/site.yml b/playbooks/site.yml new file mode 100644 index 0000000..be2fc87 --- /dev/null +++ b/playbooks/site.yml @@ -0,0 +1,168 @@ +--- + +# Copyright 2019 Nokia + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# 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: + - ceph-defaults + - ceph-common + - { role: ceph-config, when: "ceph_release_num.{{ ceph_release }} >= ceph_release_num.luminous" } + - { role: ceph-mgr, when: "ceph_release_num.{{ ceph_release }} >= ceph_release_num.luminous" } + +- 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 + - { role: ceph-config, when: "ceph_release_num.{{ ceph_release }} >= ceph_release_num.luminous" } + - { role: ceph-nfs, when: "ceph_release_num.{{ ceph_release }} >= ceph_release_num.luminous" } + +- 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: + - ceph-defaults + - ceph-common + - { role: ceph-config, when: "ceph_release_num.{{ ceph_release }} >= ceph_release_num.luminous" } + - { role: ceph-iscsi-gw, when: "ceph_release_num.{{ ceph_release }} >= ceph_release_num.luminous" } +