ansible的register变量

register接收变量的作用

register能将tasks的运行过程状态以json格式记录下来,tasks运行可能会产生error,我们在运行playbook的时候,可以根据json中的值来判断是否产生错误.
例如我们可以根据json中的rc(return code)值来判断运行结果.


  • rc值为0,表示运行结果正确,
    在这里插入图片描述

  • rc值为非0,表示运行失败
    在这里插入图片描述

打印接收的register接收变量的值

---
- name: register接收变量演示
  hosts: all
  tasks:
    - name: shell执行hostname,并将hostname结果保存到变量名myvar
      shell: hostname
      register: myvar
    - name: 打印接收的myvar变量
      debug:
        msg: "{{ myvar }}"

  • 执行结果
[rhel8 root ~/ansible/play]# ansible-playbook reg.yml 

PLAY [register接收变量演示] ****************************************************

TASK [shell执行hostname,并将hostname结果保存到变量名myvar] *********************
changed: [node2]
changed: [node1]

TASK [打印接收的myvar变量] *****************************************************
ok: [node1] => {
    "msg": {
        "changed": true,
        "cmd": "hostname",
        "delta": "0:00:00.003724",
        "end": "2021-10-18 02:36:29.122224",
        "failed": false,
        "msg": "",
        "rc": 0,
        "start": "2021-10-18 02:36:29.118500",
        "stderr": "",
        "stderr_lines": [],
        "stdout": "node1",
        "stdout_lines": [
            "node1"
        ]
    }
}
ok: [node2] => {
    "msg": {
        "changed": true,
        "cmd": "hostname",
        "delta": "0:00:00.004386",
        "end": "2021-10-18 02:36:29.119046",
        "failed": false,
        "msg": "",
        "rc": 0,
        "start": "2021-10-18 02:36:29.114660",
        "stderr": "",
        "stderr_lines": [],
        "stdout": "node2",
        "stdout_lines": [
            "node2"
        ]
    }
}

PLAY RECAP *********************************************************************
node1                      : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
node2                      : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

只打印register接收变量的子变量值

---
- name: register接收变量演示
  hosts: all
  tasks:
    - name: shell执行hostname,并将hostname结果保存到变量名myvar
      shell: hostname
      register: myvar
    - name: 打印接收的myvar变量
      debug:
        msg: "{{ myvar.stdout }}"

  • 执行结果
[rhel8 root ~/ansible/play]# ansible-playbook reg.yml 

PLAY [register接收变量演示] ****************************************************

TASK [shell执行hostname,并将hostname结果保存到变量名myvar] *********************
changed: [node2]
changed: [node1]

TASK [打印接收的myvar变量] *****************************************************
ok: [node1] => {
    "msg": "node1"
}
ok: [node2] => {
    "msg": "node2"
}

PLAY RECAP *********************************************************************
node1                      : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
node2                      : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

教Linux的李老师

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值