仅当特定服务正在运行时,如何才能运行任务?

时间:2020-04-20 13:55:12

标签: ansible

我正在尝试通过pg_dump备份Postgres DB,但这只能在服务运行时才能完成。

示例:

    - name: Backup DB to Amazon S3
      when: ansible_facts.services["postgresql.service"] is defined
      become: no
      shell: pg_dump -U postgres -d my_db -Z 9  | aws s3 cp --storage-class STANDARD_IA --sse aws:kms - s3://my_bucket/{{inventory_hostname}}/dump-`date +%Y-%m-%d-%H-%M-%S`.sql.gz

这将检查该服务(如果已定义),如何检查该服务是否正在运行?

1 个答案:

答案 0 :(得分:2)

您正在调用的ansible_facts.services模块具有一个状态变量。你尝试过吗?

when: ansible_facts.services["postgresql.service"].state == started