首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能复制文件,也不会出错

不能复制文件,也不会出错
EN

Stack Overflow用户
提问于 2014-08-07 03:31:25
回答 2查看 5.2K关注 0票数 7

我的游戏手册只复制了我指定的一个文件。剧本完成时没有任何错误。如果我在剧本之外运行相同的命令,它就会复制。

我非常简单的剧本

代码语言:javascript
复制
---
- hosts: "dudes"
  vars:
    remote_user: root
tasks:
    - name: Installs logstash-forwarder rpm
      yum: name=logstash-forwarder state=present disable_gpg_check=yes

    - name: Add the certs init and etc files into place
      action: copy src=/etc/ansible/files/logstash-forwarder/logstash-forwarder.crt dest=/etc/pki/tls/certs/ owner=root group=root mode=644
      action: copy src=/etc/ansible/files/logstash-forwarder/logstash-forwarder-etc dest=/etc/logstash-forwarder owner=root group=root mode=644 force=yes
      action: copy src=/etc/ansible/files/logstash-forwarder/logstash-forwarder-etc-sysconfig dest=/etc/sysconfig/logstash-forwarder owner=root group=root mode=644 force=yes
      action: copy src=/etc/ansible/files/logstash-forwarder/logstash-forwarder-init-d dest=/etc/init.d/logstash-forwarder mode=0755

    - name: add logstash forwarder to chkconfig
      command: chkconfig --add logstash-forwarder
      notify:
            - start logstash-forwarder
handlers:
    - name: start logstash-forwarder
      service: name=logstash-forwarder enabled=yes state=started

我用的是

代码语言:javascript
复制
ansible-playbook -l doozy logstash-forwarder-dudes.yml 

它完成时没有任何错误,表示所有任务都正常。

唯一真正被复制的文件是最后一个文件,它是进入init.d的logstash转发程序。chkconfig添加似乎也有效。

如果我在一个以前没有复制的文件上使用ansible -m (而不是剧本)运行该命令,它将没有错误地复制它们。

代码语言:javascript
复制
ansible -m copy -a "src=/etc/ansible/files/logstash-forwarder/logstash-forwarder.crt dest=/etc/pki/tls/certs/ owner=root group=root mode=644" doozy

我不知道为什么这些文件不被复制到我的剧本中的干燥主机,但是会通过调用ansible拷贝模块来工作吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-07 05:33:46

在Ansible任务中不可能有多个操作。

将文件复制到四个任务中,它应该可以工作:

代码语言:javascript
复制
- name: Copy logstash-forwarder.crt
  copy: src=/etc/ansible/files/logstash-forwarder/logstash-forwarder.crt dest=/etc/pki/tls/certs/ owner=root group=root mode=644

- name: Copy /etc/logstash-forwarder
  copy: src=/etc/ansible/files/logstash-forwarder/logstash-forwarder-etc dest=/etc/logstash-forwarder owner=root group=root mode=644 force=yes

- name: Copy /etc/sysconfig/logstash-forwarder
  copy: src=/etc/ansible/files/logstash-forwarder/logstash-forwarder-etc-sysconfig dest=/etc/sysconfig/logstash-forwarder owner=root group=root mode=644 force=yes

- name: Copy /etc/init.d/logstash-forwarder
  copy: src=/etc/ansible/files/logstash-forwarder/logstash-forwarder-init-d dest=/etc/init.d/logstash-forwarder mode=0755

在代码中,我还使用了动作速记,并将action: module ...符号替换为module: ...。它不会改变代码的工作方式,而是调用模块的首选方法。

票数 2
EN

Stack Overflow用户

发布于 2021-09-27 17:32:19

基于答案#1,我添加了"owner=root“和"group=root”(owner=root是一个错误,因此我将其改为"user=myusername")。

提交后没有错误消息。这是一个改进,但仍然没有复制到目标上的文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25173653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档