Vissza a bloghoz

Szerverbeállítás automatizálása Ansible és Ubuntu 20.04 használatával

Szerverbeállítás automatizálása Ansible és Ubuntu 20.04 használatával

Bevezetés

Napjainkban a szervereket nagyon gyakran kell létrehozni és megsemmisíteni. Ez azért van, mert időnként a szerverek nagy végrehajtási terhelést kapnak, míg máskor a terhelés csökken, ezáltal pazarolva a rendszererőforrásokat. Gyakori példa erre az eCommerce weboldalak esete az ünnepi időszakokban, amelyek nagy forgalmat vonzanak. Ha az alkalmazás jellege megköveteli a skálázhatóságot, mindig szükség van konfigurációkezelő eszközökre, hogy a szerverek létrehozásának teljes folyamata egyszerűbbé váljon. Ansible egy nagyszerű konfigurációkezelő eszköz, amely szabványos eljárások használatával automatizálja a szerverek létrehozását, csökkentve az emberi hibákat.

Az Ansible nem igényel speciális szoftver telepítését a szerverek csomópontjaira. Rendelkezik minden olyan eszközzel, amely a szkriptek írásához, összeállításához és automatizálásának megkönnyítéséhez szükséges. Ez az útmutató részletesen bemutatja, hogyan használható az Ansible a Hogyan állítsa be Ubuntu szerverét című útmutatónkban szereplő lépések automatizálására..

Előfeltételek

Az útmutató elvégzéséhez a következő rendszert fogjuk használni: Ubuntu 20.04. Ezenkívül a következőkre is szüksége lesz:

  • Egy Ansible vezérlőcsomópont: Egy Ubuntu gép, amely a legújabb Ubuntu verziót futtatja. Az Ansible master binárisának telepítve kell lennie és futnia kell ezen a gépen. Ennek a gépnek képesnek kell lennie kapcsolódni az Ansible csomópontokhoz. Ezekhez a kapcsolatokhoz SSH-kulcsokat kell használnia. A csatlakozási problémák elkerülése érdekében győződjön meg arról, hogy az Ansible vezérlőcsomópontján engedélyezve van a tűzfal. Ha segítségre van szüksége, tekintse meg a Az Ansible telepítése és konfigurálása Ubuntu 20.04-en blogunkat.

  • Ansible gazdagépek: Egy vagy több gazdagépre van szükség a kapcsolódáshoz. A gazdagépek lényegében az Ansible felügyelt csomópontjai. Ezeknek Ubuntu szervereknek kell lenniük.

Az Ansible Playbook funkciói

Manuálisan is beállíthatja az összes alább említett lépést. Mi azonban automatizáljuk ezt a végrehajtást. Amikor futtatja ezt a playbookot, az alábbi műveleteket fogja végrehajtani a gépén:

  1. Telepíti a(z) aptitude csomagkezelőt, amelyet az Ansible előnyben részesít.

  2. Létrehoz egy adminisztratív csoportot wheel jelszó nélküli sudo jogosultságokkal.

  3. Létrehoz egy új sudo felhasználót.

  4. Lemásol egy helyi SSH-kulcsot a(z) authorized_keys fájlba. Ezt egy távoli gazdagépen lévő új adminisztratív felhasználóhoz fogja használni.

  5. Letiltja a jelszóalapú hitelesítést a root felhasználó számára.

  6. Telepíteni fogja a szükséges csomagokat.

  7. Beállítja az UFW tűzfalat úgy, hogy csak az SSH-kapcsolatokat engedélyezze. Minden más kapcsolat blokkolva lesz.

Amint a Playbook végrehajtása befejeződik, egy új felhasználó válik elérhetővé. Ezzel a felhasználóval tud majd bejelentkezni a rendszerbe.

Az Ansible Playbook használata

A szerver beállításához szüksége lesz a kezdeti szerverbeállító playbookra és annak függőségeire. Ha először használja, akkor klónoznia kell a tárhelyet az alábbi link segítségével:

Ha a tároló már létezik a rendszerében, futtassa az alábbi parancsot a legújabb frissítések beszerzéséhez:

A következő fájlszerkezetet fogja kapni a gépén:

Alább látható a fájlok leírása:

  • vars/default.yml: Ez a fájl tartalmazza az Ansible csomópont konfigurálásához szükséges változókat.

  • playbook.yml: Ez a fájl tartalmazza a szerveren végrehajtandó feladatokat.

A vars/default.yml fájl valahogy így néz ki:

