LINUX.ORG.RU
ФорумAdmin

Скрипт для резолва имен в ip и перемещения их в файле

 , , ,


0

1

Всех приветствую, в написании скриптов я не силен, но есть задача: Написать скрипт который берет имена пк из файла, резолвит и вставляет ip-шники в файл hosts.yml для дальнейшей настройки компов через ansible. сам скрипт :

for server in `cat ./wsredy.txt`
do host $server | grep "has address" | sed 's/has address/-/g' | sed -e 's/^.\{'23'\}//' | cat >> ./hosts.yml
done
echo "finished."

вот вывод:

  all:
    children:
      ws_ad:
        hosts:
10.61.5.253
10.61.17.251
10.23.1.228

Как сделать вывод что бы бло так?

  all:
    children:
      ws_ad:
        hosts:
          10.61.5.253
          10.61.17.251
          10.23.1.228


Последнее исправление: xaizek (всего исправлений: 1)

Может в inventory файл проще писать, чтоб не пердолиться с отступами?
А можно вообще ничего никуда не писать, а использовать динамический инвентори

zolden ★★★★★
()

Рука лицо.
А если хост имеет 2 ип? А если ни одного?
Освой dig +short
По теме вопроса, что мешает sed вставить 3 пробела в начало строки?

Bers666 ★★★★★
()

вот решение добавил 4 пробела в начало

for server in `cat ./wsredy.txt`
do host $server |grep "has address"|sed 's/^.*has address/    /g'|cat >> ./hosts.yml
done
echo "finished."

c dig

for server in `cat ./wsredy.txt`
do dig +short $server|sed "s/^/     /" >> ./hosts.yml
done
echo "finished."

s-warus ★★★
()
Последнее исправление: s-warus (всего исправлений: 4)