LoginSignup
1
1

More than 5 years have passed since last update.

IPアドレス棚卸し_Ansibleで。

Posted at

突貫ですが作ってみました。

Ansibleのhostsファイルに書かれているホストを対象として実行すると以下のように出力するだけです。
ホスト名
IPアドレス
IPアドレス
ホスト名
IPアドレス

事前注意としては、Ansibleのhostsファイルで
server[001:005]みたいな書き方が出来ると思いますが、その場合ちゃんと動きません。

毎月の棚卸し時、ホスト名と実際振られているIPアドレスをリストアップを自動でやれたら少しは便利かなと思いました。
IP管理表とDNSと実機って結構ずれてしまうので。
シェルはこれ

ip_list.sh
#!/bin/bash

filename=$1

while read line
do
line_name=`echo $line | grep -v "^#\|^\[" `

if [ "$line_name" != "" ];
then
    ansible -m setup $line_name | grep "ansible_hostname\| \"address\"" | awk '{print $2}' | sed -e "s/,//g" | sed "s/\"//g" | egrep -v "..:..:..:..:..:.." | egrep -v "^fe80:" | grep -v 127.0.0.1 | grep -v "0xF0000\|0xE0000\|0xEA050" | sort -r | uniq
fi
done < ${filename}

例として、hostsの中身を以下とします。コメントアウトされてる行やグループ行はスキップしますー


cat /etc/ansible/hosts
[svr01-03]
svr001
svr002
 ## mainte
 #svr003

[web01-02]
web01
web02

ip_list.shを実行します。


/usr/local/bin/ip_list.sh > /usr/local/bin/ip_list.log
tail -f /usr/local/bin/ip_list.log
svr001
192.168.1.1
10.14.0.1
svr002
192.168.1.2
10.14.0.2
web01
172.17.1.1
10.14.2.1
web02
172.17.1.2
10.14.2.2
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1