Lehetséges

Az SSH jelszó alapú bejelentkezés használata az sshpass használatával lehetséges

Az SSH jelszó alapú bejelentkezés használata az sshpass használatával lehetséges
Ebben a cikkben megmutatom, hogyan lehet futtatni az Ansible playbookokat SSH jelszó alapú bejelentkezéssel sshpass használatával.

Előfeltételek

Ha szeretné kipróbálni a cikkben tárgyalt példákat,

1) A számítógépére telepítve kell lennie az Ansible programnak.
2) Rendelkeznie kell legalább egy Ubuntu / Debian gazdagéppel, amelyhez csatlakozhat az Ansible-től.

A LinuxHint-en számos cikk foglalkozik az Ansible telepítésével. Ezeket ellenőrizheti, ha szükséges a szükséges programok telepítéséhez a rendszerére.

Szüksége is lesz sshpass telepítve van a számítógépére, ahol telepítenie kell az Ansible alkalmazást. Megmutatom, hogyan kell telepíteni sshpass ebben a cikkben az Ubuntu / Debian és a CentOS / RHEL. Ne aggódjon, ha még nem telepítette ezeket a programokat a rendszerére.

Az sshpass telepítése az Ubuntu / Debian rendszerre

A program sshpass elérhető az Ubuntu / Debian hivatalos csomagtárában. Könnyedén telepítheti ezt a programot a számítógépére.

Először frissítse az APT csomagtárház gyorsítótárát a következő paranccsal:

$ sudo apt frissítés

Most telepítse sshpass a következő paranccsal:

$ sudo apt install sshpass -y

Az sshpass-t most telepíteni kell.

Az sshpass telepítése a CentOS 8 / RHEL 8 eszközre

sshpass elérhető a CentOS 8 / RHEL 8 EPEL-tárában. Az sshpass telepítéséhez engedélyezni kell az EPEL adattárat.

Először frissítse a DNF csomagtárház gyorsítótárát a következő paranccsal:

$ sudo dnf makecache

Ezután telepítse az EPEL repository csomagot a következő paranccsal:

$ sudo dnf install epel-release -y

Az EPEL adattár csomagot most telepíteni kell, és engedélyezni kell az EPEL adattárat.

Ismét frissítse a DNF csomagtárház gyorsítótárát az alábbiak szerint:

$ sudo dnf makecache

Telepítés sshpass a következő paranccsal:

$ sudo dnf install sshpass -y

sshpass telepíteni kell.

Ansible Project Directory beállítása

Mielőtt továbblépnénk, jó ötlet lenne létrehozni egy projekt könyvtárstruktúrát, csak azért, hogy a dolgokat kissé rendben tartsuk.

Projekt könyvtár létrehozása sshpass / és az összes szükséges alkönyvtárat (az aktuális munkakönyvtárban), futtassa a következő parancsot:

$ mkdir -pv sshpass / fájlok, lejátszási könyvek

Keresse meg a projekt könyvtárat az alábbiak szerint:

$ cd sshpass /

Hozzon létre egy otthont ad leltárállomány, az alábbiak szerint:

$ nano házigazdák

Adja hozzá a gazdagép IP- vagy DNS-nevét a készletfájlba.

Miután befejezte ezt a lépést, mentse el a fájlt a megnyomásával + x, utána Y és .

Hozzon létre egy Ansible konfigurációs fájlt a projektkönyvtárban, az alábbiak szerint:

$ nano ansible.vö

Írja be a következő sorokat a lehetséges.vö fájl.

Miután befejezte ezt a lépést, mentse el a fájlt a megnyomásával + x, utána Y és .

Jelszóalapú SSH bejelentkezés tesztelése az Ansible alkalmazásban

Ezután próbálja meg pingelni a gazdagépeket a készletfájlban, az alábbiak szerint:

$ ansible all -u shovon -m ping

