как скопировать файлы с ansible относительно роли?

<p>у меня есть задача копирования внутри роли, и я ожидал, что расположение <code>src</code> будет относиться к самой роли, а не к книге, которая вызывает роли.</p><p>как заставить это работать и использовать файлы из <code>myfrole/files</code> из задачи внутри <code>myrole/tasks</code>, я не хочу включать имя роли как часть пути, так как это не имеет особого смысла. если я это сделаю, это сломается, если я дублирую роль.</p>

<p>если вы вообще не указали путь, только имя файла, ansible автоматически выберет его из каталога <code>files</code> роли.</p><p>кроме того, начиная с ansible 1.8, существует переменная <code>role\_path</code>, которую вы можете использовать в своей задаче <a href="https://docs.ansible.com/ansible/latest/modules/copy\_module.html">copy</a> .</p><pre><code>- copy: src: "{{ role\_path }}/files/foo.conf" dest: /etc/foo.conf </code></pre>

<p>вам не нужно указывать путь к файлу для копирования, если он хранится в каталоге <code>files</code>.</p><p>вот как должна выглядеть ваша роль:</p><pre><code>my-awesome-role ├───files │ my-awesome-file └───tasks main.yml </code></pre><p>а вот способ вызова copy в <code>tasks/main.yml</code>:</p><pre><code>- copy: src: my-awesome-file dest: '{{ some\_destination }}' </code></pre>