Je cherche à convertir la variable d'entrée de date en époque. n'a pas vu de fonction ansible pour m'aider avec ça
Par exemple: La date est une variable de format:% m /% d /% Y% H:% M:% S, elle doit être convertie en secondes d'époque.
3 Réponses :
Ansible a un filtre En utilisant ce filtre, vous pouvez convertir une date en chaîne en une heure d'époque unix comme ceci: Ce qui donnerait: to_datetime
, documenté ici . Cette page comprend les exemples suivants:
TASK [debug] **********************************************************************************
ok: [localhost] => {
"msg": "1557172200"
}
- debug:
msg: "{{ ('2019-05-06 15:50:00'|to_datetime).strftime('%s') }}"
Merci, cela a fonctionné. voici ce que je fais
- name: update blackout file win_lineinfile: path: D:\temp\blackout\blackout.txt backup: yes insertafter: EOF line: "\\r\\nPermissions: admin=write\\r\\nadhoc:{{ regex_suppression }};{{ start_date_epoch }};{{ end_date_epoch }};{{ changerequest }}" vars: regex_suppression: "^(?i).*__({{serverlist | regex_replace(',','|')}}).*" start_date_epoch: "{{ ( start_time | to_datetime).strftime('%s') }}" end_date_epoch: "{{ ( end_time | to_datetime).strftime('%s') }}"
J'ai dû convertir une chaîne pour le module utilisateur. Les autres approches ne fonctionnaient pas pour moi.
Vous pouvez utiliser strftime
:
vars:
- name: "create user" user: name: user expires: "{{ expire_date.strftime('%s') }}" become: true
tâche:
expire_date: 2020-07-12