Ошибка копирования файлов между удаленными серверами с помощью модуля синхронизации Ansible

Вот короткий сценарий оболочки:

#!/bin/bash
start=10
end=13
first=$(head -n 1 file)
width=${#first}
text=$(paste -sd "" file)
mod="${text:0:start-1}$(tr N P <<<"${text:start:end-start+1}")${text:end}"
grep -Eo ".{1,$width}" <<<"$mod"
NNNNN
NNNNP
PPPNN
NNNNN
0
13.05.2021, 22:54
1 ответ

delegate_to: prod_serverв задаче synchronize:означает, что файл нужно скопировать из prod_serverв new_server. Из-за become: trueзадача выполняется root, и rsync пытается использовать открытый ключ -i /root/.ssh/id_rsa, который отсутствует

.

Warning: Identity file /root/.ssh/id_rsa not accessible: No such file or directory.

Чтобы решить эту проблему, либо создайте ключи ssh для rootв prod_serverи убедитесь, что она может подключиться к new_server(, если вы хотите, чтобы root скопировал файл ), либо удалите глобальный become: trueиз воспроизведите и убедитесь, что sudo_userможет подключиться от prod_serverк new_serverи скопируйте файл.

При удалении глобального become: trueиз игры вам придется выборочно включать его в любой задаче, когда это необходимо. В этом случае, чтобы упростить эскалацию в плейбуке, вы можете поместить синхронизацию файла в отдельный плей.

0
28.07.2021, 11:32

Теги

Похожие вопросы