אוטומציה בעלת יעילות גבוהה עם Ansible AWX

האם אתה מתלבט בהפעלת פלייבוקים של Ansible ופקודות Ansible ידנית בכל פעם על ידי בקר ה- Ansible שלך? למה לא להשתמש בממשק אינטרנטי ולשפר את חייך עם AWX של Ansible?

AWX הוא אפליקציה רשת קוד פתוחה המתומנת על ידי Red Hat שמספקת ממשק משתמש ו- API לביצוע כל משימות Ansible. ובמדריך זה, תלמד להתקין את AWX של Ansible על תיבת Ubuntu ולנהל אינוונטורים באמצעות AWX של Ansible.

העלה את המשחק שלך עם אוטומציה יעילה במיוחד באמצעות AWX של Ansible היום!

דרישות מוקדמות

מדריך זה כולל הוראות שלב אחרי שלב. אם ברצונך להמשיך, וודא שיש לך את המרכיבים הבאים:

  • מארח בקר של Ansible – מדריך זה משתמש ב- Ansible v2.11.7 על מכונת גרסה Ubuntu 20.04.4 LTS.
  • Docker – מדריך זה משתמש ב- Docker v19.03.11 על מכונת גרסה Ubuntu 20.04.4 LTS.
  • Python v3.6 או מאוחר יותר מותקן על מכונת השרת שלך המופעלת על ידי Ansible – המדריך הזה משתמש ב-Python v3.8.10.
  • A GitHub account with one private and one public repository created in GitHub that you will use to store Ansible Playbook.

התקנת תלויות והגדרת AWX של Ansible

AWX של Ansible היה היסוד ליצירת מגדל Ansible. AWX של Ansible הופך את השימוש ב-Ansible לנוח יותר עבור צוותי ה-IT לשימוש בו לצורך בדיקה; במעבדה, פיתוח, או אחר סביבת POC.

מאחר ו-AWS של Ansible אינו מותקן בשביל ברירת המחדל במערכת ה-Linux שלך, תצטרך תחילה להתקין את AWS של Ansible כדי שתוכל להריץ אותו כמולטי-קונטיינר באמצעות Playbook של Ansible.

1. הרץ כל פקודה למטה כדי לעדכן את חבילות המערכת שלך ולהתקין את התוסף של docker-compose.

# עדכן חבילות
sudo apt-get update
# התקן את Docker Compose
sudo apt-get install docker-compose-plugin
Updating System Packages and Installing docker-compose

2. לאחר מכן, הרץ את הפקודה הבאה כדי לוודא את הגרסה של docker compose המותקנת במכונת השרת שלך.

docker compose version

הפלט למטה מציין כי הגרסה האחרונה של Docker Compose v2.5.0 מותקנת, מאשרת כי Docker Compose מותקן נכון.

Verifying Docker Compose Version

3. הרץ כל פקודה למטה כדי להתקין חבילות כדי לעבוד עם AWX של Ansible כתנאי מראש.

# מתקין את NodeJS מכיוון שיש ל-AWS תלות ב-NodeJS.
sudo apt install nodejs npm
# מתקין את Python3, שיריץ את Ansible Playbook מאוחר יותר.
sudo apt install python3-pip git pwgen unzip
# מתקין את requests כדי לאפשר לך לשלוח בקשות HTTP/1.1 בקלות.
sudo pip3 install requests==2.22.0 docker-compose==1.29.2
Installing npm Software
Installing Python
Installing Requests

4. כעת, הפעל את הפקודות הבאות כדי להוריד (wget) את ארכיון החבילה של AWX ממאגר ה-Git הציבורי, ואז פתח את החבילה.

# הורד את ארכיון החבילה של AWX
wget https://github.com/ansible/awx/archive/17.1.0.zip
# פתח את ארכיון החבילה של AWX
unzip 17.1.0.zip
Downloading the AWS Package from the Git Repository

5. הפעל את הפקודות הבאות כדי לשנות (cd) לתיקיית ההתקנה של AWX (awx-17.1.0/installer/) וליצור את הסיסמה האקראית (pwgen).

התיקייה של התקנת AWX שלך (awx-17.1.0/installer/) עשויה להשתנות תלוי בגרסת Ansible AWX שמותקנת על המכשיר שלך.

cd awx-17.1.0/installer/
pwgen -N 1 -s 30

שים לב לסיסמה שנוצרה שתשמש כמפתח סודי בממשק ה- AWX.

Generating a Random Password

6. לבסוף, בעורך הטקסט שלך, פתח את קובץ ה-inventory בתוך ספריית ההתקנה של AWX (awx-17.1.0/installer/). קובץ ה-inventory מכיל את ההגדרות של AWX, שישמשו בעת התחברות לממשק ה- AWX UI.

