是否可以通过 Ansible 在前台编写 运行 脚本
Is it possible to run script in foreground via Ansible
我使用 Ansible 将某些内容推送到节点,我想使用 Zenity 来警告正在使用节点的用户我正在做某事,但我无法弄清楚如何 运行 脚本显示在节点前景。可以通过 Ansible 运行 脚本但将其显示在节点而不是控制机上?
您可以使用 this answer 了解如何使用 notify-send
通知用户。我建议编写一个专用脚本,您可以在其中将消息作为参数传递,而不是将该内联放入 ansible
所以你可以做到
- hosts: targets
tasks:
- name: Notify of imminent upgrade
shell: "/opt/myscripts/notify-connected-users Upgrade and reboot coming soon"
- name: Let give some time to users to read the message
pause:
minutes: 1
- name: continue the operation
...
我发现我需要做的就是使用脚本模块 运行 我在节点上的本地脚本。
---
- hosts: targets
tasks:
- name: Notify of imminent upgrade
script: /home/hero/loading.sh
脚本是这样的。
#!/bin/bash
DISPLAY=:0 zenity --warning
我使用 Ansible 将某些内容推送到节点,我想使用 Zenity 来警告正在使用节点的用户我正在做某事,但我无法弄清楚如何 运行 脚本显示在节点前景。可以通过 Ansible 运行 脚本但将其显示在节点而不是控制机上?
您可以使用 this answer 了解如何使用 notify-send
通知用户。我建议编写一个专用脚本,您可以在其中将消息作为参数传递,而不是将该内联放入 ansible
所以你可以做到
- hosts: targets
tasks:
- name: Notify of imminent upgrade
shell: "/opt/myscripts/notify-connected-users Upgrade and reboot coming soon"
- name: Let give some time to users to read the message
pause:
minutes: 1
- name: continue the operation
...
我发现我需要做的就是使用脚本模块 运行 我在节点上的本地脚本。
---
- hosts: targets
tasks:
- name: Notify of imminent upgrade
script: /home/hero/loading.sh
脚本是这样的。
#!/bin/bash
DISPLAY=:0 zenity --warning