Как запустить код Python на хосте, как это делает модуль ansible.builtin.shell для Bash?Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Как запустить код Python на хосте, как это делает модуль ansible.builtin.shell для Bash?

Сообщение Гость »


Иногда я не могу использовать встроенные функции Ansible/Jinja2, чтобы получить то, что хочу, поэтому я получаю это через Bash.

Например, мне нужно было ввести вчерашнюю дату в формате гггг-мм-дд, и я нашел самый простой способ Ansible сделать ее слишком сложной, поскольку задача такая простая< /п> - name: напечатать вчерашнюю дату отлаживать: msg: "{{ '%Y-%m-%d'|strftime(ansible_date_time.epoch|int - 86400) }}" Поэтому я написал следующие задачи, чтобы получить его через Bash

- name: Зарегистрируйте вчерашнюю дату с помощью Bash. ansible.builtin.???: командная строка: | echo "$(date -d 'вчера' '+%Y-%m-%d')" зарегистрироваться: вчера_дата_bash_echo_result - имя: Показать вчера_дата_bash_echo_result ansible.builtin.debug: msg: "yesterday_date_bash_echo_result.stdout — {{ вчера_дата_bash_echo_result.stdout }}" Теперь я хотел бы сделать то же самое с помощью Python, который еще более удобен в использовании, когда дело доходит до преобразования и форматирования строк (не сосредотачивайтесь, например, на получении вчерашней задачи с датой, подумайте о какой-нибудь конкретной подстановке регулярных выражений) .

Итак, команды Python для получения вчерашней даты, например:

из datetime import datetime, timedelta вчера = datetime.now() - timedelta(1) print( datetime.strftime(вчера, '%Y-%m-%d')) Как я могу заставить свою управляющую машину запускать их в задаче, чтобы я мог зарегистрировать выходные данные Python?

Мне нужно что-то вроде следующего

- name: Зарегистрируйте вчерашнюю дату с помощью Python. ansible.builtin.shell: командная строка: | из даты и времени импорта даты и времени, timedelta вчера = datetime.now() - timedelta(1) print( datetime.strftime(вчера, '%Y-%m-%d')) - имя: Показать вчера_дата_python_echo_result ansible.builtin.debug: msg: "yesterday_date_python_echo_result.stdout — {{ вчера_дата_bash_echo_result.stdout }}" Есть ли встроенный модуль Ansible для достижения этой цели?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»