--- # Copyright 2016, Logan Vig # # 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. - name: Install ceph mons hosts: ceph-mon user: root vars_files: - "defaults/{{ install_method }}_install.yml" pre_tasks: - include: common-tasks/os-log-dir-setup.yml vars: log_dirs: - src: "/openstack/log/{{ inventory_hostname }}-ceph" dest: "/var/log/ceph" - include: "common-tasks/os-{{ container_tech | default('lxc') }}-container-setup.yml" when: not is_metal static: no vars: list_of_bind_mounts: "{{ ceph_container_bind_mounts }}" - include: common-tasks/unbound-clients.yml static: no when: - hostvars['localhost']['resolvconf_enabled'] | bool #TODO: mgariepy, revisit to use include_role when https://github.com/ansible/ansible/issues/20077 is fixed - name: install the ceph stable repository key rpm_key: key: "{{ ceph_stable_key }}" state: present when: - ceph_origin == 'repository' - ceph_repository == 'community' - ansible_pkg_mgr in ['yum', 'dnf'] - name: add ceph stable repository package: name: http://download.ceph.com/rpm-{{ ceph_stable_release }}/{{ ceph_stable_redhat_distro }}/noarch/ceph-release-1-0.{{ ceph_stable_redhat_distro|replace('rhel', 'el') }}.noarch.rpm state: present changed_when: false when: - ceph_origin == 'repository' - ceph_repository == 'community' - ansible_pkg_mgr in ['yum', 'dnf'] - name: Purge yum/dnf cache command: "{{ ansible_pkg_mgr }} clean all" when: - ansible_pkg_mgr in ['yum', 'dnf'] tags: - skip_ansible_lint - name: Set default priority for Ceph repos command: > yum-config-manager --enable Ceph --setopt="Ceph.priority=99" --enable Ceph-noarch --setopt="Ceph-noarch.priority=99" when: - ansible_pkg_mgr in ['yum', 'dnf'] - name: Create systemd service directory file: path: "/etc/systemd/system/ceph-mon@.service.d/" state: directory group: "root" owner: "root" mode: "0755" when: - ansible_pkg_mgr in ['yum', 'dnf'] - ansible_service_mgr == 'systemd' - name: Add systemd override for PrivateDevices copy: dest: "/etc/systemd/system/ceph-mon@.service.d/ceph-mon-systemd-overrides.conf" content: | [Service] PrivateDevices=false when: - ansible_pkg_mgr in ['yum', 'dnf'] - ansible_service_mgr == 'systemd' - name: Ensure Ansible can work with SELinux package: name: libselinux-python state: present when: - ansible_pkg_mgr in ['yum', 'dnf'] roles: - role: ceph-defaults tags: - skip_ansible_lint - role: ceph-handler tags: - skip_ansible_lint - role: ceph-common tags: - skip_ansible_lint - role: ceph-config tags: - skip_ansible_lint - role: ceph-mon tags: - skip_ansible_lint - role: ceph-mgr tags: - skip_ansible_lint - role: system_crontab_coordination tags: - crontab post_tasks: - include_tasks: "common-tasks/rsyslog-client.yml" vars: rsyslog_client_log_rotate_file: ceph_log_rotate rsyslog_client_log_dir: "/var/log/ceph" rsyslog_client_config_name: "99-ceph-rsyslog-client.conf" vars: ansible_python_interpreter: "/usr/bin/python" environment: "{{ deployment_environment_variables | default({}) }}" tags: - ceph - ceph-mon - name: Install ceph osds hosts: ceph-osd user: root vars_files: - "defaults/{{ install_method }}_install.yml" pre_tasks: - include: common-tasks/os-log-dir-setup.yml vars: log_dirs: - src: "/openstack/log/{{ inventory_hostname }}-ceph" dest: "/var/log/ceph" - include: common-tasks/unbound-clients.yml static: no when: - hostvars['localhost']['resolvconf_enabled'] | bool #TODO: mgariepy, revisit to use include_role when https://github.com/ansible/ansible/issues/20077 is fixed - name: install the ceph stable repository key rpm_key: key: "{{ ceph_stable_key }}" state: present when: - ceph_origin == 'repository' - ceph_repository == 'community' - ansible_pkg_mgr in ['yum', 'dnf'] - name: add ceph stable repository package: name: http://download.ceph.com/rpm-{{ ceph_stable_release }}/{{ ceph_stable_redhat_distro }}/noarch/ceph-release-1-0.{{ ceph_stable_redhat_distro|replace('rhel', 'el') }}.noarch.rpm state: present changed_when: false when: - ceph_origin == 'repository' - ceph_repository == 'community' - ansible_pkg_mgr in ['yum', 'dnf'] - name: Purge yum/dnf cache command: "{{ ansible_pkg_mgr }} clean all" when: - ansible_pkg_mgr in ['yum', 'dnf'] tags: - skip_ansible_lint - name: Set default priority for Ceph repos command: > yum-config-manager --enable Ceph --setopt="Ceph.priority=99" --enable Ceph-noarch --setopt="Ceph-noarch.priority=99" when: - ansible_pkg_mgr in ['yum', 'dnf'] - name: Gather ceph-mon facts action: setup delegate_to: "{{ item }}" delegate_facts: yes with_items: "{{ groups[mon_group_name] }}" when: - inventory_hostname == ansible_play_hosts[0] tags: - ceph-osd - ceph-mon-facts roles: - role: ceph-defaults tags: - skip_ansible_lint - role: ceph-handler tags: - skip_ansible_lint - role: ceph-common tags: - skip_ansible_lint - role: ceph-config tags: - skip_ansible_lint - role: ceph-osd tags: - skip_ansible_lint - role: system_crontab_coordination tags: - crontab post_tasks: - include_tasks: "common-tasks/rsyslog-client.yml" vars: rsyslog_client_log_rotate_file: ceph_log_rotate rsyslog_client_log_dir: "/var/log/ceph" rsyslog_client_config_name: "99-ceph-rsyslog-client.conf" environment: "{{ deployment_environment_variables | default({}) }}" tags: - ceph - ceph-osd