Alább látható ezen változók leírása. Ha módosítani szeretné őket, kicserélheti az értékeiket a sajátjaira:

  1. create_user: Ez a létrehozott felhasználó. Ez a felhasználó sudo jogosultságokkal rendelkezik.

  2. copy_local_key: Ez tartalmazza a helyi SSH nyilvános kulcs elérési útját. Ez átmásolásra kerül a távoli szerverre mint authorized_key.

  3. sys_packages: Ha egy vagy több csomagot szeretne telepíteni a szerverére, adja meg őket itt tömbként.

Miután szerkesztette ezt a fájlt, mentse el a tartalmát. Ezután a nano-ban nyomja meg a CTRL+X , Y. Majd, ENTER gombot a fájl tartalmának mentéséhez.

Most már készen áll arra, hogy futtassa ezt a playbookot több szerveren. Alapértelmezés szerint a Playbookok készen állnak a végrehajtásra az inventory-ban található szervereken. Ha a Playbookot bizonyos meghatározott szervereken szeretné használni, használhatja a -l kapcsolót. Most tegyük fel, hogy a távoli szervernek több felhasználója van, használhatja a -u kapcsolót annak megadására, hogy melyik felhasználóhoz csatlakozzon.

Ha a szerver neve my_server és a felhasználónév my_user, akkor futtassa az alábbi parancsot az Ansible csomópontokon való végrehajtáshoz:

A kimenet valami hasonló lesz:

Amint ez a végrehajtás befejeződött, az alábbi paranccsal csatlakozhat:

Ne feledje, hogy my_user volt az a név, amelyet a vars/default.yml fájlban használtunk. A fenti parancsban a szerver IP-címét is meg kell változtatnia a saját szervere IP-címére. Ha megadta a copy_local_key változó egy egyéni SSH-kulcsra mutasson, adja meg a helyet a(z) -i kapcsolóval:

Ezután jelentkezzen be a szerverére az UFW tűzfal szabályainak ellenőrzéséhez:

Az alábbi kimenetet fogja kapni:

A fenti kimenet megerősíti, hogy az UFW tűzfal sikeresen véglegesítésre került. Ez volt a playbookunk utolsó lépése. Ha ez helyesen hajtódott végre, az azt jelenti, hogy a futtatás sikeres volt.

Az Ansible Playbook tartalma

Az ebben az útmutatóban használt Playbook fájlok itt találhatók: ansible-playbooks/setup_ubuntu1804 at master · do-community/ansible-playbooks · GitHub. Ha szeretné megtekinteni az egyes fájlok tartalmát használat vagy szerkesztés céljából, kattintson a Raw gombra az egyes szkriptek tetején.

A gyors hivatkozás érdekében megosztjuk a Playbook teljes tartalmát a kapcsolódó fájlokkal együtt:

  • vars/default.yml

Ez a fájl tartalmazza azokat az értékeket, amelyeket a playbook feladatok fognak használni. Ezek közé tartoznak például a felhasználó neve, a jogosultságok, az SSH-kulcsok, a kezdeti beállítás részeként telepítendő csomagok és így tovább:

  • playbook.yml

A playbook.yml fájl tartalmazza a végrehajtandó feladatokat. Először a fájl felsorolja az összes célba veendő kiszolgálót. Ha az összes szervert meg szeretné adni, állítsa be ennek a kulcsnak az értékét a következőre: all. Ezután, ha a sudo jogosultságokkal végrehajtandó feladatokat szeretné megadni, állítsa be a következő változó értékét: become: true. Végül ennek a fájlnak tartalmaznia kell a fenti vars/default.yml fájl tartalmát. Ezeket a következőkben illesztjük be, hogy betöltsük a beállításokat ebből a fájlból:

Következtetés

Az automatizálás kulcsfontosságú az IT-ban, biztosítva, hogy minden folyamat hibamentes legyen, és kövesse a szabványos gyakorlatokat és eljárásokat. Mivel a legtöbb szoftvert ma az interneten keresztül szolgáltatják, és elosztott jellegűek, mindennapos feladattá vált új szerverek létrehozása, például különböző környezetekhez, mint például a staging vagy a produkciós, vagy akár a demo környezetek.

Ebben az útmutatóban bemutattuk, hogyan érhető el a szerverek automatizálása az Ansible segítségével, amely egy hatékony és könnyen használható eszköz, és rengeteg időt takaríthat meg Önnek.

Kellemes számítástechnikát!

author

Shreyas Patil

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.