Move that new gluster work into a role for re-use.
This commit is contained in:
parent
875f037128
commit
206a6bc769
3 changed files with 87 additions and 64 deletions
|
@ -55,71 +55,22 @@
|
||||||
- /srv/web/infra/ansible/vars/global.yml
|
- /srv/web/infra/ansible/vars/global.yml
|
||||||
- "/srv/private/ansible/vars.yml"
|
- "/srv/private/ansible/vars.yml"
|
||||||
- "{{ vars_path }}/{{ ansible_distribution }}.yml"
|
- "{{ vars_path }}/{{ ansible_distribution }}.yml"
|
||||||
vars:
|
|
||||||
gluster_brick_dir: /srv/glusterfs/
|
|
||||||
gluster_mount_dir: /srv/odcs
|
|
||||||
gluster_brick_name: odcs
|
|
||||||
gluster_server_group: odcs-stg
|
|
||||||
tasks:
|
|
||||||
- name: install needed packages for server
|
|
||||||
package: name={{ item }} state=present
|
|
||||||
with_items:
|
|
||||||
- glusterfs-server
|
|
||||||
tags:
|
|
||||||
- packages
|
|
||||||
|
|
||||||
- name: start glusterd for the server
|
roles:
|
||||||
service: name=glusterd state=started enabled=true
|
- role: gluster/consolidated
|
||||||
|
gluster_brick_dir: /srv/glusterfs/
|
||||||
- name: Servers discover each other.
|
gluster_mount_dir: /srv/odcs
|
||||||
command: gluster peer probe {{ item }}
|
gluster_brick_name: odcs
|
||||||
with_items: '{{groups[gluster_server_group]}}'
|
gluster_server_group: odcs-stg
|
||||||
run_once: true
|
tags: gluster
|
||||||
|
when: env == 'staging'
|
||||||
- name: install needed packages for client
|
- role: gluster/consolidated
|
||||||
package: name={{ item }} state=present
|
gluster_brick_dir: /srv/glusterfs/
|
||||||
with_items:
|
gluster_mount_dir: /srv/odcs
|
||||||
- glusterfs-fuse
|
gluster_brick_name: odcs
|
||||||
- libselinux-python
|
gluster_server_group: odcs
|
||||||
tags:
|
tags: gluster
|
||||||
- packages
|
when: env != 'staging'
|
||||||
- gluster
|
|
||||||
|
|
||||||
- name: set sebooleans so httpd can talk to the gluster mount.
|
|
||||||
seboolean: name={{ item }}
|
|
||||||
state=true
|
|
||||||
persistent=true
|
|
||||||
with_items:
|
|
||||||
- nis_enabled
|
|
||||||
- httpd_use_fusefs
|
|
||||||
tags:
|
|
||||||
- gluster
|
|
||||||
|
|
||||||
- name: Ensure Gluster brick and mount directories exist.
|
|
||||||
file: "path={{ item }} state=directory mode=0775"
|
|
||||||
with_items:
|
|
||||||
- "{{ gluster_brick_dir }}"
|
|
||||||
- "{{ gluster_mount_dir }}"
|
|
||||||
|
|
||||||
- name: Configure Gluster volume.
|
|
||||||
gluster_volume:
|
|
||||||
state: present
|
|
||||||
name: "{{ gluster_brick_name }}"
|
|
||||||
brick: "{{ gluster_brick_dir }}"
|
|
||||||
replicas: 2
|
|
||||||
cluster: "{{ groups[gluster_server_group] | join(',') }}"
|
|
||||||
host: "{{ inventory_hostname }}"
|
|
||||||
force: yes
|
|
||||||
run_once: true
|
|
||||||
ignore_errors: true
|
|
||||||
|
|
||||||
- name: Ensure Gluster volume is mounted.
|
|
||||||
mount:
|
|
||||||
name: "{{ gluster_mount_dir }}"
|
|
||||||
src: "{{ inventory_hostname }}:/{{ gluster_brick_name }}"
|
|
||||||
fstype: glusterfs
|
|
||||||
opts: "defaults,_netdev"
|
|
||||||
state: mounted
|
|
||||||
|
|
||||||
- name: Set up odcs frontend service
|
- name: Set up odcs frontend service
|
||||||
hosts: odcs-frontend:odcs-frontend-stg
|
hosts: odcs-frontend:odcs-frontend-stg
|
||||||
|
|
13
roles/gluster/consolidated/README.md
Normal file
13
roles/gluster/consolidated/README.md
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
# gluster/consolidated
|
||||||
|
|
||||||
|
Three things to know about this role:
|
||||||
|
|
||||||
|
- It consolidates the gluster/server and gluster/client roles.
|
||||||
|
- It gets gluster working on F25 and F26.
|
||||||
|
- It requires a ton of open ports on the hosts for `gluster peer probe` to work.
|
||||||
|
See `inventory/group_vars/odcs-backend` for an example.
|
||||||
|
|
||||||
|
Our older gluster/server and gluster/client roles only seemed to work for el7.
|
||||||
|
The advice from `#gluster` was to use the `gluster_volume` ansible module
|
||||||
|
instead of configuring the `.vol` file directly ourselves. That is what this
|
||||||
|
role does.
|
59
roles/gluster/consolidated/tasks/main.yml
Normal file
59
roles/gluster/consolidated/tasks/main.yml
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
- name: install needed packages for server
|
||||||
|
package: name={{ item }} state=present
|
||||||
|
with_items:
|
||||||
|
- glusterfs-server
|
||||||
|
tags:
|
||||||
|
- packages
|
||||||
|
|
||||||
|
- name: start glusterd for the server
|
||||||
|
service: name=glusterd state=started enabled=true
|
||||||
|
|
||||||
|
- name: Servers discover each other.
|
||||||
|
command: gluster peer probe {{ item }}
|
||||||
|
with_items: '{{groups[gluster_server_group]}}'
|
||||||
|
run_once: true
|
||||||
|
|
||||||
|
- name: install needed packages for client
|
||||||
|
package: name={{ item }} state=present
|
||||||
|
with_items:
|
||||||
|
- glusterfs-fuse
|
||||||
|
- libselinux-python
|
||||||
|
tags:
|
||||||
|
- packages
|
||||||
|
- gluster
|
||||||
|
|
||||||
|
- name: set sebooleans so httpd can talk to the gluster mount.
|
||||||
|
seboolean: name={{ item }}
|
||||||
|
state=true
|
||||||
|
persistent=true
|
||||||
|
with_items:
|
||||||
|
- nis_enabled
|
||||||
|
- httpd_use_fusefs
|
||||||
|
tags:
|
||||||
|
- gluster
|
||||||
|
|
||||||
|
- name: Ensure Gluster brick and mount directories exist.
|
||||||
|
file: "path={{ item }} state=directory mode=0775"
|
||||||
|
with_items:
|
||||||
|
- "{{ gluster_brick_dir }}"
|
||||||
|
- "{{ gluster_mount_dir }}"
|
||||||
|
|
||||||
|
- name: Configure Gluster volume.
|
||||||
|
gluster_volume:
|
||||||
|
state: present
|
||||||
|
name: "{{ gluster_brick_name }}"
|
||||||
|
brick: "{{ gluster_brick_dir }}"
|
||||||
|
replicas: 2
|
||||||
|
cluster: "{{ groups[gluster_server_group] | join(',') }}"
|
||||||
|
host: "{{ inventory_hostname }}"
|
||||||
|
force: yes
|
||||||
|
run_once: true
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: Ensure Gluster volume is mounted.
|
||||||
|
mount:
|
||||||
|
name: "{{ gluster_mount_dir }}"
|
||||||
|
src: "{{ inventory_hostname }}:/{{ gluster_brick_name }}"
|
||||||
|
fstype: glusterfs
|
||||||
|
opts: "defaults,_netdev"
|
||||||
|
state: mounted
|
Loading…
Add table
Add a link
Reference in a new issue