mirror of
https://github.com/saltstack-formulas/nfs-formula.git
synced 2025-04-10 14:51:47 +00:00
update all pull request into one refactor
This commit is contained in:
parent
b32d3901df
commit
9cb2e467c5
9 changed files with 131 additions and 61 deletions
|
@ -1,5 +1,7 @@
|
|||
{% from "nfs/map.jinja" import nfs with context %}
|
||||
|
||||
nfs-client-deps:
|
||||
{% if nfs.pkgs_client %}
|
||||
nfs-client:
|
||||
pkg.installed:
|
||||
- pkgs: {{ nfs.pkgs_client|json }}
|
||||
{% endif %}
|
||||
|
|
13
nfs/defaults.yaml
Normal file
13
nfs/defaults.yaml
Normal file
|
@ -0,0 +1,13 @@
|
|||
nfs:
|
||||
mount_opts: "vers=3"
|
||||
mkmnt: True
|
||||
persist_mount: True
|
||||
persist_unmount: False
|
||||
export_template: 'salt://nfs/files/exports'
|
||||
# for most Linux distributions:
|
||||
pkgs_server:
|
||||
- nfs-common
|
||||
- nfs-kernel-server
|
||||
pkgs_client:
|
||||
- nfs-common
|
||||
service_name: nfs-kernel-server
|
|
@ -1,43 +1,42 @@
|
|||
{% set map = {
|
||||
'Amazon': {
|
||||
'pkgs_server': ['nfs-utils'],
|
||||
'pkgs_client': ['nfs-utils'],
|
||||
'service_name': 'nfs'
|
||||
},
|
||||
'CentOS': {
|
||||
'pkgs_server': ['nfs-utils'],
|
||||
'pkgs_client': ['nfs-utils'],
|
||||
'service_name': 'nfs'
|
||||
},
|
||||
'RedHat': {
|
||||
'pkgs_server': ['nfs-utils'],
|
||||
'pkgs_client': ['nfs-utils'],
|
||||
'service_name': 'nfs'
|
||||
},
|
||||
'SUSE': {
|
||||
'pkgs_server': ['nfs-kernel-server'],
|
||||
'pkgs_client': ['nfs-client'],
|
||||
'service_name': 'nfsserver'
|
||||
},
|
||||
'Ubuntu': {
|
||||
'pkgs_server': ['nfs-common', 'nfs-kernel-server'],
|
||||
'pkgs_client': ['nfs-common'],
|
||||
'service_name': 'nfs-kernel-server'
|
||||
},
|
||||
'Debian': {
|
||||
'pkgs_server': ['nfs-common', 'nfs-kernel-server'],
|
||||
'pkgs_client': ['nfs-common'],
|
||||
'service_name': 'nfs-kernel-server'
|
||||
},
|
||||
'Raspbian': {
|
||||
'pkgs_server': ['nfs-common', 'nfs-kernel-server'],
|
||||
'pkgs_client': ['nfs-common'],
|
||||
'service_name': 'nfs-kernel-server'
|
||||
}
|
||||
} %}
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: ft=jinja
|
||||
|
||||
{## Start with defaults from defaults.yaml ##}
|
||||
{% import_yaml 'nfs/defaults.yaml' as defaultmap %}
|
||||
{% import_yaml 'nfs/osfamilymap.yaml' as osfamilymap %}
|
||||
{% import_yaml 'nfs/osmap.yaml' as osmap %}
|
||||
|
||||
# Defaults.
|
||||
{% set defaults = salt['grains.filter_by'](
|
||||
defaultmap,
|
||||
base='Defaults',
|
||||
) %}
|
||||
|
||||
# Update defaults with grains vars.
|
||||
{% set vars_map = [
|
||||
("os_family", osfamilymap),
|
||||
("os", osmap)
|
||||
] %}
|
||||
|
||||
{% for map_name, map_value in vars_map %}
|
||||
{% do salt['defaults.merge'](defaults,
|
||||
salt['grains.filter_by'](
|
||||
map_value,
|
||||
grain=map_name,
|
||||
) | default({}, True)
|
||||
) %}
|
||||
{% endfor %}
|
||||
|
||||
# Update lookup vars.
|
||||
{% do salt['defaults.merge'](defaults, {
|
||||
'nfs': salt['pillar.get']('nfs:lookup')
|
||||
}) %}
|
||||
|
||||
|
||||
# Final var merged with pillar.
|
||||
{% set nfs = salt['pillar.get'](
|
||||
'nfs',
|
||||
default=defaults,
|
||||
merge=True,
|
||||
) %}
|
||||
|
||||
{% if grains.get('saltversion', '').startswith('0.17') %}
|
||||
{% set nfs = salt['grains.filter_by'](map, merge=salt['pillar.get']('nfs:lookup'), base='default') %}
|
||||
{% else %}
|
||||
{% set nfs = map.get(grains.os) %}
|
||||
{% endif %}
|
||||
|
|
|
@ -3,12 +3,15 @@
|
|||
include:
|
||||
- nfs.client
|
||||
|
||||
{% for m in salt['pillar.get']('nfs:mount').items() %}
|
||||
{% for m in salt['pillar.get']('nfs:mount', {}).items() %}
|
||||
{{ m[1].mountpoint }}:
|
||||
mount.mounted:
|
||||
- device: {{ m[1].location }}
|
||||
- fstype: nfs
|
||||
- opts: {{ m[1].opts|default('vers=3') }}
|
||||
- persist: {{ m[1].persist|default('True') }}
|
||||
- mkmnt: {{ m[1].mkmnt|default('True') }}
|
||||
{# Not every platform needs options #}
|
||||
{% if 'opts' in m[1] or nfs.mount_opts %}
|
||||
- opts: {{ m[1].opts|default(nfs.mount_opts) }}
|
||||
{% endif %}
|
||||
- persist: {{ m[1].persist|default(nfs.persist_mount) }}
|
||||
- mkmnt: {{ m[1].mkmnt|default(nfs.mkmnt) }}
|
||||
{% endfor %}
|
||||
|
|
32
nfs/osfamilymap.yaml
Normal file
32
nfs/osfamilymap.yaml
Normal file
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
Debian:
|
||||
pkgs_server: ['nfs-common', 'nfs-kernel-server']
|
||||
pkgs_client: ['nfs-utils']
|
||||
service_name: 'nfs'
|
||||
|
||||
Arch:
|
||||
pkgs_server: ['nfs-utils']
|
||||
pkgs_client: ['nfs-utils']
|
||||
service_name: 'nfs-server'
|
||||
|
||||
OpenBSD:
|
||||
pkgs_server: None
|
||||
pkgs_client: None
|
||||
service_name: ['nfsd', 'mountd']
|
||||
mount_opts: '-T,-R=1'
|
||||
|
||||
FreeBSD:
|
||||
pkgs_server: None
|
||||
pkgs_client: None
|
||||
service_name: ['nfsd', 'mountd']
|
||||
mount_opts: 'tcp,retrycnt=1'
|
||||
|
||||
RedHat:
|
||||
pkgs_server: ['nfs-utils']
|
||||
pkgs_client: ['nfs-utils']
|
||||
service_name: 'nfs-server'
|
||||
|
||||
SUSE:
|
||||
pkgs_server: ['nfs-kernel-server']
|
||||
pkgs_client: ['nfs-client']
|
||||
service_name: 'nfsserver'
|
5
nfs/osmap.yaml
Normal file
5
nfs/osmap.yaml
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
Fedora:
|
||||
pkgs_server: ['nfs-utils']
|
||||
pkgs_client: ['nfs-utils']
|
||||
service_name: 'nfs'
|
|
@ -1,17 +1,33 @@
|
|||
{% from "nfs/map.jinja" import nfs with context %}
|
||||
|
||||
{% if nfs.pkgs_server %}
|
||||
nfs-server-deps:
|
||||
pkg.installed:
|
||||
- pkgs: {{ nfs.pkgs_server|json }}
|
||||
{% endif %}
|
||||
|
||||
/etc/exports:
|
||||
file.managed:
|
||||
- source: salt://nfs/files/exports
|
||||
- source: {{ nfs.export_template }}
|
||||
- template: jinja
|
||||
- watch_in:
|
||||
- service: nfs-service
|
||||
|
||||
nfs-service:
|
||||
service.running:
|
||||
{% if nfs.service_name is string %}
|
||||
- name: {{ nfs.service_name }}
|
||||
{% elif nfs.service_name is iterable %}
|
||||
- names: {{ nfs.service_name }}
|
||||
{% endif %}
|
||||
- enable: True
|
||||
|
||||
{% if grains.get('os') == 'FreeBSD' %}
|
||||
{% set mountd_flags = salt['pillar.get'](
|
||||
'nfs:server:mountd_flags', None) -%}
|
||||
{% if mountd_flags %}
|
||||
mountd_flags:
|
||||
sysrc.managed:
|
||||
- value: {{ mountd_flags }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
|
|
@ -3,21 +3,10 @@
|
|||
include:
|
||||
- nfs.client
|
||||
|
||||
# Parameter device for mount.unmounted: New in version 2015.5.0.
|
||||
# Errors: if not used with newer minions
|
||||
# Warnings: if used with older minions
|
||||
# Using the following values followed by the conditional avoids both issues
|
||||
{% set version_year = grains.saltversioninfo[0] %}
|
||||
{% set version_month = grains.saltversioninfo[1] %}
|
||||
{% set min_year = 2015 %}
|
||||
{% set min_month = 5 %}
|
||||
{% set use_device = (version_year > min_year or (version_year == min_year and version_month >= min_month)) %}
|
||||
|
||||
{% for m in salt['pillar.get']('nfs:unmount').iteritems() %}
|
||||
{% for m in salt['pillar.get']('nfs:unmount', {}).items() %}
|
||||
{{ m[1].mountpoint }}:
|
||||
mount.unmounted:
|
||||
{% if use_device %}
|
||||
- device: {{ m[1].location }}
|
||||
{% endif %}
|
||||
- persist: {{ m[1].persist|default('False') }}
|
||||
- {{ m[1].persist|default(nfs.persist_unmount) }}
|
||||
{% endfor %}
|
||||
|
|
|
@ -1,7 +1,18 @@
|
|||
nfs:
|
||||
# Global settings:
|
||||
mkmnt: False
|
||||
mount_opts: noauto,ro
|
||||
persist_unmount: True
|
||||
persist_mount: False
|
||||
|
||||
# Server settings
|
||||
server:
|
||||
exports:
|
||||
/srv/homes: "hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)"
|
||||
# FreeBSD specific:
|
||||
mountd_flags: -l -S
|
||||
|
||||
# mount settings
|
||||
mount:
|
||||
somename:
|
||||
mountpoint: "/some/path"
|
||||
|
|
Loading…
Add table
Reference in a new issue