JEGYZET: Itt a -u Az opcióval megadható, hogy melyik felhasználónak kell bejelentkeznie. Ebben az esetben a felhasználó lesz shovon. Ezt a felhasználónevet cserélje le mostantól a saját nevére, az egész bemutató alatt.

Amint láthatja, nem vagyok képes bejelentkezni a gazdagépre és futtatni semmilyen parancsot.

Az Ansible kényszerítésére a felhasználói jelszó kérésére futtassa a lehetséges parancsot a -ask-pass érv az alábbiak szerint:

$ ansible all -u shovon --ask-pass -m ping

Amint láthatja, az Ansible kéri a felhasználó SSH jelszavát. Írja be SSH jelszavát (felhasználói bejelentkezési jelszavát), majd nyomja meg az gombot .

A gazdagépet az alábbiak szerint lehet pingelni:

Lehetséges jelszó alapú SSH bejelentkezés a Playbooks számára

Jelszó alapú SSH bejelentkezést használhat az Ansible playbookok futtatásakor. Nézzünk meg egy példát.

Először hozzon létre egy új játékkönyvet askpass1.yaml ban,-ben játékkönyvek / könyvtárat, az alábbiak szerint:

$ nano playbooks / askpass1.yaml

Írja be a következő sorokat a askpass1.yaml playbook fájl:

- házigazdák: mind
felhasználó: shovon
feladatok:
- név: ping az összes gazdagépet
ping:
- név: Üzenet nyomtatása
hibakeresés:
msg: 'Minden beállítva'

Miután befejezte ezt a lépést, mentse el a fájlt a megnyomásával + x, utána Y és .

Futtassa a askpass1.yaml játékkönyv, az alábbiak szerint:

$ ansible-playbook playbooks / askpass1.yaml

Amint láthatja, nem tudok csatlakozni a gazdagéphez. Láthatja, hogy ez azért van, mert nem én futottam a ansible-playbook parancsot a -ask-pass választási lehetőség.

Futtassa a askpass1.yaml játékkönyv a -ask-pass opciót, az alábbiak szerint:

$ ansible-playbook -ask-pass playbooks / askpass1.yaml

Mint láthatja, az Ansible SSH jelszót kér. Írja be SSH jelszavát és nyomja meg a gombot .

A játékkönyv askpass1.yaml most sikeresen kell futnia.

Lehetséges sudo jelszó Bejelentkezés Playbooks számára

A -ask-pass opció csak az SSH bejelentkezési jelszót kéri. Mi van, ha be szeretné írni a sudo jelszót is? A következő lépésekben megtudhatja, hogyan kell ezt megtenni.

Először hozzon létre egy új játékkönyvet askpass2.yaml ban,-ben játékkönyvek / könyvtárat, az alábbiak szerint:

$ nano playbooks / askpass2.yaml

Írja be a következő sorokat a askpass2.yaml fájl.

- házigazdák: mind
felhasználó: shovon
vált: Igaz
feladatok:
- név: Telepítse az apache2 csomagot
apt:
név: apache2
állapot: legújabb
- név: Győződjön meg arról, hogy az apache2 szolgáltatás fut
szolgáltatás:
név: apache2
állapot: kezdődött
engedélyezve: Igaz
- név: Index másolása.html fájl a szerverre
másolat:
src:… / fájlok / index.html
cél: / var / www / html / index.html
mód: 0644
tulajdonos: www-data
csoport: www-adatok

Itt használtam a parancsot vált: Igaz mondani Ansible-nek, hogy futtassa ezt a játékkönyvet sudo jogosultságokkal. Miután befejezte ezt a lépést, mentse a askpass2.yaml fájl megnyomásával + x, utána Y és .

Hozzon létre egy index.html fájl a fájlok / könyvtárat, az alábbiak szerint:

$ nano fájlok / index.html

Írja be a következő HTML kódokat a index.html fájl:




Honlap


Helló Világ


Működik



Miután befejezte ezt a lépést, mentse el a fájlt a megnyomásával + x utána Y és .

Futtathatja a askpass2.yaml játékkönyv a -ask-pass opciót, az alábbiak szerint:

