6 קלח - תכרעמה לוהינ תומישמל שומישל םינתינה םילודומב שמתשהל דציכ
.תכרעמ לוהינ תומישמ רפסמ עוציבל םיעייסמה םיפסונ םילודומ הלגנו קימענ תעכ ,םימדוקה םיאשונב Ansible םילודומ המכ לש הז 6 קלחב
.תומיוסמ תומישמ עוציבל תונימזה תויורשפאה תא ןחבתו לודומ לכ לע יסיסב גשומ לבקת
.apt ונל שי RedHat תוצפהל .םינוש תוליבח ילהנמ םע תועיגמ תונוש תוצפה ,סקוניל תוכרעמב תוליבח תנקתה תעב
Ansible ארקנש לודומ םע עיגמ package, הדובעה לע לקמ ךכבו ,תחראמה תכרעמה לש םיאתמה תוליבחה להנמב יטמוטוא ןפואב שמתשמ הז .תונוש תוכרעמ רובע םינוש תוליבח ילהנמב שומישב ךרוצה תא לטבמ רשא.
.הטמל install_htop.yml הלעפהה תרבוחב גצומכ הליבחה לודומב שמתשה RedHat -ו Debian לש תוצפה תללוכה םיחראמ תצובקב htop תא ןיקתהל ידכ ,אמגודל
--- - name: Install htop on Ubuntu and CentOS hosts: all tasks: - package: name: htop state: installed
.תונתומ תורהצהב וא םינתשמב שמתשהל ףידע ,ללכ ךרדב .הלא תוליבח תרבעה תעב תוריהז הנשמ טוקנל שי ןכל .Apache לש טנרטניאה תרש תא תונייצמ ןלוכש וטנובוא/ןאיבד תוכרעמל Apache2 -בו Redhat תוצפהב h
.יטמוטוא ןפואב תורישה תא ליעפת איה ,הליחתמ תכרעמה רשאכש ךכ תוריש ליעפהל ידכ וב שמתשהל םג לוכי התא .תוריש לש שדחמ הלעפה וא הריצע ,הלעפהל שמשמ אוה .סקוניל תוכרעמב םיתוריש לוהינל שמשמה תוריש
.גצומכ תורישב שמתשה ,RHEL 8 -ב Apache לש טנרטניאה תרש תא ליעפהלו ליעפהל ידכ ,המגודל
--- - name: Start and enable httpd service hosts: webservers tasks: - service: name: httpd state: started enabled: yes
.ורצע הנוכתה תא וריבעה ,httpd -ה תוריש תא קיספהל ידכ
--- - name: Stop httpd service hosts: webservers tasks: - service: name: httpd state: stopped
.שדחמ הלעפוהש הנוכתה תא וריבעה ,httpd -ה תוריש תא שדחמ ליעפהל ידכ
--- - name: Restart httpd service hosts: webservers tasks: - service: name: httpd state: restarted
.רוקמ תבותכ וליפא וא תוריש וא האיצי םוסחת וא רשפאתש ךכ שאה תמוח תא רידגהל ךתורשפאב .ufw -ו firewallld ילודומ םע לק רתוי הברה השענ רבדה ,Ansible לש הלעפהה ירפסב .שאה תמוח לוהינ איה םיבייחתמ
:תואמגוד המכ לע לכתסנו ץופקנ אוב
--- - name: Allow port 80 hosts: webservers tasks: -firewalld: port: 80/tcp permanent: yes state: enabled
.שאה תמוח ינפ לע תרתומ 80 האיצי ,הלעמלש םיקחשמה רפסב
. ןכ :תידיימ
תורשפאב שמתשה ,ידיימ ןפואב ללכה תא ףוכאל ידכ .שדחמ לוחתא רחאל קר ףקותל סנכנ הז .דימ לח וניא הז ללכ ,תאז םע .שדחמ לוחתא לכב תכשמתהל התוא תכפוהו שאה תמוח ללכ תא ת
.0.0.0.0/0 :רוקמה טפשמב שמתשה ,תורתומה תובותכה תא ןייצל ידכ
- firewalld: source: 192.168.0.0/24 zone: public state: enabled
:אבה ןפואב האיציה תורשפאב שמתשהל ורשפאיש תואיצי לש חווט ןייצל ידכ
- firewalld: port: 213-567/udp permanent: yes state: enabled
:גצומכ תתבשומל בצמה תורשפא תא הנש ,האיציה תא םוסחל ידכ
-firewalld: port: 80/tcp permanent: yes state: disabled
.תלעפומל תרדגומ הנידמה תייצפואש אדוו הפסוהל תורישה תא ףסוהו תורישה לודומב שמתשה טושפ .טושפ יד הזו .תוריש לע םיללכ םתוא תא ליחהל םג לוכי התא ,האיצי לש המיסח/הפסוה דבלמ
- firewalld: service: https permanent: true state: enabled
.' תבשומ'ל בצמה תורשפא תא רדגה תורישה תא םוסחל ידכ
- firewalld: service: https permanent: true state: disabled
.סוחדה ץבוקה לש דעיה תאו ץבוקה לש רוקמה ביתנ תא ןייצל אוה שרדנש לכ .תייהנ איהש ומכ ךרעב הלק ץבוק תסיחד .ןויכרא ארקנש לודומ םע תומאות תוניפס .רתוי ןטק לדוגבו תולקב דיינ טמרופל היקית וא ץבוק
.compress.yml playbook ןלהל לוקש
--- - hosts: webservers tasks: • name: Compress a folder archive: path: /opt/data/web dest: /tmp/web.gz
.tmp/web.gz/-ב התוא תרמושו טנרטניאה תיירפס/opt/data/תא תסחוד ליעלש הלעפהה תרבוח
.אבה קיילפה רפס אמגודל .טמרופה תנוכת תועצמאב תאז ןייצל ןתינ םלוא , .gz
אוה לדחמ תרירבכ רדגומה הסיחדה טמרופ
--- - hosts: webservers Tasks: - name: Create a zip archive archive: path: /opt/data/web dest: /tmp/web format: zip
.tmp/web.zip/ לא טנרטניאה תיירפס/opt/data/תסחוד הלעמלש הלעפהה תרבוח
.הטמלש קחשמה רפס תא לוקש .unarchive הנוכתה תועצמאב סוחדה ץבוקה תסיחד תא לטבל םג ןתינ
--- - hosts: webservers tasks: - name:Uncompress /tmp/web.gz to/opt directory on Ansible controller unarchive: src: /tmp/web.bz2 dest: /opt/
.Ansible רקבב רוחבל/ידכ opt/data/web.gz/ ץבוקה תסיחד תא לטבמ ליעלש העמשהה רפס
. remote_src = yes
תורשפאב שמתשה קחורמה רוקמה תכרעמ תא ןייצל ידכ
--- - hosts: webservers tasks: - name:Uncompress /tmp/web.bz2 to/opt on remote host unarchive: src: /tmp/web.bz2 dest: /opt/ remote_src=yes
./ opt/היירפסל קחורמה תמוצב tmp/web.bz2/ ץבוקה תסיחד תא תלטבמ הלעמלש הלעפהה תרבוח
.Playbooks Ansible -ב תודובע ןומזתב עייסמ cron לודומ
.הטמלש קחשמה רפס תא לוקש
--- - hosts: webservers tasks: - name: Create a scheduled task cron: name: Run employee attendance job: sh /opt/scripts/attendace.sh month: 4 day: 5 hour: 17 minute: 00
.םיירהצה רחא 17:00 העשב לירפאב 5- ב תוחכונה טירסת תא ץירמ קחשמה רפס
.רתכה ןומיס יפל תבש ןייצמ 6 ו ןושאר םוי ןייצמ 0 .1 :לוח םוי ןייפאמב שמתשה ,ינש םוי אוה לירפאב ישימחה םויה םא קר הז טפירקס תלעפה ןמזתל ךנוצרב םא
month: 4 day: 5 hour: 17 minute: 00 weekday: 1
.והשלכ ךרע תנייצמ וללה תודשהמ דחא לכב (*) תיבכוכ
.גצומש יפכ ןמזה ירטמרפב שמתשה ,עובשה םוי והמ הנשמ אל 17:00 העשב לירפאב 5- ב הדובעה תא ליעפהל ידכ
month: 4 day: 5 hour: 17 minute: 00 weekday: *
.הטמלש תורדגהב שמתשה ,17:00 העשב שדוח לכ לש ישימחה םויב cron תדובע תא עצבל ידכ
month: * day: 5 hour: 17 minute: 00 weekday: *
:גצומכ ןמזה תורדגה תא רדגה ,17:00 העשב םוי ידמ cron תדובע תא עצבל ידכ
month: * day: * hour: 17 minute: 00 weekday: *
.גצומש יפכ */5
דעצה ךרעב שמתשה ,תועש שמח לכ cron תדובע תא עצבל ידכ
month: * day: * hour: */5 minute: * weekday: *
.ץמאמ אלל Ansible לש הלעפהה תורבוח ךותב תוצובקו םישמתשמ להנל םג לוכי התא
.גצומש יפכ שמתשמה לודומב שמתשה ,שדח שמתשמ רוציל ידכ
--- - hosts: webservers tasks: - name: Create a new user user: name: Jack
.תוצובק ,UID ןוגכ תופסונ תויורשפא ףיסוהל םג ןתינ
- name: Create a new user user: name: Jack comment: Jack Peters uid: 1002 group: administrators shell: /bin/bash
. remove: yes
הרהצהב שמתשה ,שמתשמה תא ריסהל ידכ
- name: Remove the user 'Jack' user: name: Jack state: absent remove: yes
.הצובקה לודומב שמתשה ,השדח הצובק רוציל ידכ
- name: Create a group group: name: developers
.םיצבקה לודומב שמתשה ,תוירפס יצבק רוציל ידכ
.השדח הירפס רוציל ידכ ,אמגודל
--- - hosts: webservers tasks: - name: Create a new directory file: path: /opt/app state: directory
.םיצבקו תוצובק ,םילעב תואשרה ןוגכ םירחא םינייפאמ ףיסוהל לוכי התא
- hosts: webservers tasks: - name: Create a new directory file: path: /opt/web state: directory owner: www-data group: www-data mode: 0644
.ןכ :recurse תרהצה תועצמאב יביסרוקר ןפואב תוירפס רוציל ךתורשפאב ,ףסונב
--- - hosts: webservers tasks: - name: Create directories recursively file: path: /opt/web/app state: directory owner: www-data group: www-data mode: 0644 recurse: yes
. state: touch
תורשפאב שמתשה ,ץבוק תריציל
--- - hosts: webservers tasks: - name: Create a new file file: path: /opt/web/index.html state: touch owner: www-data group: www-data mode: 0644
.LVM תוצובקו ןוסחא יעצמא לש הרוצת תרדגהל שמשמ lvg -ה לודומ
:ןלהלש קחשמה רפס תא לוקש
--- - hosts: webservers tasks: • name: Create lVM volume group lvg: vg: vg1 pvs: /dev/sda1 pesize: 32
.טייבהגמ 32 לש יזיפ ףקיה לדוגב /dev/sda1
תציחמ יבג לע ןוסחא יעצמא תצובק תרצונ ךכ
גצומש יפכ יגול חפנ רוציל ידכ lvol לודומב שמתשה ,הריציה רחאל
--- - hosts: webservers tasks: - name: Create lVM volume lvol: vg: vg1 lv: lvol1 pvs: /dev/sda1
.םיצבקה תכרעמ לודומב שמתשה ,םוסח ןקתהב םיצבק תכרעמ רוציל ידכ
.המיסחה חפנב xfs -ה לש םיצבקה תכרעמ גוס תא רצוי הטמלש העמשהה רפס
--- - hosts: webservers tasks: - name: Create a filesystem filesystem: fstype: xfs dev: /dev/vg1/lvol1
:ןלהלש תוארוהה רפסב גצומש יפכ הבכרהה לודומ תועצמאב המיסחה חפנ תא ביכרהלו ךישמהל לכות אבה בלשב
--- - hosts: webservers tasks: - name: Mount a filesystem mount: fstype: xfs src: /dev/vg1/lvol1 path: /opt/web state: mounted
.Ansible Playbooks -ב םייפיצפס םינבומ םילודומ תועצמאב עצבל ןתינש תכרעמה לוהינ לש תונוש תומישמ ונרקס .אשונה תא םכסמ הז