aboutsummaryrefslogtreecommitdiffstats
path: root/manifests/glance
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/glance')
-rw-r--r--manifests/glance/nfs_mount.pp80
1 files changed, 80 insertions, 0 deletions
diff --git a/manifests/glance/nfs_mount.pp b/manifests/glance/nfs_mount.pp
new file mode 100644
index 0000000..035191d
--- /dev/null
+++ b/manifests/glance/nfs_mount.pp
@@ -0,0 +1,80 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# 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.
+#
+# == Class: tripleo::glance::nfs_mount
+#
+# NFS mount for Glance image storage file backend
+#
+# === Parameters
+#
+# [*share*]
+# NFS share to mount, in 'IP:PATH' format.
+#
+# [*options*]
+# (Optional) NFS mount options. Defaults to
+# 'intr,context=system_u:object_r:glance_var_lib_t:s0'
+#
+# [*edit_fstab*]
+# (Optional) Whether to persist the mount info to fstab.
+# Defaults to true.
+#
+# [*fstab_fstype*]
+# (Optional) File system type to use in fstab for the mount.
+# Defaults to 'nfs4'.
+#
+# [*fstab_prepend_options*]
+# (Optional) Extra mount options for fstab (prepended to $options).
+# Defaults to 'bg', so that a potentially failed mount doesn't
+# prevent the machine from booting.
+#
+class tripleo::glance::nfs_mount (
+ $share,
+ $options = 'intr,context=system_u:object_r:glance_var_lib_t:s0',
+ $edit_fstab = true,
+ $fstab_fstype = 'nfs4',
+ $fstab_prepend_options = 'bg'
+) {
+
+ $images_dir = '/var/lib/glance/images'
+
+ if $options and $options != '' {
+ $options_part = "-o ${options}"
+ } else {
+ $options_part = ''
+ }
+
+ if $fstab_prepend_options and $fstab_prepend_options != '' {
+ $fstab_prepend_part = "${fstab_prepend_options},"
+ } else {
+ $fstab_prepend_part = ''
+ }
+
+ file { $images_dir:
+ ensure => directory,
+ } ->
+ exec { 'NFS mount for glance file backend':
+ path => ['/usr/sbin', '/usr/bin'],
+ command => "mount -t nfs '${share}' '${images_dir}' ${options_part}",
+ unless => "mount | grep ' ${images_dir} '",
+ }
+
+ if $edit_fstab {
+ file_line { 'NFS for glance in fstab':
+ ensure => present,
+ line => "${share} ${images_dir} ${fstab_fstype} ${fstab_prepend_part}${options} 0 0",
+ match => " ${images_dir} ",
+ path => '/etc/fstab',
+ }
+ }
+}