Ответ 1
local_action
запускает команду на локальном сервере, а не на серверах, которые вы указываете в параметре hosts
.
Измените задачу "Выполнение задачи script" на
- name: Execute the script
command: sh /home/test_user/test.sh
и он должен это сделать.
Вам не нужно повторять sudo в командной строке, потому что вы уже определили его в playbook.
Согласно Ansible Intro to Playbooks user
параметр был переименован в remote_user
в Ansible 1.4, поэтому вы тоже должны его изменить
remote_user: test_user
Итак, книжка станет:
---
- name: Transfer and execute a script.
hosts: server
remote_user: test_user
sudo: yes
tasks:
- name: Transfer the script
copy: src=test.sh dest=/home/test_user mode=0777
- name: Execute the script
command: sh /home/test_user/test.sh