mirror of
https://github.com/saltstack-formulas/nfs-formula.git
synced 2025-04-17 10:10:31 +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 %}
|
{% from "nfs/map.jinja" import nfs with context %}
|
||||||
|
|
||||||
nfs-client-deps:
|
{% if nfs.pkgs_client %}
|
||||||
|
nfs-client:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- pkgs: {{ nfs.pkgs_client|json }}
|
- 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 = {
|
# -*- coding: utf-8 -*-
|
||||||
'Amazon': {
|
# vim: ft=jinja
|
||||||
'pkgs_server': ['nfs-utils'],
|
|
||||||
'pkgs_client': ['nfs-utils'],
|
{## Start with defaults from defaults.yaml ##}
|
||||||
'service_name': 'nfs'
|
{% import_yaml 'nfs/defaults.yaml' as defaultmap %}
|
||||||
},
|
{% import_yaml 'nfs/osfamilymap.yaml' as osfamilymap %}
|
||||||
'CentOS': {
|
{% import_yaml 'nfs/osmap.yaml' as osmap %}
|
||||||
'pkgs_server': ['nfs-utils'],
|
|
||||||
'pkgs_client': ['nfs-utils'],
|
# Defaults.
|
||||||
'service_name': 'nfs'
|
{% set defaults = salt['grains.filter_by'](
|
||||||
},
|
defaultmap,
|
||||||
'RedHat': {
|
base='Defaults',
|
||||||
'pkgs_server': ['nfs-utils'],
|
) %}
|
||||||
'pkgs_client': ['nfs-utils'],
|
|
||||||
'service_name': 'nfs'
|
# Update defaults with grains vars.
|
||||||
},
|
{% set vars_map = [
|
||||||
'SUSE': {
|
("os_family", osfamilymap),
|
||||||
'pkgs_server': ['nfs-kernel-server'],
|
("os", osmap)
|
||||||
'pkgs_client': ['nfs-client'],
|
] %}
|
||||||
'service_name': 'nfsserver'
|
|
||||||
},
|
{% for map_name, map_value in vars_map %}
|
||||||
'Ubuntu': {
|
{% do salt['defaults.merge'](defaults,
|
||||||
'pkgs_server': ['nfs-common', 'nfs-kernel-server'],
|
salt['grains.filter_by'](
|
||||||
'pkgs_client': ['nfs-common'],
|
map_value,
|
||||||
'service_name': 'nfs-kernel-server'
|
grain=map_name,
|
||||||
},
|
) | default({}, True)
|
||||||
'Debian': {
|
) %}
|
||||||
'pkgs_server': ['nfs-common', 'nfs-kernel-server'],
|
{% endfor %}
|
||||||
'pkgs_client': ['nfs-common'],
|
|
||||||
'service_name': 'nfs-kernel-server'
|
# Update lookup vars.
|
||||||
},
|
{% do salt['defaults.merge'](defaults, {
|
||||||
'Raspbian': {
|
'nfs': salt['pillar.get']('nfs:lookup')
|
||||||
'pkgs_server': ['nfs-common', 'nfs-kernel-server'],
|
}) %}
|
||||||
'pkgs_client': ['nfs-common'],
|
|
||||||
'service_name': 'nfs-kernel-server'
|
|
||||||
}
|
# 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:
|
include:
|
||||||
- nfs.client
|
- nfs.client
|
||||||
|
|
||||||
{% for m in salt['pillar.get']('nfs:mount').items() %}
|
{% for m in salt['pillar.get']('nfs:mount', {}).items() %}
|
||||||
{{ m[1].mountpoint }}:
|
{{ m[1].mountpoint }}:
|
||||||
mount.mounted:
|
mount.mounted:
|
||||||
- device: {{ m[1].location }}
|
- device: {{ m[1].location }}
|
||||||
- fstype: nfs
|
- fstype: nfs
|
||||||
- opts: {{ m[1].opts|default('vers=3') }}
|
{# Not every platform needs options #}
|
||||||
- persist: {{ m[1].persist|default('True') }}
|
{% if 'opts' in m[1] or nfs.mount_opts %}
|
||||||
- mkmnt: {{ m[1].mkmnt|default('True') }}
|
- 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 %}
|
{% 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 %}
|
{% from "nfs/map.jinja" import nfs with context %}
|
||||||
|
|
||||||
|
{% if nfs.pkgs_server %}
|
||||||
nfs-server-deps:
|
nfs-server-deps:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- pkgs: {{ nfs.pkgs_server|json }}
|
- pkgs: {{ nfs.pkgs_server|json }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
/etc/exports:
|
/etc/exports:
|
||||||
file.managed:
|
file.managed:
|
||||||
- source: salt://nfs/files/exports
|
- source: {{ nfs.export_template }}
|
||||||
- template: jinja
|
- template: jinja
|
||||||
- watch_in:
|
- watch_in:
|
||||||
- service: nfs-service
|
- service: nfs-service
|
||||||
|
|
||||||
nfs-service:
|
nfs-service:
|
||||||
service.running:
|
service.running:
|
||||||
|
{% if nfs.service_name is string %}
|
||||||
- name: {{ nfs.service_name }}
|
- name: {{ nfs.service_name }}
|
||||||
|
{% elif nfs.service_name is iterable %}
|
||||||
|
- names: {{ nfs.service_name }}
|
||||||
|
{% endif %}
|
||||||
- enable: True
|
- 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:
|
include:
|
||||||
- nfs.client
|
- 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 }}:
|
{{ m[1].mountpoint }}:
|
||||||
mount.unmounted:
|
mount.unmounted:
|
||||||
{% if use_device %}
|
|
||||||
- device: {{ m[1].location }}
|
- device: {{ m[1].location }}
|
||||||
{% endif %}
|
- {{ m[1].persist|default(nfs.persist_unmount) }}
|
||||||
- persist: {{ m[1].persist|default('False') }}
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
@ -1,7 +1,18 @@
|
||||||
nfs:
|
nfs:
|
||||||
|
# Global settings:
|
||||||
|
mkmnt: False
|
||||||
|
mount_opts: noauto,ro
|
||||||
|
persist_unmount: True
|
||||||
|
persist_mount: False
|
||||||
|
|
||||||
|
# Server settings
|
||||||
server:
|
server:
|
||||||
exports:
|
exports:
|
||||||
/srv/homes: "hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)"
|
/srv/homes: "hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)"
|
||||||
|
# FreeBSD specific:
|
||||||
|
mountd_flags: -l -S
|
||||||
|
|
||||||
|
# mount settings
|
||||||
mount:
|
mount:
|
||||||
somename:
|
somename:
|
||||||
mountpoint: "/some/path"
|
mountpoint: "/some/path"
|
||||||
|
|
Loading…
Add table
Reference in a new issue