cookbooks/fb_fstab/attributes/default.rb (63 lines of code) (raw):

# vim: syntax=ruby:expandtab:shiftwidth=2:softtabstop=2:tabstop=2 # # Copyright (c) 2016-present, Facebook, Inc. # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # default['fb_fstab'] = { 'mounts' => {}, 'enable_remount' => false, 'enable_unmount' => false, 'allow_lazy_umount' => false, 'umount_ignores' => { 'devices' => [ # Various virtualFSes 'rootfs', 'debugfs', 'udev', 'devpts', 'systemd', 'devtmpfs', 'devpts', 'sunrpc', 'nfsd', # The primary way we except cgroup mounts is via the 'cgroup' fstype in # the 'types' array below. Types is always better than device names which # are unreliably gathered because of Ohai. However, the root is always a # tmpfs and not a 'cgroup' FS, so we have to exempt that mount too... on # RH that tmpfs has a device name of 'cgroup_root' and on Ubuntu it's # 'cgroups' 'cgroup_root', 'cgroups', 'rpc_pipefs', # You get this on some boxes with bad mtabs... '/dev/root', '/dev', ], # use this one with caution! 'device_prefixes' => [], 'types' => [ # Core OS stuff to never umount... 'autofs', 'binfmt_misc', 'cgroup', # sub-cgroup mounts will have this type. See comment above. 'configfs', 'efivarfs', 'hugetlbfs', # hugepages 'mqueue', # POSIX queues 'proc', 'swap', 'sysfs', 'tracefs', # kernel debugging 'usbfs', ], 'mount_points' => [ # Core OS stuff to never umount... '/dev/shm', '/run', '/sys/fs/cgroup', '/sys/fs/selinux', # Debian-isms '/run/shm', '/run/lock', '/sys/fs/pstore', '/sys/kernel/debug', '/sys/kernel/security', '/sys/fs/fuse/connections', ], 'mount_point_prefixes' => [ '/run/user', ], }, 'type_normalization_map' => { # Gluster is mounted as '-t gluster', but shows up as 'fuse.gluster' # ... is this true for all FUSE FSes? Dunno... 'fuse.gluster' => 'gluster', }, 'ignorable_opts' => [ # seclabel is something the kernel hands you to signify if it's on, # not an option you pass in, and thus shouldn't be part of the comparison 'seclabel', # nofail is an option you pass in to fstab, but not an option # that gets passed to the kernel, therefore you won't see it in the mount # options and can't use it in the comparison 'nofail', # NFS sometimes automatically adds addr=<server_ip> here automagically, # which doesn't affect the mount, so don't compare it. /^mount(addr|port|proto|vers)=|(client)?(addr|port)=.*/, ], 'exclude_base_swap' => false, }