Wpis z mikrobloga

Mam do wykonania dUżO komend na wIeLu serwerach, które nie mają połączenia z Internetem.

Udostępniam im Internet robiąc forwarding przez SSH
ssh user@"$IP" -T -R 4444:localhost:8080 < commands

Na swoim hoście mam 3proxy z lista serwerów w configu, bardzo dużo "external"

Działa to dla pojedynczych serwerów. Teraz jak to zrobić hurtowo?
Plan był dobry, skrypt #bash

while read line; do
echo "$line"
ssh user@"$line" -T -R 4444:localhost:8080 < commands
done < servers

Ale każe mi podać hasło, a musi się logować kluczem, bo wiadomo ( ͡° ͜ʖ ͡°)
Nie wiem dlaczego, teraz przy skrypcie nagle chce hasło.

I teraz druga sprawa. Da się to zrobić na #ansible ? Jak mogę zmienić parametry połączenia żeby zrobić forwarding? Nic nie umiałem znaleźć. ( ͡° ʖ̯ ͡°)

#linux #devops
  • 13
./inventories/notAProduction/notAproduction.yml


@pyroxar: teraz nie pamiętam ale upewnij się, że ansible nie patrzy na inventory po rozszerzeniu w nazwie. Bo inventory możesz definiować na kilka sposobów no i ty zrobiłeś to w formie pliku ini ale plik zapisałeś jako yaml z jakiegoś powodu.
@Kryspin013: jest postęp, działa już iterowanie hostów, ale nie tworzy się tunel. Co ciekawe, tylko wtedy kiedy używam ansible. Kiedy ja wykonuje komendę ręcznie, wszystko jest ok.
https://pastebin.com/h57Wf5cL

Zrobiłem task, który poazuje komendę:
- name: "SSH"
debug:
msg: "ssh -W %h:%p {{ ansibleuser }}@{{ inventoryhostname }} -R 4444:localhost:8080"
Jeśli mu wierzyć to takie coś robi ansible:
ssh -W %h:%p kpaczos@172.30.12.181 -R 4444:localhost:8080

Sęk w tym, ze ta sama komenda
@Kryspin013: wybacz, ale chyba nie umiem tego zastosować do mojego projektu.

plik inventory:
all:
vars:
ansibleconnection: ssh
ansible
user: user
children:
testServers:
hosts:
172.30.12.16:
172.30.12.181:
vars:
ansiblesshcommonargs: '-o ProxyCommand="ssh -W %h:%p {{ ansibleuser }}@{{ inventoryhostname }}"'
ansible
sshextraargs: '-R 4444:localhost:8080'