Как лучше всего скопировать файл в зависимости от имени хоста?
Мне нужно скопировать файлы с разным содержимым, но с одним и тем же именем на несколько машин.
У меня есть несколько файлов:
file.role1
file.role2
file.role3
В зависимости от имени хоста и / или роли я хотел бы скопировать file.roleX
и переименуйте его в file
Спасибо.
Есть много способов сделать это. Самый простой:
- name: Copy file.role1 to host1
copy: src=file.role1 dest=/somewhere/file
when: inventory_hostname == "host1"
- name: Copy file.role2 to host2
copy: src=file.role2 dest=/somewhere/file
when: inventory_hostname == "host2"
Альтернатива, более компактная:
- name: Copy file to host
copy: src=file.{{ inventory_hostname }} dest=/somewhere/file
Или, используя шаблон:
- name: Copy file to host
template: src=file dest=/somewhere/file
где шаблон может быть примерно таким:
{% if inventory_hostname == "host1" %}
{% include "file1" %}
{% endif %}
...
Если вам нужны разные файлы в разных ролях, почему бы вам просто не указать это:
- name: Copy file.role1 to file
copy: src=file.role1 dest=/somewhere/file
в коде каждой роли?
Нет предпочтительного способа сделать это - это зависит от того, чего вы на самом деле пытаетесь достичь.