Skip to content
Snippets Groups Projects
Commit d0d193db authored by Nicolas KAROLAK's avatar Nicolas KAROLAK
Browse files

add ceph-rbd and ocfs2 roles

parent a23124b2
No related branches found
No related tags found
No related merge requests found
---
ceph_packages:
- ceph-common
ceph_mon_hosts: []
ceph_login:
ceph_password:
ceph_pool_name:
ceph_image_name:
ceph_image_format: 2
ceph_image_size: 2T
ceph_parameters:
- "--size {{ ceph_image_size }}"
- "--image-format {{ ceph_image_format }}"
- "--image-feature layering"
...
---
- name: enable rbdmap service
systemd:
name: rbdmap
state: restarted
...
---
- name: install ceph
apt:
force_apt_get: true
install_recommends: false
name: "{{ ceph_packages }}"
- name: ceph config
template:
src: ceph.conf.j2
dest: /etc/ceph/ceph.conf
- name: ceph keyring
template:
src: ceph.client.user.keyring.j2
dest: /etc/ceph/ceph.client.{{ ceph_login }}.keyring
mode: 0600
- name: check rbd image presence
when: inventory_hostname == play_hosts[0]
register: ceph_check_image
changed_when: ceph_check_image.stdout != ceph_image_name
command:
cmd: rbd -n client.{{ ceph_login }} list {{ ceph_pool_name }}
- name: create rbd image
when:
- ceph_check_image.changed
- inventory_hostname == play_hosts[0]
command:
cmd: rbd -n client.{{ ceph_login }} create {{ ceph_pool_name }}/{{ ceph_image_name }} {% for param in ceph_parameters %}{{ param }} {% endfor %}
- name: map rbd image to device
command:
cmd: rbd -n client.{{ ceph_login }} map {{ ceph_pool_name }}/{{ ceph_image_name }}
creates: /dev/rbd0
- name: configure rbd map at boot
notify: restart rbdmap
lineinfile:
path: /etc/ceph/rbdmap
backup: true
line: "{{ ceph_pool_name }}/{{ ceph_image_name }} id={{ ceph_login }},keyring=/etc/ceph/ceph.client.{{ ceph_login }}.keyring"
- name: enable rbdmap service
systemd:
name: rbdmap
enabled: true
state: started
...
[client.{{ ceph_login }}]
key = {{ ceph_password }}
[global]
mon_host = {{ ceph_mon_hosts | join(',') }}
---
ocfs2_packages:
- ocfs2-tools
ocfs2_mount_path:
ocfs2_mount_device:
ocfs2_firewall_enabled: true
ocfs2_ferm_rules_filename: ocfs2
ocfs2_ferm_input_rules:
- saddr: "{{ play_hosts | map('extract', hostvars, ['ansible_default_ipv4', 'address']) | list }}"
proto:
- tcp
- udp
dport:
- 7777
ocfs2_ferm_output_rules: []
ocfs2_ferm_global_settings:
...
---
- name: restart o2cb
systemd:
name: o2cb
state: restarted
...
---
- name: install packages
apt:
force_apt_get: true
install_recommends: false
name: "{{ ocfs2_packages }}"
- name: configure cluster
notify: restart o2cb
template:
src: cluster.conf.j2
dest: /etc/ocfs2/cluster.conf
- name: load at boot
notify: restart o2cb
replace:
path: /etc/default/o2cb
regexp: '^O2CB_ENABLED=.*$'
replace: 'O2CB_ENABLED=true'
backup: true
- meta: flush_handlers
- name: format mapped device
when: inventory_hostname == play_hosts[0]
filesystem:
fstype: ocfs2
opts: -T mail
dev: /dev/rbd0
- name: mount mapped device
mount:
path: "{{ ocfs2_mount_path }}"
src: "{{ ocfs2_mount_device }}"
fstype: ocfs2
opts: _netdev,nointr,noatime
backup: true
state: mounted
# FIREWALL
- name: firewall
when: ocfs2_firewall_enabled
vars:
ferm_rules_filename: "{{ ocfs2_ferm_rules_filename }}"
ferm_input_rules: "{{ ocfs2_ferm_input_rules }}"
ferm_output_rules: "{{ ocfs2_ferm_output_rules }}"
ferm_global_settings: "{{ ocfs2_ferm_global_settings }}"
include_role:
name: ferm
...
cluster:
node_count = {{ play_hosts | length }}
name = ocfs2
{% for host in play_hosts %}
node:
ip_port = 7777
ip_address = {{ hostvars[host]['ansible_default_ipv4']['address'] }}
number = {{ loop.index }}
name = {{ host }}
cluster = ocfs2
{% endfor %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment