Ansible: выполнить вывод команды в другую команду - PullRequest
1 голос
/ 24 сентября 2019

Я планирую создать и запустить сборник рассказов (или сценарий .sh), который будет определять последний вход пользователя в систему, а затем, если дата входа старше 30 дней, завершить работу сервера, в противном случае остановить воспроизведение.

Мои знания в ANSIBLE являются базовыми и написаны на скриптах.: (

Я выполню это на моих серверах RHEL 6.x и 7.x

Выполните последнюю команду для тестового пользователя

last | grep test
test     pts/1        127.0.0.1     Mon Sep 9 10:53 - 10:53  (00:00)

Сохраните этот вывод,если дата старше 30 дней, выключите сервер. Как я могу установить эти выходные данные в качестве переменной для следующей команды?

if [ "$(date +%D)" != "30" ];then

    shutdown -h now
fi

1 Ответ

0 голосов
/ 24 сентября 2019

Вы должны попытаться придумать это сами, но вот с чего вы можете начать:

- name: Check user logged in (30 days)
  shell: last | grep test
  register: user_last_login
  ignore_errors: True

- name: Shut down server if no user login
  shell: shutdown -h now
  become: yes
  when: user_last_login

Я не дам вам последний бит (как проверить, если user_last_login старше 30 дней).

Подсказка (в Ansible есть функции для работы со временем (на основе Python):

( '10 Apr 19 12:52 UTC'|to_datetime("%d %b %y %H:%M %Z") - "1970 UTC"|to_datetime("%Y %Z")).total_seconds()
...