如何指派任务给其他人或机器?
指派对象
这件事由我自己完成,通过 web 通知这件事。
to: myself 的含义是这个任务需要本人完成,除此之外还可以选择通知方式,比如 web、email 等
to 目前后面可以跟的内容有: - (默认)myself - machine - nobody
via 目前支持: - (默认)web - email - api
但是这两者并非可以任意组合,比如通过 api 通知 myself 就没有意义,或者以 web 通知 machine 也没有意义。
如果没有设置 assign,默认是 to: myself, via: web,如果设置了,就必须包含 to 和 via。
对于机器,必须指定网址,数据和凭证是可选的,另外,除了 data 内的字段,还会把 desc 的内容也带上,具体怎么用看程序实现。
对于不能即时完成的任务,比如通过 API 触发其他程序,会在收到执行结果后,将结果存于日志。
对于单个用户,任务之间的执行是顺序进行的,一条执行完后再执行下一条。不同用户之间的任务可能会并发执行。
不对这个任务做任何事情
触发后不执行任何操作,比如触发仅是为了添加 tag 给其他任务使用
使用邮箱发送内容
调用 API 格式
assign:
to: machine
via: api
url: "http://127.0.0.1:22335"
data: {inventory: /home/skf/ansible/backup/inventory.yaml, playbook: /home/skf/ansible/backup/backup.yaml, tags: "backup_matrix, backup_mastodon, backup_imagebed"}
auth: "Authorization: 123456"
url 必须提供;data 如果提供,就使用 POST 请求,否则使用 GET 请求;auth 提供则会在 header 中添加上。
使用变量
assign 中,除 to 之外的字段,可以使用变量。
如下,在自己的变量区设置两个变量
在日程中,url 和 auth 可以直接跟两个变量名,在执行任务中,会被替换成实际的值。