lookup - dig
lookup 是很方便的查詢函式,第一個參數是 ‘dig’ 的時候,會拿第二個參數來做 DNS 查詢。
例如下面的 playbook
- debug:
msg: "ansible.cloudns.pro IP Address: {{ lookup('dig', 'ansible.cloudns.pro') }}"
就等同於 dig ansible.cloudns.pro
在使用 lookup(‘dig’, ‘<your_domain>’) 之前,得先安裝套件:
- Ubuntu: python-dnspython 或 python3-dnspython
- Red Hat / CentOS: python-dns 或 python3-dns
除了上面提到的以域名來找 IP 之外,也可以指定 DNS record type 來找。 例如,想找 example.org 的 MX record (SMTP伺服器位址),就可以帶入 qtype=MX
# dig example.org MX
- name: "The MX record for example.org."
debug:
msg: "{{ lookup('dig', 'example.org.', 'qtype=MX') }}"
要注意的是,lookup 是在執行 ansible-playbook 的也就是控制端主機上執行,而非被控端。
參考資料: