簡體   English   中英

通過ansible調用遠程bash功能

[英]Call remote bash function via ansible

是否可以通過ansible ad-hoc命令(使用shell,命令模塊?)調用bash中定義的遠程函數(例如,在/etc/profile.d中存儲的一個腳本中添加)

例如,我有以下功能,可以查看apt歷史的狀態:

function apt-history(){
  case "$1" in
    install)
          cat /var/log/dpkg.log | grep 'install '
          ;;
    upgrade|remove)
          cat /var/log/dpkg.log | grep $1
          ;;
    rollback)
          cat /var/log/dpkg.log | grep upgrade | \
              grep "$2" -A10000000 | \
              grep "$3" -B10000000 | \
              awk '{print $4"="$5}'
          ;;
    *)
          cat /var/log/dpkg.log
          ;;
  esac
}

是否可以通過ad-hoc命令從其中一個現有模塊直接通過函數名調用此函數? 我知道可以創建一個新腳本並直接遠程調用它,但這不是我想要在這里實現的。 任何建議贊賞。

您必須使用命令或shell模塊在遠程端實例化bash,如下所示:

ansible localhost -m command -a 'bash -lc apt-history'

如果您需要設置環境變量,這是一個常見的技巧。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM