2017-03-17 51 views
0

我需要一些幫助,提供一個非常簡單的方法從一個IP地址中提取最後兩個號碼。目前看起來我的劇本是這樣提取最後兩個IP號碼

--- 
- hosts: localhost 
    tasks: 
    - name: install dns resolver 
    yum: name=python-dns 

    - debug: msg={{ lookup('dig','google.com.') }} 

運行這個劇本產生以下

TASK [install dns resolver] **************************************************** 
ok: [localhost] 

TASK [debug] ******************************************************************* 
ok: [localhost] => { 
"msg": "172.217.7.142" 

是否有ansible辦法剛剛返回IP的最後兩個數字? ie42

我居然有這種嵌入在模板中,最終將有一個像這樣的格式:在模板

last_two_numbers_of_IP={{ lookup('dig','google.com.') }} 

輸出應該像這樣:

last_two_numbers_of_IP=42 
+0

什麼它應該返回如果地址是'10.0.0.1'? – techraf

回答

1

獲取最後一個字節然後是最後八位字節的最後兩個字符。如果最後一個八位字節只有一個數字,它將只返回那個數字。

vars: 
    ip: 192.168.1.123 

    tasks: 
    - name: install dns resolver 
    debug: msg={{ ip.split('.')[-1][-2:] }} 

輸出

TASK [install dns resolver] **************************************************** 
ok: [localhost] => { 
    "msg": "23" 
} 
+0

感謝helloV。我編輯了最初的問題以利用您提供的答案。 – crusadecoder