ansible register详解

当我们需要判断对执行了某个操作或者某个命令后,如何做相应的响应处理,也就是说在ansible的playbook中task之间的相互传递变量

例如以下的yaml文件,该yaml文件要实现的功能是:打包一个文件夹,然后改变这个压缩包的名称,用ip命名该压缩包。

---
- hosts: all
  gather_facts: no
  tasks:
    - name: tar_file
      shell: "cd /appslog/scans/ && tar -zcf scan.tar.gz log/"
      become: true
      become_method: su
      become_user: root
      ignore_errors: yes
    - name: register vars
      shell: ifconfig  | grep -A 2 bond0 | grep netmask | awk '{print $2}'
      register: info
    - name: mv_file
      shell: mv /appslog/scans/scan.tar.gz /appslog/scans/{{ item }}.tar.gz
      with_items: "{{ info.stdout }}"
      become: true
      become_method: su
      become_user: root
      ignore_errors: yes

第一个任务就是用shell模块,执行打包命令

第二个任务,通过shell模块找出了ip之后,把这个执行结果传递给register

第三个任务,将第二个任务捕获到的结果info.stdout,赋值给变量通过变量{{ item }}调用register中info.stdout

在playbook 命令加入参数 -v 就可以打印出 register 的内容。所以我们可以看到具体拿到的是什么样的结果。所以我们不仅可以拿到info.stdout,还可以拿到其他的字典值,比如:stdout_lines,cmd等等

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值