在windows中成功输出beforetask时,使用playbook运行任务



我正在使用Jenkins执行下面的YAML(ansible(文件。我想只在task2成功执行/输出之后执行task3,而task2只在task1之后执行,我的YAML文件如下。如何为此添加依赖项?

例如application.yml

-name: task1
win_command: "C:WindowsMicrosoft.NETFRAMEWORKV3.9.3013MSBuild.exe" "E:ApplicationFolderApp.xml" -target:Execute /p:ApplicationName="appname"
register: executeapp1
-name: task2
win_command: "C:WindowsMicrosoft.NETFRAMEWORKV3.9.3013MSBuild.exe" "E:ApplicationFolderApp.xml" -target:Execute /p:ApplicationName="appname1"
register: executeapp2
-name: task3
win_command: "C:WindowsMicrosoft.NETFRAMEWORKV3.9.3013MSBuild.exe" "E:ApplicationFolderApp.xml" -target:Execute /p:ApplicationName="appname1"
register: executeapp3

有一个处理程序的例子(我不知道你在接下来的步骤中是否需要寄存器,所以我让它们在这里。

tasks:
- name: task1
win_command: "C:WindowsMicrosoft.NETFRAMEWORKV3.9.3013MSBuild.exe" "E:ApplicationFolderApp.xml" -target:Execute /p:ApplicationName="appname"
notify: task2
register: executeapp1

handlers:
- name: task2
win_command: "C:WindowsMicrosoft.NETFRAMEWORKV3.9.3013MSBuild.exe" "E:ApplicationFolderApp.xml" -target:Execute /p:ApplicationName="appname1"
notify: task3
register: executeapp2
- name: task3
win_command: "C:WindowsMicrosoft.NETFRAMEWORKV3.9.3013MSBuild.exe" "E:ApplicationFolderApp.xml" -target:Execute /p:ApplicationName="appname1"
register: executeapp3

只有当任务的退出状态为"0"时,Notify才会起作用;"已更改";因此它将仅在任务1工作时执行通知。

你也可以用更糟糕的方式使用时:

-name: task1
win_command: "C:WindowsMicrosoft.NETFRAMEWORKV3.9.3013MSBuild.exe" "E:ApplicationFolderApp.xml" -target:Execute /p:ApplicationName="appname"
register: executeapp1
-name: task2
win_command: "C:WindowsMicrosoft.NETFRAMEWORKV3.9.3013MSBuild.exe" "E:ApplicationFolderApp.xml" -target:Execute /p:ApplicationName="appname1"
register: executeapp2
when: task1 is changed
-name: task3
win_command: "C:WindowsMicrosoft.NETFRAMEWORKV3.9.3013MSBuild.exe" "E:ApplicationFolderApp.xml" -target:Execute /p:ApplicationName="appname1"
register: executeapp3
when: task2 is changed

最新更新