Cum de a adăuga timp pentru actualul timestamp în Ansiblu?

0

Problema

Eu sunt încercarea de a automatiza câteva sarcini în Ansiblu și în timp ce am primit totul altceva să funcționeze, trebuie să aibă o start_time și end_time variabilă care se adaugă timpul la curent timestamp ca ServiceNow sistemul nu acceptă un curent temporal atunci când se creează o cerere de schimbare.

De exemplu, am o variabilă start_time ca "{{ lookup('pipe', date +\"%Y-%m-%d %r\"') }}" dar mi-ar trebui ca asta sa fie momentul actual +5 minute de exemplu. De asemenea, pe end_date, dar ceva de genul +15 minute.

ansible jinja2
2021-11-23 13:22:47
3

Cel mai bun răspuns

2

Ceva de genul?

{{ ansible_date_time.date }}
{{ ansible_date_time.hour|int +1|int }}
{{ ansible_date_time.minute|int +15|int }}
2021-11-23 15:18:12

Acest lucru este, de asemenea, foarte bine, vă mulțumesc!
oakenshield
1

Dacă aveți de gând să utilizați lookup_plugins și pipe, puteți adăuga doar 5 minute, prin utilizarea date +"%Y-%m-%d %r" -d "5 mins".

Datorită

Cu toate acestea, se recomandă să utilizați Ansiblu variabile cum ar fi ansible_date_time de fapte.

date_time:
  date: '2021-11-23'
  day: '23'
  epoch: '1637678908'
  hour: '15'
  iso8601: '2021-11-23T14:48:28Z'
  iso8601_basic: 20211123T154828773386
  iso8601_basic_short: 20211123T154828
  iso8601_micro: '2021-11-23T14:48:28.773386Z'
  minute: '48'
  month: '11'
  second: '28'
  time: '15:48:28'
  tz: CET
  tz_offset: '+0100'
  weekday: Tuesday
  weekday_number: '2'
  weeknumber: '47'
  year: '2021'

Formularul de acolo ai putea folosi epoch, minute sau ce s-ar potrivi pentru cazul dumneavoastră de utilizare.

2021-11-23 14:50:21

Am fost de succes în obținerea de timp adăugate folosind date +"%Y-%m-%d %r" -d "+5 minutes" cu toate acestea, aș dori pentru a realiza acest lucru folosind o variabilă fișier în loc de a avea pentru a executa comanda în fiecare playbook și stocarea variabila.
oakenshield

A dovedit că poate fi stocat ca o variabilă ca "{{ lookup('pipe', 'date -d \"+5 minutes\" +\"%Y%m%d %r\"') }}"
oakenshield
0

Puteți utiliza strftime filtru format ori, Ansiblu built-in fapt adunare pentru a obține ora curentă, și un pic de aritmetică pentru a adăuga un offset.

- hosts: localhost
  tasks:
    - debug:
        msg:
          - "{{ '%Y-%m-%d %r' | strftime(ansible_facts.date_time.epoch | int + 300 ) }}"
          - "{{ '%Y-%m-%d %r' | strftime(ansible_facts.date_time.epoch | int + 900 ) }}"
TASK [debug] *******************************************************************
ok: [localhost] => {
    "msg": [
        "2021-11-23 01:10:45 PM",
        "2021-11-23 01:20:45 PM"
    ]
}
2021-11-23 14:41:37

Acest lucru este foarte bun, vă mulțumesc!
oakenshield

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................