加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 通过ansible调用远程bash函数

发布时间:2020-12-13 22:56:36 所属栏目:Linux 来源:网络整理
导读:是否可以通过ansible ad-hoc命令(使用 shell,命令模块?)调用bash中定义的远程函数(例如,在/etc/profile.d中存储的一个脚本中添加) 例如,我有以下功能,可以查看apt历史的状态: function apt-history(){ case "$1" in install) cat /var/log/dpkg.log | grep
是否可以通过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'

如果您需要设置环境变量,这是一个常见的技巧.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读