user6826691
user6826691

Reputation: 2011

Ansible not able to create symlink

I'm trying to create a symlink and I'm not able to solve this error . Please suggest me a solution on how to solve this error

Code: Creating a symlink for /usr/local/bin/terraform-env/bin/* in folder /usr/local/bin I tried with /usr/local/bin/ (with and without slash)

- name: Move tfenv
  file:
    src: "/usr/local/bin/terraform-env/bin/{{ item.src }}"
    dest: "/usr/local/bin/"
    state: link
    owner: root
    group: root
    mode: 755
    force: yes   
  with_items:
    - src: terraform
    - src: tfenv
TASK [terraform : Move tfenv] **************************************************
task path: /opt/ansible/roles/terraform/tasks/main.yml:16
failed: [127.0.0.1] (item={'src': 'terraform'}) => {"changed": false, "gid": 0, "group": "root", "item": {"src": "terraform"}, "mode": "0755", "msg": "the directory /usr/local/bin/ is not empty, refusing to convert it", "owner": "root", "path": "/usr/local/bin/", "size": 4096, "state": "directory", "uid": 0}
failed: [127.0.0.1] (item={'src': 'tfenv'}) => {"changed": false, "gid": 0, "group": "root", "item": {"src": "tfenv"}, "mode": "0755", "msg": "the directory /usr/local/bin/ is not empty, refusing to convert it", "owner": "root", "path": "/usr/local/bin/", "size": 4096, "state": "directory", "uid": 0}

Using ansible 2.8.3

Upvotes: 1

Views: 4870

Answers (1)

Zeitounator
Zeitounator

Reputation: 44595

the directory /usr/local/bin/ is not empty, refusing to convert it

You are trying to create the symlink directly on the existing directory rather than creating an entry inside that dir to support the symlink. The following corrected task should get you going:

- name: Move tfenv
  file:
    src: "/usr/local/bin/terraform-env/bin/{{ item.src }}"
    dest: "/usr/local/bin/{{ item.src }}"
    state: link
    owner: root
    group: root
    mode: 755
    force: yes   
  with_items:
    - src: terraform
    - src: tfenv

Upvotes: 3

Related Questions