wip glusterfs

This commit is contained in:
2021-12-24 22:45:48 -05:00
parent d3d692865c
commit 697b00fa4e
22 changed files with 560 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
---
# main tasks for installing glusterfs
# install packages
- name: Ensure glusterfs server is installed.
apt:
name: "{{ item }}"
update_cache: yes
cache_valid_time: 3600
state: latest
with_items:
- glusterfs-server
- xfsprogs
- xfsdump
- name: Start service k3s, if not started
block:
- name: start on home
ansible.builtin.service:
name: glusterd
state: started
when: "ansible_lsb.major_release >= '20'"
- name: start on cubox-i
ansible.builtin.service:
name: glusterfs-server
state: started
when: "ansible_lsb.major_release < '20'"

View File

@@ -0,0 +1,15 @@
---
- name: install on ubuntu
ansible.builtin.include_role:
name: geerlingguy.glusterfs
when: ansible_architecture != 'armv7l'
- include_tasks: install.yaml
when: ansible_architecture == 'armv7l'
- include_tasks: manage_volumes.yml
#- include_tasks: prometheus_exporter.yml

View File

@@ -0,0 +1,57 @@
---
# glusterfs mounts
# create mount points
- name: create mount points for all bricks in all volumes
file:
path: "{{ item }}"
state: directory
mode: 0755
with_items: "{{mountpoints}}"
# manage volumes
#- name: remove old gluster volumes
# gluster_volume:
# state: absent
# name: "{{ item.key }}"
# rebalance: no
# replicas: false
# cluster: "{{cluster}}"
# with_dict: "{{removed_volumes}}"
# run_once: true
- name: create gluster volumes
gluster_volume:
state: present
start_on_create: yes
name: "{{ item.key }}"
brick: '{{ item.value | join(",")}}'
rebalance: no
replicas: 2
force: true
cluster: "{{cluster}}"
with_dict: "{{volumes}}"
run_once: true
#- name: create tmp gluster volumes
# gluster_volume:
# state: present
# name: "tmp"
# brick: '/data/glusterfs/tmp/brick1/brick'
# rebalance: no
# replicas: 1
# cluster: "{{cluster}}"
# run_once: true
- name: create distributed gluster volumes
gluster_volume:
state: present
name: "{{ item.key }}"
brick: '{{ item.value | join(",")}}'
rebalance: no
replicas: false
force: true
cluster: "{{cluster}}"
with_dict: "{{distributed_volumes}}"
run_once: true

View File

@@ -0,0 +1,31 @@
---
# tasks to install prometheus gluster_exporter
# https://github.com/ofesseler/gluster_exporter
# install packages
- name: Update apt cache.
apt: update_cache=yes cache_valid_time=86400
- name: Install gluster_exporter dependencies.
apt: "name={{ item }} state=installed"
with_items:
- golang-go
- name: make golang workspace
file:
path: /opt/golang
state: directory
mode: 0775
- name: install gluster_exporter
shell: GOPATH=/opt/golang go get github.com/ofesseler/gluster_exporter
- name: add gluster_exporter to startup
lineinfile:
dest: /etc/rc.local
regexp: '/opt/golang/bin/gluster_exporter'
line: 'nohup /opt/golang/bin/gluster_exporter --profile &'
insertbefore: "^exit 0"
- name: start gluster_exporter
shell: nohup /opt/golang/bin/gluster_exporter --profile &