美文网首页
ansible register

ansible register

作者: JohnLee1100 | 来源:发表于2017-08-20 16:47 被阅读0次

    register

    register
    用于注册一个变量,保存命令的结果(shell或command模块),这个变量可以在后面的task、when语句或模板文件中使用,该指令用在循环中会有不同,请看ansible学习之八:Loops中关于register的讲解

    - shell: /bin/pwd
      register: pwd_result
    

    此时变量pwd_result的结果为:

    {
        u'changed': True, 
        u'end': u'2014-02-23 12:02:51.982893', 
        u'cmd': [u'/bin/pwd'], 
        u'start': u'2014-02-23 12:02:51.980191', 
        u'delta': u'0:00:00.002702', 
        u'stderr': u'', 
        u'rc': 0,           #这个就是命令返回状态,非0表示执行失败
        'invocation': {'module_name': 'command', 'module_args': '/bin/pwd'}, 
        u'stdout': u'/home/sapser',    #以一个字符串保存命令结果
        'stdout_lines': [u'/home/sapser']     #以列表保存命令结果
    }
    

    在随后的task中使用该变量:

    - debug: msg="{{pwd_result}}"
      when: pwd_result.rc == 0
    

    循环处理命令结果:

    - name: registered variable usage as a with_items list
      hosts: all
      tasks:
          - name: retrieve the list of home directories
            command: ls /home
            register: home_dirs
    
          - name: add home dirs to the backup spooler
            file: path=/mnt/bkspool/{{ item }} src=/home/{{ item }} state=link
            with_items: home_dirs.stdout_lines       #等同于with_items: home_dirs.stdout.split()
    

    相关文章

      网友评论

          本文标题:ansible register

          本文链接:https://www.haomeiwen.com/subject/axifdxtx.html