Просто измените remote_user
для данной задачи на тот, к которому вы можете подключиться на делегированном хосте. Вот псевдо-сценарий, чтобы дать вам основы.
Примечание: при таргетинге на хост с использованием ansible_connection: local
(например, неявное по умолчанию localhost
), remote_user
игнорируется и по умолчанию используется пользователем, запускающим сценарий. контроллер.
---
- name: Play mixing several hosts and users
hosts: some_host_or_group
# Play level remote_user. In short, this is used if not overridden in task.
# See documentation for finer grained info (define in inventory, etc...)
remote_user: root
tasks:
- name: Check who we are on current host
command: id -a
register: who_we_are_current
- debug:
var: who_we_are_current.stdout
- name: Show we can be someone else on delegate
command: id -a
# Task level remote_user: overrides play
remote_user: johnd
delegate_to: "{{ my_remote_machine }}"
register: who_whe_are_delegate
- debug:
var: who_whe_are_delegate.stdout
- name: And of course, this works with your real task as well
cron:
name: "perform a listing"
weekday: "6"
minute: "5"
hour: "3"
job: "/bin/ls -lR /mnt/*/"
remote_user: johnd
delegate_to: "{{ my_remote_machine }}"