Вы должны проверить множество состояний:
1 маршрутизация с вашего клиента на сервер
2 проверьте исходный интерфейс, который вы используетеping
причина в том, что вы используете ping, например, с одним из физических интерфейсов и на вашем сервере у вас нет маршрута к вашему туннелю для физического интерфейса.
3 проверить маршрутизацию в пункте назначения и iptable
и т. д.
Не используйте для этого awk вообще, так как он не дает никаких преимуществ и создает дополнительную сложность и неэффективность. Оболочки существуют для манипулирования файлами и процессами и последовательности вызовов инструментов, и это именно то, что вы делаете, -написав сценарий для последовательности вызовов некоторых команд. Вам не нужно вызывать внешний инструмент, такой как awk, из оболочки, просто чтобы сравнить 2 строки как часть этого.
Просто сделайте это в оболочке:
#!/usr/bin/env bash
file1='ip.txt'
while read -r ip role rest; do
case $role in
puppetclient )
echo "Found the IP $ip with the text $role"
echo "Will install puppet agent"
command_to_install_puppet_agent
;;
puppetmaster )
echo "Found the IP $ip with the text $role"
echo "Will install puppet server"
command_to_install_puppet_server
;;
esac
done < "$file1"