'Permission Denied' error on YQ script during upgrade or installation due to NOEXEC on Volume Mount



Overview of the Issue

This issue occurs in the following circumstances:

  1. An organization attempts to install or upgrade a vFunction Server
  2. The installation or upgrade script generates an error:
../opt/vfunction/server-installation/utils/yq: Permission Denied
  1. The user who is running the script has ownership of the vFunction Directories and YQ script
  2. The YQ script has 777 permissions, or at least the ability to be executed
  3. Unexpectedly, running the command mount shows that the location where the YQ script exists has noexec set to prevent scripts from running. For example
/dev/nvme0n1p16 on /data1 type ext4 (rw,nosuid,nodev,noexec,relatime,seclabel)

Steps to Resolve the Problem

Take the following steps to change the Mount where vFunction will be / is installed to allow the Installation / Upgrade script to run as well as the YQ script. Note that this modification will not persist through a reboot and a more permanent change should be made to this setting.

In this example /app/docker is used as the new default Docker root directory. Replace this directory with your actual location in the steps below.

### Replace $NAME_OF_MOUNT with the actual name, such as /data1 from the example above
mount -o remount, exec $NAME_OF_MOUNT