Как выполнить тест в операторе модуля ansible raw?

Как выполнить тест в операторе модуля ansible raw?

Я запускаю необработанный модуль ansibleиспользуя не-root пользователяи хочу дать команду, которая проверяет некоторое условие. Например, я хочу проверить, существует ли каталог или нет, прежде чем удалить его. Как следующая команда.

[ -d "$DIR" ] && echo "Yes"

Теперь я хочу предоставить пользователю, не являющемуся root, разрешение на выполнение этой команды в файле sudoers.

xyzUser ALL = (ALL) NOPASSWD: 'something/that/lets/me/run/that/command'

Итак, я хочу знать, что я могу написать в sudoers, чтобы позволить мне выполнить эту команду и все другие команды, основанные на условиях.

решение1

Например, я хочу проверить, существует ли каталог, прежде чем его удалить.

- name: Example playbook to make sure a dir is absent
  hosts: my_host_group
  # Connect with a non-root user
  remote_user: my_remote_user
  # Use sudo, as you say you need it. Configure it on the relevant host
  become: true 

  vars:
    dir_to_remove: /path/to/dir/on/host

  tasks:
    - name: "remove {{ dir_to_remove }} if exists. Do nothing otherwise"
      file:
        path: "{{ dir_to_remove }}"
        state: absent

Связанный контент