确认任务是否正在运行的Ansible任务

霍华德·李

Ansible 2.1

在剧本中,我开始了一个过程:

- name: Start Automation Agent, and enable start on boot
  service: name=mongodb-mms-automation-agent state=started enabled=yes

从播放回顾来看,该过程似乎已成功启动。

TASK [install : Start automation agent, and enable start on boot] **************
changed: [server1]

但是,登录到远程主机并执行时ps,该进程未运行。在进程日志中检查它是否满足某些先决条件(预期)。

如何在剧本中编写任务以确认过程已成功启动?

德尔蒂克

您可以failed在运行检查进程是否正在运行的命令之后,使用Jinja2筛选器进行检查。

这是一个使用命令的输出systemctl status apache2来确定Apache是​​否正在运行的示例

- name: Check if Apache is running
  command: systemctl status apache2
  ignore_errors: yes
  changed_when: false
  register: service_apache_status

- name: Report status of Apache
  fail:
    msg: |
      Service apache2 is not running.
      Output of `systemctl status apache2`:
      {{ service_apache_status.stdout }}
      {{ service_apache_status.stderr }}
  when: service_apache_status | failed

如果第一个任务的命令失败,则第二个任务将失败并显示第一个任务失败的原因。
返回码存储在中service_apache_status.rc

失败的示例输出:

TASK: [Check if Apache is running] *********************** 
failed: [localhost] => {"changed": false, "cmd": ["systemctl", "status", "apache2"], "delta": "0:00:00.009379", "end": "2016-06-06 15:17:27.827172", "rc": 3, "start": "2016-06-06 15:17:27.817793", "stdout_lines": ["* apache2.service", "   Loaded: not-found (Reason: No such file or directory)", "   Active: inactive (dead)"], "warnings": []}
stdout: * apache2.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)
...ignoring

TASK: [Report status of Apache] ***************************
failed: [localhost] => {"failed": true}
msg: apache2 is not running
systemctl status apache2 output:
* apache2.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

这是使用pgrep(检查进程是否正在运行)的另一种方式(尽管可能不太可靠)

- name: Check if Apache is running
  shell: pgrep apache2
  ignore_errors: yes
  changed_when: false
  register: service_apache_status

- name: Report status of Apache
  fail:
    msg: |
      Service apache2 is not running.
      Return code from `pgrep`:
      {{ service_apache_status.rc }}
  when: service_apache_status.rc != 0

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ansible任务是否运行?

来自分类Dev

如何检查是否正在运行任何后台任务?

来自分类Dev

预定任务是否应保持“正在运行”状态?

来自分类Dev

如何检测特定的计划任务是否正在运行?

来自分类Dev

gulp任务如何知道gulp.watch任务是否正在运行?

来自分类Dev

计划的Powershell任务,正在运行

来自分类Dev

限制正在运行的并发任务数

来自分类Dev

如何改善正在运行的异步任务

来自分类Dev

关闭正在运行的任务的ExecutorService

来自分类Dev

用正在运行的任务处理对象?

来自分类Dev

在正在运行的Shell中将任务排队

来自分类Dev

如何停止正在运行的异步任务?

来自分类Dev

确认正在等待任务

来自分类Dev

检查气流工作者(芹菜)上是否有正在运行的任务

来自分类Dev

Grunt Watch没有正在运行的JS或CSS任务

来自分类Dev

如果正在运行,则取消异步任务

来自分类Dev

如何获取当前正在运行的所有任务

来自分类Dev

如何使用Tokio远程关闭正在运行的任务

来自分类Dev

“致命错误:生成EACCES”正在运行“ sass:dist”任务

来自分类Dev

如何查看/停止当前正在运行的crontab任务?

来自分类Dev

推送到 heroku 是否会中断 Rails 应用程序中当前正在运行的 rake 任务?

来自分类Dev

如何显示正在运行的Google App Engine任务队列任务的进度?

来自分类Dev

如何显示正在运行的Google App Engine任务队列任务的进度?

来自分类Dev

我在顶部和全部任务>睡眠+正在运行的任务中处于状态状态

来自分类Dev

如何确认正常任务不在运行列表中的原因

来自分类Dev

如何停止正在运行的Monitor上的LongRunning任务正在等待应用程序关闭?

来自分类Dev

Task.ContinueWith()正在执行,但任务状态仍为“正在运行”

来自分类Dev

在开始新任务之前检查任务是否已经在运行

来自分类Dev

计划任务正在运行批处理,但批处理中未运行exe

Related 相关文章

  1. 1

    Ansible任务是否运行?

  2. 2

    如何检查是否正在运行任何后台任务?

  3. 3

    预定任务是否应保持“正在运行”状态?

  4. 4

    如何检测特定的计划任务是否正在运行?

  5. 5

    gulp任务如何知道gulp.watch任务是否正在运行?

  6. 6

    计划的Powershell任务,正在运行

  7. 7

    限制正在运行的并发任务数

  8. 8

    如何改善正在运行的异步任务

  9. 9

    关闭正在运行的任务的ExecutorService

  10. 10

    用正在运行的任务处理对象?

  11. 11

    在正在运行的Shell中将任务排队

  12. 12

    如何停止正在运行的异步任务?

  13. 13

    确认正在等待任务

  14. 14

    检查气流工作者(芹菜)上是否有正在运行的任务

  15. 15

    Grunt Watch没有正在运行的JS或CSS任务

  16. 16

    如果正在运行,则取消异步任务

  17. 17

    如何获取当前正在运行的所有任务

  18. 18

    如何使用Tokio远程关闭正在运行的任务

  19. 19

    “致命错误:生成EACCES”正在运行“ sass:dist”任务

  20. 20

    如何查看/停止当前正在运行的crontab任务?

  21. 21

    推送到 heroku 是否会中断 Rails 应用程序中当前正在运行的 rake 任务?

  22. 22

    如何显示正在运行的Google App Engine任务队列任务的进度?

  23. 23

    如何显示正在运行的Google App Engine任务队列任务的进度?

  24. 24

    我在顶部和全部任务>睡眠+正在运行的任务中处于状态状态

  25. 25

    如何确认正常任务不在运行列表中的原因

  26. 26

    如何停止正在运行的Monitor上的LongRunning任务正在等待应用程序关闭?

  27. 27

    Task.ContinueWith()正在执行,但任务状态仍为“正在运行”

  28. 28

    在开始新任务之前检查任务是否已经在运行

  29. 29

    计划任务正在运行批处理,但批处理中未运行exe

热门标签

归档