Ta strona wygląda najlepiej z włączoną obsługą JavaScript

Jak dodać użytkownika ansible do sudoers na zdalnych serwerach za pomocą skryptu Bash

 ·  ☕ 2 min czytania  ·  🐧 sysadmin
  1. Oto samouczek wideo

Skrypty i pliki konfiguracyjne są dostępne tutaj:

  1. 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 
  1. 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
  1. Wpisz poniższe polecenie:
1
visudo
  1. Zmień %sudo lub %wheel na %admins

  2. Dodaj poniższą linię:

1
%admins  ALL=(ALL) NOPASSWD: ALL

Zapisz i wyjdź

  1. Dodaj grupę admins
1
groupadd admins
  1. Utwórz plik na głównym serwerze, gdzie w przyszłości zainstalujesz ansible
1
vim pass_file

i umieść w nim hasło dla użytkownika, który obecnie może łączyć się z zdalnymi hostami.

  1. Ustaw plik skryptu jako tylko do odczytu dla tego użytkownika
1
chmod 400 pass_file
  1. Utwórz listę serwerów z adresami IP lub nazwami hostów
1
vim servers
  1. 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
  1. Upewnij się, że PasswordAuthentication ma ustawioną wartość logiczną na tak w pliku /etc/ssh/sshd_config na zdalnych serwerach

  2. Ustaw skrypt jako wykonywalny

1
chmod +x ansible-sudo.sh
  1. Wykonaj skrypt
1
./ansible-sudo.sh
  1. Podaj nazwę użytkownika: ansible

  2. Sprawdź wynik. Użytkownik ansible powinien zostać dodany do grupy admins.

Podziel się
Wesprzyj autora

sysadmin
UTWORZONE PRZEZ
sysadmin
QA & Linux Specialist