I want to create a symlink (soft link) based on whether a file exists or not. I am using the when/register to try and achieve this but I guess I’m doing something wrong. Here’s my playbook;
- name: Check if /usr/local/bin/brew exists
stat:
path: /usr/local/bin/brew
register: file_status_intel
- name: Check if /opt/homebrew/bin/brew exists
stat:
path: /opt/homebrew/bin/brew
register: file_status_arm
- name: Create library symlink to Java for intel
file:
src: "/usr/local/bin/openjdk@11/libexec/openjdk.jdk"
dest: "/Library/Java/JavaVirtualMachines/openjdk-11.jdk"
state: link
when: file_status_intel.stat.exists
tags: selenium
- name: Create library symlink to Java for Mac M1, M2, M3
file:
src: "/opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk"
dest: "/Library/Java/JavaVirtualMachines/openjdk-11.jdk"
state: link
when: file_status_arm.stat.exists
tags: selenium
however I still get error;
fatal: [tyr-mac-1-dev]: FAILED! => {"changed": false, "gid": 0, "group": "wheel", "mode": "0755", "msg": "src file does not exist, use "force=yes" if you really want to create the link: /usr/local/bin/openjdk@11/libexec/openjdk.jdk", "owner": "root", "path": "/Library/Java/JavaVirtualMachines/openjdk-11.jdk", "size": 45, "src": "/usr/local/bin/openjdk@11/libexec/openjdk.jdk", "state": "link", "uid": 0}