# установить ansible python3 -v venv venv . venv/bin/activate pip install ansible # просканить 22 порт # --open ~ сообщать только об открытом порте # -oG PATH ~ сохранить результат в greppable mode nmap -n -p 22 --open -oG nmap-scan.txt 10.17.10.0/24 # вытащить только адреса grep Up nmap-scan.txt | cut -d ' ' -f 2 | sort -n >hosts.txt # подготовить инвентарь для ansible read -s rootpass echo "[contestants]" >hosts.ini cat hosts.txt >>hosts.ini echo "[contestants:vars]" >>hosts.ini echo "ansible_ssh_user=root" >>hosts.ini echo "ansible_ssh_password=$rootpass" >>hosts.ini # добавить ssh host key в known_hosts cat hosts.txt | xargs ssh-keyscan >>~/.ssh/known_hosts # проверить работу ansible ansible -m ping contestants # запустить команду от рута на всех участниках ansible -m shell -a 'systemctl poweroff' contestants # запустить команду от участника на всех участниках ansible --become --become-user icpcteam -m shell -a 'DISPLAY=:0 XAUTHORITY=/run/user/1001/gdm/Xauthority DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/bus firefox --new-tab https://official.contest.yandex.ru/contest/69291' contestants # залить файлик на всех участников ansible -m copy -a 'dest=/root/.ssh/authorized_keys src=contest_authorized_keys' contestants ansible -m copy -a 'dest=/home/icpcteam/Desktop/CONTEST_LINKS.txt src=./CONTEST_LINKS.txt owner=icpcteam' contestants # скачать файлик у всех участников ansible -m fetch -a 'dest=team-ids src=/etc/default/webrtc-grabber-agent' contestants