$ ansible-playbook - ask-pass playbooks / askpass2.yaml

Ezután meg kell kérni az SSH jelszót, mint korábban.

De előfordulhat, hogy a játékkönyv még akkor sem fut, ha megadja az SSH jelszót. Ennek az az oka, hogy meg kell mondania az Ansible-nak, hogy kéri a sudo jelszót, valamint az SSH jelszót.

Megadhatja az Ansible-nak, hogy a sudo jelszót kérje a -kér-válj-passz opciót a játékkönyv futtatása közben, az alábbiak szerint:

$ ansible-playbook --ask-pass --ask-lett-pass játékkönyvek / askpass2.yaml

Most az Ansible kéri az SSH jelszó megadását.

Ezután az Ansible kéri a sudo jelszót. Ha a sudo jelszó megegyezik az SSH jelszóval (ami valószínűleg), akkor hagyja üresen, és nyomja meg az gombot .

Mint látható, a játékkönyv sikeresen futott.

Az automatikus jelszóalapú SSH bejelentkezés és sudo jelszó bejelentkezés beállítása

Érdemes jelszó alapú SSH és sudo bejelentkezést használni, de nem akarja beírni az SSH jelszót és a sudo jelszót minden alkalommal, amikor egy játékkönyvet futtat. Ha ez a helyzet, akkor ez a szakasz az Ön számára szól.

A jelszóalapú SSH bejelentkezéshez és a sudo bejelentkezéshez anélkül, hogy a jelszavakat kéri, csak annyit kell tennie, hogy hozzáadja a ansible_ssh_pass és ansible_become_pass gazdagépváltozók vagy csoportváltozók a készletfájlban.

Először nyissa meg a otthont ad leltárállomány, az alábbiak szerint:

$ nano házigazdák

Ha több gazdagép van a készletfájlban, és mindegyik gazdagépnek különböző jelszavai vannak, akkor adja hozzá a ansible_ssh_pass és ansible_become_pass változók host változóként (minden gazdagép után) az alábbiak szerint.

Mindenképpen cserélje ki titok az SSH és sudo jelszóval.

Ha az összes vagy néhány gazdagépnek ugyanaz a jelszava, akkor hozzáadhatja a ansible_ssh_pass és ansible_become_pass változók csoportváltozóként, az alábbi példában látható módon.

Itt csak egy gazdagépem van, ezért hozzáadtam a ansible_ssh_pass és ansible_become_pass változók a minden csoport (az összes állomás a készletfájlban). De felveheti ezeket a változókat más meghatározott csoportokra is.

Miután befejezte a ansible_ssh_pass és ansible_become_pass változók a otthont ad leltárfájl, mentse a otthont ad leltárfájl megnyomásával + x, utána Y és .

Most futtathatja a askpass2.yaml játékkönyv, az alábbiak szerint:

$ ansible-playbook playbooks / askpass2.yaml

Amint láthatja, a playbook sikeresen futott, bár nem kérte az SSH vagy a sudo jelszót.

Szóval, így használod sshpass jelszó alapú SSH és sudo bejelentkezéshez az Ansible alkalmazásban. Köszönjük, hogy elolvasta ezt a cikket!

Ingyenes és nyílt forráskódú játékmotorok a Linux játékok fejlesztéséhez
Ez a cikk felsorolja azokat az ingyenes és nyílt forráskódú játékmotorokat, amelyek felhasználhatók 2D és 3D játékok fejlesztésére Linuxon. Számos ily...
Shadow of the Tomb Raider for Linux Tutorial
A Shadow of the Tomb Raider a Tomb Raider sorozat tizenkettedik kiegészítője - az Eidos Montreal által létrehozott akció-kaland játék franchise. A ját...
Az FPS növelése Linux alatt?
Az FPS jelentése Képkocka másodpercenként. Az FPS feladata a videolejátszások vagy játékteljesítmények képkockasebességének mérése. Egyszerű szavakkal...