- Oto samouczek wideo
Skrypty i pliki konfiguracyjne są dostępne tutaj:
- Zainstaluj sshpass
SLES | openSUSE Leap 15.4#
1
| sudo zypper install sshpass
|
Debian#
1
| sudo apt install sshpass
|
Red Hat#
1
| sudo dnf install sshpass
|
- Zainstaluj sudo na zdalnych hostach
SLES | openSUSE Leap 15.4#
1
| sudo zypper install sudo
|
Debian#
1
| sudo apt install sudo
|
Red Hat#
1
| sudo dnf install sudo
|
- Wpisz poniższe polecenie:
Zmień %sudo lub %wheel na %admins
Dodaj poniższą linię:
1
| %admins ALL=(ALL) NOPASSWD: ALL
|
Zapisz i wyjdź
- Dodaj grupę admins
- Utwórz plik na głównym serwerze, gdzie w przyszłości zainstalujesz ansible
i umieść w nim hasło dla użytkownika, który obecnie może łączyć się z zdalnymi hostami.
- Ustaw plik skryptu jako tylko do odczytu dla tego użytkownika
1
| chmod 400 pass_file
|
- Utwórz listę serwerów z adresami IP lub nazwami hostów
- Utwórz skrypt
1
| vim ansible-sudo.sh
|
I dodaj poniższą zawartość
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| #!/bin/bash
servers=$(cat servers)
echo -n "Wpisz nazwę użytkownika: "
read userName
clear
for i in $servers; do
sshpass -f pass_file ssh -q -t $USER@$i "hostname; sudo usermod -aG admins $userName"
done
echo
read -n1 -s -p "Sprawdzić? (t)ak lub (n)ie " ans
echo
if [ $ans == 't' ] ;then
for i in $servers; do
sshpass -f pass_file ssh -q -t $USER@$i "hostname; id $userName"
done
fi
|
Upewnij się, że PasswordAuthentication ma ustawioną wartość logiczną na tak w pliku /etc/ssh/sshd_config na zdalnych serwerach
Ustaw skrypt jako wykonywalny
1
| chmod +x ansible-sudo.sh
|
- Wykonaj skrypt
1
| ./ansible-sudo.sh
|
Podaj nazwę użytkownika: ansible
Sprawdź wynik. Użytkownik ansible powinien zostać dodany do grupy admins.
Comments