Я использую Jenkins для запуска ansible playbook на windows host. Я пытаюсь выполнить очень простую команду, например robocopy
, между общим ресурсом NAS и локальным каталогом на windows. Проблема в том, что я все время получаю ACCESS DENIED(5)
. Это не так, потому что у пользователя (domain\sysansible
), на котором я работаю ansible, уже есть полные права. Нет проблем, когда я запускаю ту же команду на windows или на любом компьютере. Я заметил, что когда Дженкинс запускает ansible playbook, он распознается не как domain\sysansible
, а как член локальной группы администраторов windows_host\administrator
, которая не имеет права на общий доступ к NAS (и они не могут иметь, потому что только учетные записи домена утверждены).
Мой файл инвентаризации выглядит следующим образом:
[application_host]
lizard ansible_host=windows_host.domain.companynet.net ansible_connection=winrm ansible_winrm_transport=kerberos ansible_user=sysansible@company.com ansible_password=***** ansible_port=5986 ansible_winrm_server_cert_validation=ignore
Моя ansible задача довольно проста. Это работает, когда я обменял источник на локальный каталог вместо \\nas-share\applications\app-home
. Я также использовал некоторые варианты вариации параметров робокопии, но они также потерпели неудачу.
- name: Sync the contents of home directory to backup site, including subdirectories
win_command: robocopy \\nas-share\applications\app-home d:\application\backup\home-folder /E /w:5 /r:2 /log:D:\Applications\log.txt /XD \\nas-share\applications\app-home\artifacts
register: info_robocopy
tags:
- robo
Проблема для меня заключается в том, почему меня признают группой локальных учетных записей администратора? Как распознать на windows как domain\sysansible
?