Jaki jest najłatwiejszy sposób utworzenia pustego pliku za pomocą Ansible? Wiem, że mogę zapisać pusty plik wfiles
katalogu, a następnie skopiować go do zdalnego hosta, ale wydaje mi się to niezadowalające.
Innym sposobem jest dotknięcie pliku na zdalnym hoście:
- name: create fake 'nologin' shell
file: path=/etc/nologin state=touch owner=root group=sys mode=0555
Ale potem plik jest dotykany za każdym razem, pokazując żółtą linię w dzienniku, co również jest niezadowalające ...
Czy istnieje lepsze rozwiązanie tego prostego problemu?
force: no
.Coś takiego (użycie
stat
modułu najpierw do zebrania danych o nim, a następnie filtrowanie za pomocą warunku) powinno działać:Alternatywnie możesz wykorzystać tę
changed_when
funkcjonalność.źródło
Inna opcja, korzystając z modułu poleceń:
Argument „tworzy” zapewnia, że ta akcja nie zostanie wykonana, jeśli plik istnieje.
źródło
Opierając się na zaakceptowanej odpowiedzi, jeśli chcesz, aby plik był sprawdzany pod kątem uprawnień przy każdym uruchomieniu, a te zmieniły się odpowiednio, jeśli plik istnieje, lub po prostu utwórz plik, jeśli nie istnieje, możesz użyć następującego:
źródło
file: path=/etc/nologin state=touch
Pełny odpowiednik dotyku (nowość w 1.4+) - użyj stat, jeśli nie chcesz zmieniać znacznika czasu pliku.
źródło
file: path=/etc/nologin state=touch modification_time=preserve access_time=preserve
.moduł plików zapewnia sposób na dotknięcie pliku bez modyfikowania jego czasu.
Źródła: https://docs.ansible.com/ansible/latest/modules/file_module.html
źródło
Okazuje się, że nie mam wystarczającej reputacji, aby zamieścić to jako komentarz, co byłoby bardziej odpowiednim miejscem do tego:
Re. Odpowiedź AllBlackta, jeśli wolisz format wielowierszowy Ansible, musisz dostosować cytowanie
state
(spędziłem kilka minut na pracy nad tym, więc mam nadzieję, że przyspieszy to kogoś innego),źródło
Aby utworzyć plik na zdalnym komputerze za pomocą polecenia ad-hoc
Proszę, popraw mnie jeśli się mylę
źródło
Zmienione, jeśli plik nie istnieje. Utwórz pusty plik.
źródło
Połączenie dwóch odpowiedzi z niespodzianką. Kod zostanie wykryty jako zmieniony po utworzeniu pliku lub zaktualizowaniu uprawnień.
oraz wersję, która również poprawia właściciela i grupę oraz wykrywa je jako zmienione, gdy koryguje te:
źródło