Ansible is licensed under the GPL 3.0, they provide a wonderful collection of documentation for most every bit of the software. For instance the copy module can be seen on their documentation page:


and is seen in their source code:


The documentation contains ready to use examples:

- name: Copy file with owner and permissions
    src: /srv/myfiles/foo.conf
    dest: /etc/foo.conf
    owner: foo
    group: foo
    mode: '0644'

If I were to use it, it would end up looking a lot like the sample:

- name: Copy bar.conf into place
    src: bar.conf
    dest: /etc/bar.conf
    owner: bar
    mode: '0644'

I believe my copy task is a derivative of the example from the documentation. Leading me to my first question: Does this mean any use of the copy module, or any ansible module for that matter, would be a derivative of the documentation?

And if it is a derivative of the documentation, does that mean that any ansible playbook would be subject to GPL 3.0 licensing? Due to being a derivative of documentation that is licensed under GPL 3.0?

  • I'm not familiar with Ansible, but is there another way to copy a file without it looking like that? It looks similar to an invocation of the "cp" command with a few more parameters. And there is only a limited number of ways to use the "cp" command. That does not mean your use is a derivative.
    – Brandin
    Dec 31, 2019 at 8:36

1 Answer 1


We can both write a HelloWorld application in the same language and chances are that both programs will look very similar. This does not mean that, if I were to publish mine first, that your version would be derived from mine. Both are independent works, no matter how similar they look.

Copyright law and -judges also recognize the fact that as there become fewer ways to express an idea, the more likely it is that the expressions of the idea will look alike even if they are created independently. This goes even as far that if there is only one way to express an idea, then that expression is not subject to copyright at all.

Your invocation of the ansible copy module would only be a derived work of the documentation if you actually copied an example from the documentation and modified that. If you wrote the invocation yourself and used the documentation only as a reference which parameters you can use, then the code is not a derived work and wholly your own.

  • 4
    Note that this is not completely settled law at this time. In Google vs Oracle, Google deliberately copied the Java APIs and are still in the process of litigating the legality of that. eff.org/cases/oracle-v-google
    – mklauber
    Dec 31, 2019 at 14:29
  • Or that's how it should be, anyway. You can plausibly consider your behavior ethical if it conforms with the documentation's license, according to that interpretation. On the other hand, although I doubt Ansible would ever come after anyone for copyright violation in the kind of situation described, there's enough there that some other company in a parallel situation might do, and not be laughed out of court. Dec 31, 2019 at 14:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.