The apply-license playbook for SAS® Viya® 3.5 fails with the message "ERROR! Unable to retrieve file contents..."


The apply-license.yml playbook that is used to apply new licenses to your SAS Viya 3.5 deployment fails with an error similar to the following if you created the playbook using the SAS® Orchestration Command Line Interface (CLI) version 2.18.5:

ERROR! Unable to retrieve file contents
Could not find or access '/sas/install/sas_viya_playbook/espbase-x64_redhat_linux_6-yum.yml' on the Antroller.
If you are using a module and expect the file to exist on the remote, see the remote_src option

This problem occurs because the apply-license.yml playbook does not correctly refer to the location of some playbook files as being in the internal directory.

In the following example, the apply-license.yml file below the location of the espbase, mbagent, embscoresvc and dagentsrv files is incorrect:

Note: The number and names of the imported playbooks will vary depending on the contents of your SAS Viya order and the platform for your deployment.

To fix this issue, download the latest version of the SAS Orchestration CLI and use it to recreate your playbook, or use the workaround provided below.

Workaround

To work around this issue, complete the steps that are described in Apply New Licenses Manually.

Another workaround is to correct the apply-license.yml file by completing the steps below. Once you complete the following steps, use the corrected file to apply new licenses with Ansible:

  1. Locate the apply-license.yml file in the sas_viya_playbook directory.

For example: /sas/install/sas_viya_playbook/apply-license.yml

  1. Change to the sas_viya_playbook directory

For example, cd /sas/install/sas_viya_playbook/

  1. Make a copy of the apply-license.yml file as a backup by submitting the following command:
cp -p apply-license.yml backup-apply-license.yml
  1. As the same user who created the playbook, run the following command from your sas_viya_playbook directory to correct the apply-license.yml file.
sed -i 's/^\(\-\simport\_playbook\:\s\)\([a-zA-Z0-9_-]*\.yml\)$/\1internal\/\2/g' apply-license.yml

Using the example above, the file with corrections would look similar to the following:

Note: The number and names of the imported playbooks will vary depending on the contents of your SAS Viya order and the platform for your deployment.

  1. Apply the new licenses with Ansible using the corrected apply-license.yml file.