Quelle est la manière la plus simple de créer un fichier vide à l'aide d'Ansible? Je sais que je peux enregistrer un fichier vide dans le files
répertoire, puis le copier sur l'hôte distant, mais je trouve cela quelque peu insatisfaisant.
Une autre façon consiste à toucher un fichier sur l'hôte distant:
- name: create fake 'nologin' shell
file: path=/etc/nologin state=touch owner=root group=sys mode=0555
Mais ensuite, le fichier est touché à chaque fois, apparaissant comme une ligne jaune dans le journal, ce qui est également insatisfaisant ...
Y a-t-il une meilleure solution à ce problème simple?
force: no
.Quelque chose comme ça (en utilisant d'abord le
stat
module pour collecter des données à ce sujet, puis en filtrant à l'aide d'un conditionnel) devrait fonctionner:Vous pourriez également être en mesure de tirer parti de la
changed_when
fonctionnalité.la source
Une autre option, en utilisant le module de commande:
L'argument «crée» garantit que cette action n'est pas effectuée si le fichier existe.
la source
En vous basant sur la réponse acceptée, si vous souhaitez que le fichier soit vérifié pour les autorisations à chaque exécution, et que celles-ci soient modifiées en conséquence si le fichier existe, ou créez simplement le fichier s'il n'existe pas, vous pouvez utiliser ce qui suit:
la source
file: path=/etc/nologin state=touch
Equivalent complet de touch (nouveau dans 1.4+) - utilisez stat si vous ne voulez pas changer l'horodatage du fichier.
la source
file: path=/etc/nologin state=touch modification_time=preserve access_time=preserve
.Le module de fichiers permet de toucher le fichier sans modifier son heure.
Référence: https://docs.ansible.com/ansible/latest/modules/file_module.html
la source
Il s'avère que je n'ai pas assez de réputation pour mettre cela en commentaire, ce qui serait un endroit plus approprié pour cela:
Ré. Réponse d'AllBlackt, si vous préférez le format multiligne d'Ansible, vous devez ajuster les citations
state
(j'ai passé quelques minutes à travailler sur cela, alors j'espère que cela accélère quelqu'un d'autre),la source
Pour créer un fichier dans la machine distante avec la commande ad-hoc
S'il vous plait corrigez moi si je me trompe
la source
Modifié si le fichier n'existe pas. Créez un fichier vide.
la source
Une combinaison de deux réponses, avec une torsion. Le code sera détecté comme modifié, lorsque le fichier est créé ou l'autorisation mise à jour.
et une version qui corrige également le propriétaire et le groupe et le détecte comme modifié lorsqu'il corrige ces derniers:
la source