| {%- from "ceph/map.jinja" import common, mon with context %} |
| |
| include: |
| - ceph.common |
| |
| mon_packages: |
| pkg.installed: |
| - names: {{ mon.pkgs }} |
| |
| /etc/ceph/ceph.conf: |
| file.managed: |
| - source: salt://ceph/files/{{ common.version }}/ceph.conf.{{ grains.os_family }} |
| - template: jinja |
| - require: |
| - pkg: mon_packages |
| |
| cluster_{{ grains.host }}_secret_key: |
| cmd.run: |
| - name: "ceph-authtool --create-keyring /etc/ceph/ceph.mon.{{ grains.host }}.keyring --gen-key -n mon. --cap mon 'allow *'" |
| - unless: "test -f /etc/ceph/ceph.mon.{{ grains.host }}.keyring" |
| - require: |
| - pkg: mon_packages |
| |
| add_admin_keyring_to_mon_keyring: |
| cmd.run: |
| - name: "ceph-authtool /etc/ceph/ceph.mon.{{ grains.host }}.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring" |
| - unless: "test -f /var/lib/ceph/mon/ceph-{{ grains.host }}/done" |
| - require: |
| - pkg: mon_packages |
| |
| generate_monmap: |
| cmd.run: |
| - name: "monmaptool --create {%- for member in common.members %} --add {{ member.name }} {{ member.host }} {%- endfor %} --fsid {{ common.fsid }} /tmp/monmap" |
| - unless: "test -f /tmp/monmap" |
| - require: |
| - pkg: mon_packages |
| |
| #/var/lib/ceph/mon/ceph-{{ grains.host }}: |
| # file.directory: |
| # - user: ceph |
| # - group: ceph |
| # - mode: 655 |
| # - makedirs: True |
| |
| /etc/ceph/ceph.mon.{{ grains.host }}.keyring: |
| file.managed: |
| - user: ceph |
| - group: ceph |
| - replace: false |
| - require: |
| - pkg: mon_packages |
| |
| populate_monmap: |
| cmd.run: |
| - name: "sudo -u ceph ceph-mon --mkfs -i {{ grains.host }} --monmap /tmp/monmap" |
| - unless: "test -f /var/lib/ceph/mon/ceph-{{ grains.host }}/kv_backend" |
| - require: |
| - pkg: mon_packages |
| |
| {% for keyring_name, keyring in mon.get('keyring', {}).iteritems() %} |
| |
| {%- if keyring_name == 'mon' and keyring.key is undefined %} |
| |
| cluster_secret_key: |
| cmd.run: |
| - name: "ceph-authtool --create-keyring /var/lib/ceph/mon/ceph-{{ grains.host }}/keyring --gen-key -n mon. {%- for cap_name, cap in keyring.caps.iteritems() %} --cap {{ cap_name }} '{{ cap }}' {%- endfor %}" |
| - unless: "test -f /var/lib/ceph/mon/ceph-{{ grains.host }}/done" |
| - require: |
| - pkg: mon_packages |
| |
| cluster_secret_key_flag: |
| file.managed: |
| - name: /var/lib/ceph/mon/ceph-{{ grains.host }}/done |
| - user: ceph |
| - group: ceph |
| - content: { } |
| - require: |
| - pkg: mon_packages |
| |
| {%- endif %} |
| |
| {% endfor %} |
| |
| /var/lib/ceph/mon/ceph-{{ grains.host }}/keyring: |
| file.managed: |
| - source: salt://ceph/files/mon_keyring |
| - template: jinja |
| - unless: "test -f /var/lib/ceph/mon/ceph-{{ grains.host }}/done" |
| - require: |
| - pkg: mon_packages |
| |
| /var/lib/ceph/mon/ceph-{{ grains.host }}/done: |
| file.managed: |
| - user: ceph |
| - group: ceph |
| - content: { } |
| - require: |
| - pkg: mon_packages |
| |
| mon_services: |
| service.running: |
| - enable: true |
| - names: [ceph-mon@{{ grains.host }}] |
| - watch: |
| - file: /etc/ceph/ceph.conf |
| - require: |
| - pkg: mon_packages |
| {%- if grains.get('noservices') %} |
| - onlyif: /bin/false |
| {%- endif %} |