7 קלח - םילהונמ םיתמצב תורוצת תריציל תושיגנה תוינבת רוציל דציכ


.יילפ-יילפ יצבק לש תילמינימ הכירע םע תונוש תוכרעמ םיצירמה םילהונמ םיתמצל תישיא תומאתומ תורוצת ףוחדל תיתודידיו הלק ךרד איה Ansible -ב תוינבת .םילהונמ םיתמצב תישיא תומאתומ תורוצת רוציל ידכ A

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

.םינתשמ םה גוזה ינבו םינעמנה וליאו ,תינבתל ךפוה ל"אודה .םינתשמ םהלש גוזה ינב תומשו תובותכה ךא ,ההז ראשיי ל"אודה ףוגש ךכ המאתוה ל"אודה תעדוה

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

Jinja2 םילופכה םילתלותמה םיירגוסב שמתשמ {{...}} ב שמתשה ,תובוגתל .רדגוהש הנתשמ ףרצל ידכ- {{# #} ב שמתשה תונתומ תורהצהלו- {% ...%} .

.גצומש יפכ ,םהלש VLAN -ה תשרל ףוחדל ךנוצרבש חראמ תוכרעמ םע ךלש תשרב VLAN תותשר לש םינותנ לדומ ךל שיש חיננ

vlans:
  - id: 10
    name: LB
  - id: 20
    name: WB_01
  - id: 30
    name: WB_02
  - id: 40
    name: DB

.םילתלותמ םיירגוסב ומקוה vlan.name -ו vlan.id םינתשמה ,תוארל לוכי התאש יפכ .גצומכ עיפות vlans.j2 תארקנה המיאתמה jinja2 תינבת ,וז הרוצת דבעל ידכ

vlan {{ vlan.id }}
  name {{ vlan.name }}

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

    - hosts
  tasks:
    - name: Rendering VLAN configuration
      template:
         src: vlans.j2
         dest: "vlan_configs/{{ inventory_hostname }}.conf"

תונוש תוצפהב טנרטניא יתרש לש הרוצת תעיבק :1 המגוד

.וטנובואו CentOS םיצירמה טנרטניא יתרש 2 לש הלעפהה תכרעמו חראמה םש תודוא עדימ וגיציש index.html יצבק רוצינ וז המגודב

Ubuntu 18 - IP address: 173.82.202.239
CentOS 7 -  IP address: 173.82.115.165

.םיתרשה ינשב ןקתוה רבכ י'צאפא לש טנרטניאה תרש

:גצומש יפכ playbook test_server.yml רוציל ואוב זא

---

 - hosts: all
   become: yes

   tasks:

    - name: Install index.html
      template:
        src: index.html.j2
        dest: /var/www/html/index.html
        mode: 0777

.jinja2 ץבוקב רבודמש ןמסל ידכ ףוסב .j2 ףסותה תא םישל דימת ורכז .טנרטניא תרש לכב index.html ץבוקל ףחדית רשא index.html.j2 איה Jinja -ב ונלש ץבוקה תינבת

.index.html.j2 תינבתה ץבוק תא תעכ רוצינ ואוב

<html>
<center>
   <h1> The hostname of this webserver is {{ ansible_hostname }}</h1>
   <h3> It is running on {{ ansible_os_family}}system </h3>
</center>
</html>

.ןפדפדב םידרפנה םירתאה יתרש לש הלעפהה תוכרעמבו םימיאתמה חראמה תומשב ופלחויש םינבומ םינתשמ םה ansible_os_family -ו ansible_hostname ובש יסיסב HTML ץבוק איה וז תינבת

.העמשהה תרבוח תא ליעפנ ואוב ,וישכע

# ansible-playbook test_server.yml

.וטנובוא לש ןהו CentOS 7 לש טנרטניאה יתרש רובע ןה טנרטניאה יפד תא שדחמ ןעטנ ואוב וישכע

!2 א'גני'ג תוינבת בינגמ הככו .תרש לכב גצוה הלעפהה תכרעמ לש החפשמהו חראמה םש לע הנוש עדימ ,תוארל ןתינש יפכ

:םיננסמ

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

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

{{ ansible_hostname | upper }} => CENTOS 7
{{ ansible_os_family | upper }} => REDHAT

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

{{ ansible_hostname | lower }}  => centos 7
{{ ansible_os_family | lower }} => redhat

.תרחאב תזורחמ ףילחהל ךתורשפאב ,ףסונב

:המגודל

.לוצלצ איה טרסה תרתוכ {{movie_name}} => איה טרסה תרתוכ

:גצומכ ףלחה טנמוגראב שמתשה ,תרחא תזורחמב טלפה תא ףילחהל ידכ

.Heist אוה טרסה םש <=> איה טרסה תרתוכ

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

{{ [ 2, 3, 4, 5, 6, 7 ] | min }}	=>	2

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

{{ [ 2, 3, 4, 5, 6, 7 ] | max }}	=>	7

.ידוחייה ןנסמב שמתשה ,םיידוחיי םיכרע גיצהל ידכ

{{ [ 2, 3, 3, 2, 6, 7 ] | unique }} =>	2, 3

.ךרעל 0 ןיב יארקא רפסמ גישהל ידכ יארקאה ןנסמב שמתשה

{{ 50 | random }} =>  Some random number

:שפחמ

.Ansible Jinja2 -ב תואלול ונל שי ,תונכת תופשב ומכ קוידב

:ןלהלש המגודב גצומש יפכ for האלולב שמתשה םירפסמ תמישר ליכמה ץבוק רוציל ידכ ,אמגודל

{% for number in [0, 1, 2, 3, 4, 5, 6, 7]  %}
{{ number }}
{% end for %}

.םימיוסמ םיכרע לבקלו ןנסל ידכ if-else תורהצה םע for האלולה תא בלשל םג ןתינ

{% for number in [0, 1, 2, 3, 4, 5, 6, 7]  %}
{% if number == 5 %}
         {{ number }}
{% endif%}
{% endfor %}

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