Это должно работать, но не работает, и дает следующую ошибку (ниже).Несложная копия или перемещение файлов только на удаленном хосте
Я прочитал пару сообщений о stackoverflow here и here, но, похоже, нет хорошего ответа, который работает в этом случае. Я действительно надеюсь, что я просто пропустил что-то немое, и я был в этом часом, поэтому, пожалуйста, не возражайте против моего snark, но мне нужно выпустить.
Поскольку ansible, 2.3.0, не может сделать что-то так же просто, как копировать/перемещать/переименовывать файлы ТОЛЬКО на удаленном хосте, я имею в виду, кто захочет это сделать? И он также не может действовать на globs (*) (скажем, когда вы не знаете, какие файлы должны действовать), двухступенчатый подход кажется единственным способом (который я знаю) перемещать некоторые файлы (только на удаленный хост). Но даже это не работает.
migrate_rhel2centos.yml
---
- hosts: RedHat
become: true
become_user: root
become_method: sudo
vars:
repo_dir: /etc/yum.repos.d
tasks:
- name: create directory
file: path=/etc/yum.repos.d/bak/ state=directory
- name: get repo files
shell: "ls {{ repo_dir }}/*.repo"
register: repo_list
- debug: var=repo_list.stdout_lines
- name: move repo files
command: "/bin/mv -f {{ item }} bak"
args:
chdir: "{{repo_dir}}"
with_items: repo_list.stdout_lines
#################################
TASK [get repo files]
**********************************************************************
changed: [myhost]
TASK [debug]
**********************************************************************
ok: [myhost] => {
"repo_list.stdout_lines": [
"/etc/yum.repos.d/centric.repo",
"/etc/yum.repos.d/redhat.repo",
"/etc/yum.repos.d/rhel-source.repo"
]
}
TASK [move repo files]
*******************************************************************
failed: [myhost] (item=repo_list.stdout_lines) => {"changed": true, "cmd": ["/bin/mv", "-f", "repo_list.stdout_lines", "bak"], "delta": "0:00:00.001945", "end": "2016-12-13 15:07:14.103823", "failed": true, "item": "repo_list.stdout_lines", "rc": 1, "start": "2016-12-13 15:07:14.101878", "stderr": "/bin/mv: cannot stat `repo_list.stdout_lines': No such file or directory", "stdout": "", "stdout_lines": [], "warnings": []}
to retry, use: --limit @/home/jimm/.ansible/migrate_rhel2centos.retry
PLAY RECAP
********************************
myhost : ok=5 changed=1 unreachable=0 failed=1
Добро пожаловать в переполнение стека! Ознакомьтесь с нашим [Контрольным списком вопросов] (http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist), чтобы помочь вам задать хороший вопрос и, таким образом, получить хороший ответ. –