python - ansible獲取ip的問題
問題描述
各位大蝦好!
小弟遇到一個(gè)問題,就是需要把約100臺(tái)機(jī)器的zk 進(jìn)行調(diào)整,目前在 ansible控制機(jī)上已經(jīng)寫好了新的zk ip,然后計(jì)劃是把這個(gè)新zk ip的文件下發(fā)到那100臺(tái)機(jī)器里,然后這100臺(tái)機(jī)器的文件中把他們各自的ip和hostname添加到這個(gè)文件上。
于是小弟就寫了一個(gè)ansible-playbook:
---- hosts: all tasks:- name: 將原有的hosts文件備份 shell: mv /etc/hosts /etc/hosts_bak- name: 將ansible端的hosts復(fù)制到各自機(jī)器上 copy: src=/root/hosts dest=/etc/ owner=root group=root mode=0544- name: 在新的hosts文件后面追加各自機(jī)器內(nèi)網(wǎng)ip和hostname lineinfile: dest=/etc/hosts line='{{ansible_all_ipv4_addresses}} {{ansible_hostname}}'
但是寫完之后執(zhí)行出來,卻是這樣的效果:
而我想要的是這樣的效果:
請(qǐng)問如何是好?
問題解答
回答1:問題解決了,用IP: '{{ ansible_eth0’ipv4’ }}' 而不是{{ansible_all_ipv4_addresses}}
修改了之后的playbook 如下:
---- hosts: all vars:IP: '{{ ansible_eth0[’ipv4’][’address’] }}' tasks:- name: 將原有的hosts文件備份 shell: mv /etc/hosts /etc/hosts_bak- name: 將ansible端的hosts復(fù)制到各自機(jī)器上 copy: src=/root/hosts dest=/etc/ owner=root group=root mode=0644- name: 在新的hosts文件后面追加各自機(jī)器內(nèi)網(wǎng)ip和hostname lineinfile: dest=/etc/hosts line='{{IP}} {{ansible_hostname}}'
相關(guān)文章:
1. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””2. docker容器呢SSH為什么連不通呢?3. javascript - 連續(xù)點(diǎn)擊觸發(fā)mouseleave事件4. nignx - docker內(nèi)nginx 80端口被占用5. mac里的docker如何命令行開啟呢?6. 關(guān)于docker下的nginx壓力測(cè)試7. docker - 各位電腦上有多少個(gè)容器啊?容器一多,自己都搞混了,咋辦呢?8. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問題。9. docker gitlab 如何git clone?10. macos - mac下docker如何設(shè)置代理

網(wǎng)公網(wǎng)安備