בקובץ ה- inventory, שנה את ערכו של admin_password ל-password ושל secret_key עם הסיסמה האקראית שיצרת בשלב חמישי.

Updating Credentials of Ansible AWX in the Inventory File

התקנת והפעלת Ansible AWX עם פלייבוק של Ansible

הגדרת את Ansible AWX באופן תקין, ועכשיו הגיע הזמן להתקין אותו באמצעות פלייבוק של Ansible (install.yml). הפלייבוק של Ansible, install.yml, מגיע עם חבילת Ansible AWX שהחלצת. פלייבוק זה מכיל משימות לביצוע פקודות לבניית תמונת Docker והפעלת מספר תקיות.

1. הפעל את הפקודה ansible-playbook למטה כדי להפעיל את הפלייבוק של Ansible, install.yml.

ansible-playbook -i inventory install.yml 

למטה, אתה יכול לראות שחלק מהמשימות שינו את מצבן, מציינות שהמארח של AWX לא היה במצב המתאים ושונה כדי להריץ את הפקודה.

להפך, משימות אחרות מציגות סטטוס ok, המציינות שהן אינן דורשות שינויים.

Executing the Ansible Playbook (install.yml)

2. לאחר מכן, הרץ את הפקודה של docker למטה כדי לרשום את כל התקיות של Docker הזמינות.

docker ps

הפלט למטה מציג את התקיות הרצות (awx_tasks, awx_redis, awx_web, ו awx_postgres), מאשר את התקנת ה-AWX באופן תקין.

Verifying all Docker Containers

3. לבסוף, פתח את הדפדפן האהוב עליך ונווט ל- Ansible AWX (https://AWX-HOST-IP:80). הקפידו להחליף את AWX-HOST-IP בכתובת ה-IP של המארח שלך ב- Ansible. אם הכל הולך לך בהצלחה, תראה את עמוד ההתחברות של Ansible AWX בדפדפן שלך, כפי שמוצג למטה.

ספק את שם המשתמש (admin) והסיסמה (password), ולחץ על הכפתור המתאים להתחברות כדי לגשת ללוח המחוונים של Ansible AWX. אלו הפרטים שהגדרת בשלב האחרון של ״התקנת תלות והגדרת Ansible AWX״ במדור.

AWX מתקין באופן אוטומטי תעודת אימות עצמית לתקשורת HTTPS שעשויה לדרוש אישור בדפדפן שלך.

Accessing the Ansible AWX Dashboard UI

לאחר התחברות, הדפדפן שלך מופנה ללוח המחוונים של AWX, כפי שמוצג למטה.

Viewing the AWX Dashboard

יצירה וניהול מלאי

עכשיו שיש לך גישה ללוח המחוונים של Ansible AWX, ניתן לעבוד על אוטומציה של משימות. במדריך זה, תוכל לנהל רבים מרכיבי Ansible בתוך לוח המחוונים של Ansible AWX. אך תחילה, עליך ליצור ולנהל מלאי.

1. בלוח המחוונים של AWX, לחץ על מלאי כדי לפתוח את רשימת המלאי המאוחסנת ב- Ansible AWX. כברירת מחדל, יש מלאי דמו, כפי שמוצג למטה.

התעלם מהמלאי הדמו ולחץ על כפתור הרשימה הנפתחת כדי ליצור מלאי חדש.

Creating a New Inventory

2. לאחר מכן, ציין את הפרמטרים הבאים בדף "יצירת מלאי חדש" כדי להגדיר את המלאי הראשון שלך ב- Ansible AWX Dashboard:

  • שםלמידת ATA (ניתן לספק את השם כפי שתרצה).
  • תיאור – תיאור המלאי, שהוא אופציונלי אך עוזר לזהות מלאי בין הרבה אחרים.
  • ארגון – בחר באפשרות ברירת המחדל. AWX יוצר ארגון ברירת מחדל, אך תוכל גם ליצור את שלך.

לאחר שהזנת את כל הפרטים הנדרשים לעיל, לחץ על לחצן השמירה כפי שמוצג למטה.

Creating an Inventory in the Ansible AWX Dashboard

3. לבסוף, לחץ על לשונית המלאי (לוח הצד השמאלי) כדי לוודא שהמלאי שנוצר תחת השם ATA Learning קיים, כפי שמוצג למטה.

Verifying the Inventory in the Ansible AWX Dashboard

יצירת והפעלת עבודות Ansible

הגדרת בהצלחה את המלאי שלך, אך כרגע זה אינו שימושי אלא אם תקרא לו עם עבודה. עבודה היא מופע של AWX המשיק להפעלה פקודת Ansible נגד מלאי של מארח. וכמובן, לפני שתוכל לקרוא לעבודה, עליך תחילה ליצור אחת:

כדי ליצור ולהפעיל עבודת Ansible:

1. צור קובץ YML במאגר ה-GitHub שלך והעתק/הדבק את הפלייבוק למטה. תוכל לתת לקובץ YML שם לפי בחירתך, אך במדריך זה אנו משתמשים בשם ata.yml לפלייבוק.ata.yml.

---
  - name: "Playing with Ansible."
# הפלייבוק של Ansible ירוץ על Localhost שבו מותקן AWX
    hosts: localhost
    connection: local
    tasks:
# המשימה למטה תבצע את רשימת הספריות והקבצים הנוכחים
    - name: "just execute a ls -lrt command"
      shell: "ls -lrt"
      register: "output"
# הפלט של המשימה למעלה יוצג על המסך
    - debug: var=output.stdout_lines
Creating a YML File in the Git Repository

2. עבור ללוח המחוונים שלך ב- Ansible AWX ולחץ על פרויקטים בלוח הצד השמאלי כדי לגשת לרשימת הפרויקטים הזמינים. יש לך צורך בפרויקט לפני שתוכל ליצור עבודה.

התעלם מפרויקט הדמו, ולחץ על לחצן ההוספה כדי ליצור פרויקט חדש.

Initializing Adding a New Project

3. ספק את פרטי הפרויקט החדש עם הפרטים הבאים ולחץ על שמירה כדי לשמור את הפרויקט החדש:

  • שם – שם הפרוייקט יכול להיות כל שם שתבחר, אך במדריך זה הוא מגדיר את שם הפרוייקט כ- myproject.
  • תיאור – כמו עם המלאי שלך, הוספת תיאור אינה חובה אך עוזרת לזהות פרוייקטים האחד מהשני.
  • ארגון – דומה למלאי שלך, פשוט בחר ברירת מחדל עבור הארגון.
  • סוג אישור שליטה במקור – בחר ב- Git כ- SCM שלך.
  • כתובת URL של שליטת המקור – ציין את כתובת ה- GitHub של קוד המקור שלך.
Creating a New Project

4. לאחר יצירת פרוייקט, לחץ על תבניות בסרגל הצד השמאלי כדי לגשת לכל התבניות הזמינות, כפי שמוצג למטה.

בדף התבניות, לחץ על כפתור הנפתח הוסף ובחר באפשרות הוספת תבנית עבודה כדי ליצור תבנית.

Creating a New Job Template

5. כעת, ציין את הפרטים למטה כפי שמצויין ולחץ על שמור בתחתית כדי לשמור את תבנית העבודה החדשה:

  • שם – הגדר את שם תבנית העבודה כפי שתרצה, אך במדריך זה הוא מגדיר את שם תבנית העבודה כ- myjob.
  • סוג העבודה – הגדר את הפעולה שהעבודה תבצע (ריצה).
  • פרוייקט – בחר בפרוייקט שיצרת בשלב שלוש (myproject).
  • מלאי – בחר במלאי שיצרת בשלב שני של סעיף "יצירה וניהול מלאיים" (למידת ATA).
  • Playbook – בחר בספריה שיצרת בשלב הראשון של ״יצירת והרצת משימות אנסיבל״ בקטע (ata.yml).
Specifying Job Template Details

6. לבסוף, בדף התבניות, הפעל את המשימה החדשה שנוצרה עם ההוראות הבאות:

  • לחץ על המשימה (myjob) כדי לגשת לדף המידע של המשימה.
  • נווט אל לשונית פרטים, שם תראה את פרטי המשימה.
  • לחץ על הפעלה בתחתית הדף כדי להפעיל את המשימה.
Launching the Newly-created Job

כפי שתוכל לראות למטה, המשימה הופעלה בהצלחה במארח מקומי ורשמה את כל הקבצים בתיקייה שצוינה בספריית השיגור (ata.yml).

Executing the Job Template

סיכום

במדריך זה, השתמשת בכלי האופן הפתוח של Ansible AWX כדי לנהל סקריפטים, אינוונטורים ופלייבוקים של אנסיבל בעזרת לוח בקרה יחיד. נגעת בהרצת משימת אנסיבל, כמו רשימת קבצים בתיקייה מסוימת.

עכשיו שיש לך ידע מעמיק על תוכנת Ansible AWX, האם אתה מוכן להריץ את כל סקריפטי האנסיבל שלך בעתיד באמצעות Ansible AWX? אולי תרצה לאוטומט עבודות על ידי הוספת משימות cron?

Source:
https://adamtheautomator.com/ansible-awx/