Masz dwie opcje tutaj, jeśli szablon będzie na zdalnym hoście.
Po pierwsze, można użyć modułu fetch, który działa podobnie do modułu copy, aby przywrócić szablon po klonowaniu repo na zdalnym hoście.
playbook za to może wyglądać:
- name : clone repo on remote hosts
git :
repo : {{ git_repo_src }}
dest : {{ git_repo_dest }}
- name : fetch template from single remote host
run_once : true
fetch :
src : {{ template_path }}/{{ template_file }}
dest : /tmp/{{ template_file }}
flat : yes
fail_on_missing : yes
- name : template remote hosts
template :
src : /tmp/{{ template_file }}
dest : {{ templated_file_dest }}
owner : {{ templated_file_owner }}
group : {{ templated_file_group }}
mode : {{ templated_file_mode }}
FETCH zadanie wykorzystuje run_once
, aby upewnić się, że to tylko przeszkadza kopiowanie szablonu z pierwszego hosta to działa przeciw. Zakładając, że wszystkie te hosty w twojej grze mają takie samo repo, to powinno być dobrze, ale jeśli musisz upewnić się, że skopiowałeś je z bardzo konkretnego hosta, możesz połączyć go z delegate_to
.
Alternatywnie można po prostu mieć ansibl sklonować repo lokalnie i używać go bezpośrednio z czymś takim:
- name : clone repo on remote hosts
git :
repo : {{ git_repo_src }}
dest : {{ git_repo_dest }}
- name : clone repo on Ansible host
hosts : localhost
connection : local
git :
repo : {{ git_repo_src }}
dest : {{ git_repo_local_dest }}
- name : template remote hosts
template :
src : {{ template_local_src }}
dest : {{ templated_file_dest }}
owner : {{ templated_file_owner }}
group : {{ templated_file_group }}
mode : {{ templated_file_mode }}
Dlaczego nie pozwolić ansibl pociągnąć drugą repo, jak również? – ydaetskcoR
Odpowiedzi klonuje repo do zdalnego serwera. Po sklonowaniu muszę dokonać zmian za pomocą szablonu, który był w repozytorium i jest teraz na zdalnym komputerze. – trajan
Tak, ale dlaczego funkcja Reakcji nie może lokalnie pobierać repozytorium, a także klonować je na docelowym hoście? Następnie może użyć funkcji szablonu. Alternatywą jest użycie 'fetch', aby pobrać szablon z hosta, ale wydaje mi się to mniejszą metodą. – ydaetskcoR