2015-08-19 32 views
2

我想取一個已註冊變量的前幾個字符。有人可以建議我怎麼做。Ansible - 取寄存器值的前幾個字符

- hosts: node1 
    gather_facts: False 
    tasks: 
     - name: Check Value mango 
     shell: cat /home/vagrant/mango 
     register: result 

     - name: Display Result In Loop 
     debug: msg="Version is {{ result.stdout[5] }}" 

以上代碼顯示註冊字符串的第5個字符,而不是前5個字符。

PLAY [node1] ****************************************************************** 

TASK: [Check Value mango] ***************************************************** 
changed: [10.200.19.21] => {"changed": true, "cmd": "cat /home/vagrant/mango", "delta": "0:00:00.003000", "end": "2015-08-19 09:29:58.229244", "rc": 0, "start": "2015-08-19 09:29:58.226244", "stderr": "", "stdout": "d3aa6131ec1a2e73f69ee150816265b5617d7e69", "warnings": []} 

TASK: [Display Result In Loop] ************************************************ 
ok: [10.200.19.21] => { 
    "msg": "Version is 1" 
} 

PLAY RECAP ******************************************************************** 
10.200.19.21    : ok=2 changed=1 unreachable=0 failed=0 

回答

5

您可以使用範圍工作:

- name: Display Result In Loop 
    debug: msg="Version is {{ result.stdout[:5] }}" 

這將打印前5個字符。

  • 1:5會打印字符2到5,跳過第一個字符。
  • 5:會跳過前5個字符,並打印字符串的其餘部分
+0

非常感謝,它的工作完美。 – SPM