I have a collection that I’ve built with numerous roles in it. Under one of the roles, I have a files folder with some files in it used during the role execution. However, I have a situation where 2 of these files keep erroring out saying that the source isn’t found.
For example, I have one file that I use the unarchive module to extract it, and it works:
name: Branding | Extract the jar file
ansible.builtin.unarchive:
src: files/tsose.jar
dest: /var/tmp/guacbranding
But when I try to install an RPM that is located in the same files folder, I get an error stating that the source file is not found:
I even tried to copy the file locally using the copy module with the remote_src flag set to true, but I get the same “file not found” error. And when I check the tar file that is created and I upload to our automation hub, the files are there under files.
if spec.endswith('.rpm') or '://' in spec:
if '://' not in spec and not os.path.exists(spec):
res['msg'] += "No RPM file matching '%s' found on system" % spec
This copy is rather confusing. You said the directory *files* is in a
role, i.e. on the controller. Now you set *remote_src: true* which
takes the source from the remote host.
To isolate the problem. You should verify each step you make. In this
case, before you run *yum*, verify the file
*/var/tmp/mysql-connector-j-8.0.33-1.el7.noarch.rpm* is present and
readable.
The remote_src ended up being the issue with the copy. Once i removed that, I was able to copy the RPM file, then give the absolute path to the yum/dnf module, and install as expected. Thanks for the assistance!