OnWorks Linux ו-Windows Online WorkStations

לוגו

אירוח מקוון בחינם עבור תחנות עבודה

<הקודם | תוכן | הבא>

10.2.3. מדינות מלח ותכונות אחרות‌


בעוד שביצוע מרחוק הוא אבן בניין חשובה, הוא רק חלק מזערי ממה ש-SaltStack יכול לעשות.

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

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

https://docs.saltstack.com/en/latest/topics/development/conventions/formulas. html

ישנן תכונות רבות נוספות שניתן לשלב:

• ביצוע מתוזמן של פעולות

• הגדרת פעולות בתגובה לאירועים שהופעלו על ידי מיניונים

• איסוף נתונים ממיניונים

• תזמור של רצף פעולות על פני מספר מיניונים

• החלת מצבים על SSH מבלי להתקין את שירות salt-minion

• אספקת מערכות על תשתיות ענן והבאתן לניהול

• ועוד

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

https://docs.saltstack.com/en/latest/

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

כדי לתת לכם טעימה מאיך זה נראה לעבוד עם קבצי מצב, נסקור דוגמה פשוטה: כיצד להפעיל את מאגר APT ולהתקין חבילה שאתה יוצר בסעיף 10.3.3, "יצירת מאגר חבילות עבור APT" [עמוד 269] וסעיף 10.3.2, "יצירת חבילות תצורה" [עמוד 263]. כמו כן, תרשום מפתח SSH בחשבון של root כדי שתוכל להתחבר מרחוק במקרה של בעיות.

כברירת מחדל, קבצי מצב מאוחסנים ב /srv/salt על המאסטר; הם קבצים מובנים של YAML עם א .sls סיומת. בדיוק כמו להפעלת פקודות, החלת מצב מסתמכת על מודולי מצב רבים:

https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html

https://docs.saltstack.com/en/latest/ref/states/all/

/srv/salt/offsec.sls הקובץ יקרא לשלושה מהמודולים האלה:


offsec_repository: pkgrepo.managed:

- שם: deb http://pkgrepo.offsec.com offsec-internal main

- קובץ: /etc/apt/sources.list.d/offsec.list

- key_url: salt://offsec-apt-key.asc

- require_in:

- pkg: offsec-defaults


offsec-defaults: pkg.installed


ssh_key_for_root: ssh_auth.present:

- משתמש: root

- שם: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali

offsec_repository: pkgrepo.managed:

- שם: deb http://pkgrepo.offsec.com offsec-internal main

- קובץ: /etc/apt/sources.list.d/offsec.list

- key_url: salt://offsec-apt-key.asc

- require_in:

- pkg: offsec-defaults


offsec-defaults: pkg.installed


ssh_key_for_root: ssh_auth.present:

- משתמש: root

- שם: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali


אל האני offsec_repository המדינה מסתמכת על pkgrepo מודול המדינה. הדוגמה משתמשת ב- הצליח

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

הודע למלח שניתן להביא את מפתח ה-GPG (משוריין ASCII) הנדרש כדי לאמת את החתימה של המאגר /srv/salt/offsec-apt-key.asc על אמן המלח. ה דורש_ב תכונה מבטיחה שמצב זה מעובד לפני ה- offsec-defaults, מאחר שהאחרון צריך את התצורה הנכונה של המאגר כדי להיות מסוגל להתקין את החבילה.

אל האני offsec-defaults state מתקין את החבילה באותו שם. זה מראה ששם המפתח הוא לעתים קרובות ערך חשוב עבור מדינות, אם כי תמיד ניתן לעקוף אותו באמצעות a שם תכונה (כפי שנעשה עבור המדינה הקודמת). עבור מקרים פשוטים כמו זה, זה גם קריא וגם תמציתי.

המדינה האחרונה (ssh_key_for_root) מוסיף את מפתח ה-SSH שניתן ב- שם מייחס ל /root/.ssh/ authorized_keys (משתמש היעד מוגדר ב- המשתמש תְכוּנָה). שימו לב שקיצרנו כאן את המפתח לקריאות, אבל כדאי לשים את המפתח המלא בתכונת name.

בשלב הבא ניתן להחיל את קובץ המצב הזה על מיניון נתון:


שרת# מלח קאלי-מצב שריטה.להחיל offsec

kali-scratch:

----------

מזהה: offsec_repository פונקציה: pkgrepo.managed

שם: deb http://pkgrepo.offsec.com offsec-internal תוצאה ראשית: נכון

הערה: חבילה מוגדרת 'deb http://pkgrepo.offsec.com offsec-internal

רָאשִׁי'

התחיל: 06:00:15.767794

משך: 4707.35 אלפיות השנייה שינויים:

----------

ריפו:

deb http://pkgrepo.offsec.com offsec-internal main

----------

מזהה: offsec-defaults פונקציה: pkg.installed

תוצאה: נכון

הערה: החבילות הבאות הותקנו/עודכנו: offsec-defaults התחילו: 06:00:21.325184

משך: 19246.041 אלפיות השנייה שינויים:

----------

offsec-defaults:

----------

חָדָשׁ:

1.0

ישן:

