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
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
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 pingJEGYZET: 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: mindfelhaszná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
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: mindfelhaszná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
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:
Helló Világ
Működik
Miután befejezte ezt a lépést, mentse el a fájlt a megnyomásával
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
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!