תפקידים בר-דרך - דרך אולטימטיבית להתיר את חוברות הפליי



בבלוג Ansible Roles זה מדברים על אופן השימוש בתפקידים להפיכת ספרי הפעלה מורכבים לקריאים ולשימוש חוזר עם התחלה מוחלטת של הקמת ערימת MEAN.

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

נושאים מכוסים:





אם ברצונך לשלוט ב- DevOps, ' כמובן שתהיה אפשרות ללכת שלך.

מה זה מפתח בלוקצ'יין

מבוא לתפקידים אפשריים

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



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

שימוש חוזר בתפקידים ניתנים לבעיה

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

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



נניח שעליך לכתוב חוברת השמעה להגדרת מחסנית LAMP. עליכם ליצור 4 תפקידים, כל אחד מהם ליצירת לינוקס, אפאצ'י, MongoDB ו- PHP. בעתיד, אם אתה רוצה חוברת השמעה נוספת להגדרת מחסנית LAMP כמו גם WordPress, האם תיצור שוב תפקידים חדשים עבור LAMP stack ו- WordPress? לא! אתה יכול פשוט להשתמש מחדש בתפקידים הישנים (המשמשים ל- LAMP stack) ובנוסף ליצור תפקיד חדש עבור WordPress.

מבנה מדריך תפקידים

שימוש בתפקידי Ansible, מצפה שקבצים יהיו במבנה קבצים מסוים. החלק המבלבל ביותר בשימוש בתפקידים הוא הבנת היררכיית הקבצים. Ansible מספק תכונה בשם Ansible Galaxy שעוזרת לך לשחק עם תפקידים. אנחנו כבר יודעים היכן ה- Ansible שלנו נמצא באובונטו (/ etc / ansible). האם ראית אי פעם ספרייה בשם תפקידים תחת / etc / ansible? ספריה זו קיימת בדיוק מסיבה זו. אתה יוצר תפקידים שונים בספריה זו.

הספריה תיראה כך:

עץ - תפקידים אפשריים - אדוריקה

אתה יכול ליצור תפקיד באמצעות גלקסיה נאותה פקודת init בתוך / etc / ansible / תפקידים.

$סודוinit-galaxy init

תראה שגם ספריות תפקידים אחרות היו נוצרות.

ספריות אלה הן משימות, מטפלים, ברירות מחדל, vars, קבצים, תבניות, מטא ו- README.MDקוֹבֶץ.

משימות - מכיל את הרשימה הראשית של המשימות שיש לבצע על ידי התפקיד. זהמכילאת הקובץ main.yml לתפקיד מסוים זה.

הדרכה באתר ruby ​​on rails

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

ברירות מחדל - מכיל את משתני ברירת המחדל שעתידים לשמש תפקיד זה.

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

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

מטא - מגדיר מטא נתונים לתפקיד זה. בעיקרון, הוא מכיל קבצים הקובעים תלות בתפקידים.

כֹּל מְשִׁימָה הספריה חייבת להיות מורכבת מ- main.yml קובץ שבו נכתב הקוד בפועל עבור אותו תפקיד מסוים.

בואו עכשיו להבין את העבודה או התפקידים עם הדגמה של התקנת MEAN Stack.

הדגמה: התקנת MEAN Stack באמצעות תפקידים Ansible

אדגים כיצד להתקין את MEAN Stack באמצעות תפקידי Ansible על ידי ביצוע ספר חוברת יחיד אחד בלבד. יהיו לנו שלושה תפקידים: 1) התקנת תנאים מוקדמים, 2) התקנת MongoDB ו- 3) התקנת NodeJS. אני מניח שכבר התקין את Ansible ויצר חיבור שרת-לקוח באובונטו . בואו נתחיל לשחק עם תפקידי Ansible.

לג'אווה יש מערכת יחסים

שלב 1 - נווט לספריית / etc / ansible / role וצור את התפקידים לתנאים מוקדמים, MongoDB ו- NodeJS.

$ cd / etc / ansible / תפקידים $ sudo ansible-galaxy init תנאים מוקדמים $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs

כעת אתה אמור לראות שלושה תפקידים בספריית 'התפקידים' שלך.

שלב 2 - כתוב main.yml לדרישות מקדימות להתקנת Git.

$ cd תנאים מוקדמים / משימות / main.yml --- - שם: התקן git apt: שם: git מצב: הנוכחי update_cache: כן

שלב 3 - כתוב main.yml לתפקיד MongoDB

$ cd /mongodb/tasks/main.yml --- - שם: MongoDB - ייבא מפתח ציבורי apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - שם: MongoDB - הוסף מאגר apt_repository: שם קובץ: '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu trusty / mongodb-org / 3.2 multiverse' state: present_cache הנוכחי : כן - שם: MongoDB - התקן את MongoDB apt: שם: mongodb-org מצב: הנוכחי update_cache: כן - שם: התחל מעטפת מונגוד: 'מונגוד &'

שלב 4 - כתוב main.yml עבורnodejsתַפְקִיד

$ cd nodejs / משימות / main.yml --- - שם: Node.js - קבל סקריפט get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- שם: Node.js - הגדר הרשאת ביצוע לקובץ סקריפט: נתיב:' {{var_node}} / nodejs.sh 'מצב:' u + x '- שם: Node.js - בצע מעטפת סקריפט התקנה:' {{var_node}} / nodejs.sh '- שם: Node.js - הסר קובץ סקריפט התקנה: נתיב:' {{var_node}} / nodejs.sh 'מצב: נעדר - שם: Node.js - התקן את Node.js apt : name = {{item}} state = הנוכחי update_cache = כן עם_פריטים: - build-essential - nodejs - שם: Node.js - התקן bower and gulp גלובלי npm: name = {{item}} state = הנוכחי גלובלי = כן with_items : - bower - gulp

שלב 5 - כתוב את חוברת המשחק הראשית שלך

$ cd /etc/ansible/mean.yml --- - מארחים: צמתים remote_user: ansible הופכים: כן הופכים_מתודה: sudo vars: #variable דרושים במהלך התקנת הצומת var_node: / tmp תפקידים: - דרישות מוקדמות - mongodb - nodejs

כעת, לאחר שהגדרנו תפקידים להתקנת התנאים המוקדמים, MongoDB ו- NodeJs, בואו נפרוס אותם. בצע את חוברת ההפעלה באמצעות הפקודה הבאה.

$סודוansible-playbook /etc/ansible/mean.yml -K

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

זה מביא אותנו לסוף הבלוג Ansible Roles. אם אתה מוצא מאמר זה מועיל, עיין ב ' שמציעה אדוריקה. הוא מכסה את כל הכלים שהפכו את ענף ה- IT לטוב יותר.

יש לך שאלה עבורנו? אנא פרסם אותו ב ונחזור אליך.