----------

מזהה: ssh_key_for_root פונקציה: ssh_auth.present

שרת# מלח קאלי-מצב שריטה.להחיל offsec

kali-scratch:

----------

מזהה: offsec_repository פונקציה: pkgrepo.managed

שם: deb http://pkgrepo.offsec.com offsec-internal תוצאה ראשית: נכון

הערה: חבילה מוגדרת 'deb http://pkgrepo.offsec.com offsec-internal

רָאשִׁי'

התחיל: 06:00:15.767794

משך: 4707.35 אלפיות השנייה שינויים:

----------

ריפו:

deb http://pkgrepo.offsec.com offsec-internal main

----------

מזהה: offsec-defaults פונקציה: pkg.installed

תוצאה: נכון

הערה: החבילות הבאות הותקנו/עודכנו: offsec-defaults התחילו: 06:00:21.325184

משך: 19246.041 אלפיות השנייה שינויים:

----------

offsec-defaults:

----------

חָדָשׁ:

1.0

ישן:

----------

מזהה: ssh_key_for_root פונקציה: ssh_auth.present


שם: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali תוצאה: נכון

הערה: מפתח המארח המורשה AAAAB3NzaC1yc2...89C4N עבור שורש המשתמש נוסף התחל: 06:00:40.582539

משך: 62.103 אלפיות השנייה שינויים:

---------- AAAAB3NzaC1yc2...89C4N:

חדש


תקציר לקאלי-שריטה

------------

הצליח: 3 (שונה=3)

נִכשָׁל: 0

------------

סה"כ מצבי ריצה: 3

זמן ריצה כולל: 24.015 שניות

שם: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali תוצאה: נכון

הערה: מפתח המארח המורשה AAAAB3NzaC1yc2...89C4N עבור שורש המשתמש נוסף התחל: 06:00:40.582539

משך: 62.103 אלפיות השנייה שינויים:

---------- AAAAB3NzaC1yc2...89C4N:

חדש


תקציר לקאלי-שריטה

------------

הצליח: 3 (שונה=3)

נִכשָׁל: 0

------------

סה"כ מצבי ריצה: 3

זמן ריצה כולל: 24.015 שניות


ניתן גם לשייך אותו לצמיתות למיניון על ידי הקלטתו ב- /srv/salt/top.sls

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


שרת# cat /srv/salt/top.sls

בסיס:

kali-scratch:

- offsec

שרת# מצב מלח קאלי-גירוד. מצב גבוה

kali-scratch:

----------

מזהה: offsec_repository פונקציה: pkgrepo.managed

שם: deb http://pkgrepo.offsec.com offsec-internal תוצאה ראשית: נכון

הערה: ריפו החבילה 'deb http://pkgrepo.offsec.com offsec-internal main' כבר

מוגדר התחיל: 06:06:20.650053

משך: 62.805 אלפיות השנייה שינויים:

----------

מזהה: offsec-defaults פונקציה: pkg.installed

תוצאה: נכון

הערה: החבילה offsec-defaults כבר מותקנת. התחל: 06:06:21.436193

משך: 385.092 אלפיות השנייה שינויים:

----------

מזהה: ssh_key_for_root

שרת# cat /srv/salt/top.sls

בסיס:

kali-scratch:

- offsec

שרת# מצב מלח קאלי-גירוד. מצב גבוה

kali-scratch:

----------

מזהה: offsec_repository פונקציה: pkgrepo.managed

שם: deb http://pkgrepo.offsec.com offsec-internal תוצאה ראשית: נכון

הערה: ריפו החבילה 'deb http://pkgrepo.offsec.com offsec-internal main' כבר

מוגדר התחיל: 06:06:20.650053

משך: 62.805 אלפיות השנייה שינויים:

----------

מזהה: offsec-defaults פונקציה: pkg.installed

תוצאה: נכון

הערה: החבילה offsec-defaults כבר מותקנת. התחל: 06:06:21.436193

משך: 385.092 אלפיות השנייה שינויים:

----------

מזהה: ssh_key_for_root


פונקציה: ssh_auth.present

שם: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali תוצאה: נכון

הערה: מפתח המארח המורשה AAAAB3NzaC1yc2...89C4N כבר קיים עבור

משתמש root

התחיל: 06:06:21.821811

משך: 1.936 אלפיות השנייה שינויים:


תקציר לקאלי-שריטה

------------

הצליח: 3

נִכשָׁל: 0

------------

סה"כ מצבי ריצה: 3

זמן ריצה כולל: 449.833 אלפיות השנייה

פונקציה: ssh_auth.present

שם: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali תוצאה: נכון

הערה: מפתח המארח המורשה AAAAB3NzaC1yc2...89C4N כבר קיים עבור

משתמש root

התחיל: 06:06:21.821811

משך: 1.936 אלפיות השנייה שינויים:


תקציר לקאלי-שריטה

------------

הצליח: 3

נִכשָׁל: 0

------------

סה"כ מצבי ריצה: 3

זמן ריצה כולל: 449.833 אלפיות השנייה


מחשוב ענן מערכת ההפעלה המוביל ב-OnWorks: