5 קלח - הלעפה ירפסו תוגצה רוציל דציכ


.Ansible לש םילודומ תועצמאב Ansible ינובשחמו תוזחמ רוציל דציכ ריבסנ ,Ansible תרדס לש הז 5 קלחב

.םיקחורמ םיתמצב תודחוימ תומישמ עוציבל הלעפה ירפסב םישמשמה םילודומ םיארקנה םייאמצע םיטפירקס םע תומאות תוניפס

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

:Ansible לש םילודומ תועצמאב עצבל ןתינש תונוש תומישמ לע הריקס ךל תתל איה הזה הנשמה אשונ תרטמ

סקונילב תוליבח לוהינ

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

.רתוי תושדח RHEL תוצפהל ךיושמה dnf לודומו YUM תוליבח לוהינל םיאתמ לודומ ונשי .םתוא שחנל תיסחי לק

:הלעפה רפסב םילודומב שומישה ןפואל תואמגוד רפסמ ןלהל

---
- name: install Apache webserver
  hosts: webservers

  tasks:
       - name: install httpd
         dnf:  
          name: httpd  
          State: latest
---
- name: install Apache webserver
  hosts: databases

  tasks:
       - name: install Apache webserver
         apt:  
          name: apache2  
          State: latest

תוריש לודומ

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

---
- name: Start service httpd, if not started
  service:
    name: httpd
    state: started
---
- name: Stop service httpd
  service:
    name: httpd
    state: stopped
---
- name: Restart network service for interface eth0
  service:
    name: network
    state: restarted
    args: enp2s0

לודומ קתעה

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

---
- name: Copy file with owner and permissions
  copy:
    src: /etc/files/tecmint.conf
    dest: /srv/tecmint.conf
    owner: tecmint
    group: tecmint
    mode: '0644'

.0644 תואשרה םע tecmint שמתשמכ srv/directory/לא etc/files/directory/מ tecmint.conf הרוצתה ץבוק תא הקיתעמ העמשהה תרבוח

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

---
- name: Copy file with owner and permissions
  copy:
    src: /etc/files/tecmint.conf
    dest: /srv/tecmint.conf
    owner: tecmint
    group: tecmint
    mode: u=rw, g=r, o=r

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

םיצבק לודומ

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

---
- name: Change file ownership, group, and permissions
  file:
    path: /etc/tecmint.conf
    owner: tecmint
    group: tecmint
    mode: '0644'

.0644 -ל etc/הירפסה תרדגה תואשרהב tecmint.conf םשב ץבוק תרצוי ליעלש הלעפהה

---
- name: Remove file (delete file)
  file:
    path: /etc/tecmint.conf
    state: absent

.tecmint.conf ץבוקה תא קחומ וא ריסמ הז

---
- name: create a directory if it doesn’t exist
  file:
    path: /etc/mydirectory
    State: directory
    mode: '0777'

.0777 -ל etc/היירפסה תרדגה תואשרהב היירפס רוצית וז הלועפ

---
- name: Recursively deleting a  directory
  file:
    path: /etc/tecmint.conf
    state: absent

.הירפס תיביסרוקר תקחומ ליעלש הגצהה

Lineinfile לודומ

.םייק וק ףילחהל לוכי הז .ץבוקב תחא הרוש תונשל ךנוצרב רשאכ ליעומ lineinfile לודומ

---
 - name: Ensure SELinux is set to enforcing mode
  lineinfile:
    path: /etc/selinux/config
    regexp: '^SELINUX='
    line: SELINUX=disabled

.תבשומ ל SELINUX ךרע תא הרידגמ הלעמלש הגצהה

SELINUX=disabled
---
- name: Add a line to a file if the file does not exist, without         passing regexp
  lineinfile:
    path: /etc/hosts
    line: 10.200.50.51 linux-console.net
    create: yes

.etc/hosts/ץבוקל linux-console.net 10.200.50.51 ךרעה תא ףיסומ הז

ןויכרא לודומ

. remove = True טפשמה תועצמאב רוקמה ץבוק תא ריסהל וא קוחמל ןתינ רתוי רחואמ ,ןויכראה רחאל .דעיה דעיב םייק הסיחדה רוקמש חינמ אוה .םיבורמ וא םידדוב םיצבק לש סוחד ןויכרא תריצ

- name: Compress directory /path/to/tecmint_dir/ into /path/to/tecmint.tgz
  archive:
    path: /path/to/tecmint_dir
    dest: /path/to/tecmint.tgz

This compresses the /path/to/tecmint_dir  directory to /path/to/tecmint.tgz
- name: Compress regular file /path/to/tecmint into /path/to/foo.gz and remove it
  archive:
    path: /path/to/tecmint
    dest: /path/to/tecmint.tgz
    remove: yes

.ןויכראה תמלשה רחאל קחמנ tecmint/לא/ביתנ/רוקמה ץבוק ,ליעלש הגצהב

- name: Create a bz2 archive of /path/to/tecmint
  archive:
    path: /path/to/tecmint
    format: bz2

.path/to/tecmint/ץבוקמ bz2 טמרופב סוחד ץבוק רצוי הז

טיג לודומ

.הנכות ירגאמ לש git תופוק להנמ לודומה

- git:
    repo: 'https://foosball.example.org/path/to/repo.git'
    dest: /srv/checkout
    version: release-0.22

דוקיפ לודומ

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

- name: Executing a command using the command module
  command: cat helloworld.txt
---
 - name: Check the remote host uptime
    hosts: servers
    tasks:
      - name: Execute the Uptime command over Command module
        register: uptimeoutput
        command: "uptime"

- debug:
          var: uptimeoutput.stdout_lines

.םיקחורמ םיתרש לש תוליעפה ןמז תא רזחאמ הדוקפה לודומ

תודוקפה תואצות רוזחאל םינתשמ

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

.המישמה לש טודוטסה תא ןכמ רחאל ליכי הנתשמה .הנתשמכ התוא רומשלו המישמה טלפ תסיפתל ליגר םושיר שמשמ

.הנתשמב STD -ה טלפ תא רומשל ידכ 'register' -ו הדוקפה תא רידגהל ידכ 'command' לודומב שמתשהל ךלוה התא . df -Th/ הדוקפה תועצמאב המאתהב שרושה תוי

.stdout לש הרזחהה ךרע דצל 'debug' לודומב שמתשת ,הדוקפה תא גיצהל ידכ

---

 - hosts: all
   become: yes

   tasks:
     - name: Execute /boot usage on Hosts
       command: 'df -Th /'
       register: df

     - debug: var=df.stdout

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

# ansible-playbook check_disk_space.yml

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

.stdout_lines -ב stdout רזחהה ךרע תא ףלחה ,האירקה לע לקהלו טלפה תא רשייל ידכ

---

 - hosts: all
   become: yes

   tasks:
     - name: Execute /boot usage on Hosts
       command: 'df -Th /'
       register: df

     - debug: var=df.stdout_lines

הלעפהה עוציב לע טולשל ידכ םיאנתב שמתשה

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

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

when: condition

.תקחורמה תכרעמב תעצבתמ המישמה ,םייקתמ יאנתה רשאכ

:תואמגוד המכ קודבל ואוב

---
- hosts: all

  tasks:
  - name: Install Nginx on Debian
     apt: name=nginx state=present
     when: ansible_os_family == “Debian”

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

.יאנתה רשאכ טפשמה דצל AND OR םיליעפמב שמתשהל םג לוכי התא

---
- hosts: all

  tasks:
  - name: Install Nginx on Debian
     apt: name=nginx state=present
     when: ansible_os_family == “Debian” and
           ansible_distribution_version == “18.04”

.עצובת המישמהש ידכ תוקפוסמ תויהל תובייח תורהצה יתש , AND רוטרפואב שומיש תעב

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

.םייקתמ םיאנתהמ דחא םא תעצבתמ המישמה , OR רוטרפוא תועצמאב

---
- hosts: all

  tasks:
  - name: Install Nginx on Debian
     apt: name=nginx state=present
     when: ansible_os_family == “Debian” or
	      Ansible_os_family == “SUSE”

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

.יאנת תקידב תעב == לופכה ןויוושה ןמיסב שמתשהל דימת דפקה :הרעה

תואלולב םיאנת

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

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

---
 - name: Install Software packages
    hosts: all
    vars:
	packages:
    • name: nginx
required: True
    • name: mysql
required: True
    • name: apache
required: False



   tasks:
    • name: Install “{{ item.name }}”on Debian
apt: 
 name: “{{ item.name }}”
 state: present 
When: item.required == True
loop: “{{ packages }}”  

תואיגשב לופיט לש הרוצת עבק

.םיתרשה ראשב תורתונה תומישמה תא םילשהל הסניו 2 תרשב תורתונה תומישמה תא עצבל קיספי Ansible ,2 תרשב (MySQL תלעפה) 3 המישמב האיגש תשחרתמ םא .הטמל העמשהה תרבוחב גצומש יפכ םיתרש 3 לע תומישמ 5 ל

---
 - name: Install Software packages
   hosts: server1, server2, server3
   tasks:
- name: Install dependencies
<< some code >>

- name: Install MySQL database
<< some code >>

- name: Start MySQL
<< some code >>

- name: Install Nginx
<< some code >>

- name: Start Nginx
<< some code >>

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

---
 - name: Install Software packages
   hosts: server1, server2, server3
   any_errors_fatal:  true
   tasks:

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

.ignore_errors: True תורשפאב שמתשה ,רתונש תומישמה ךרעמ תא עצבל ךישמיו תואיגשהמ םלעתי העמשהה רפסש ךנוצרב םא

---
 - name: Install Software packages
   hosts: server1, server2, server3
   tasks:
- name: Install dependencies
<< some code >>
     ignore_errors: True

רדגומ בצמל תוכרעמ רידגהל ידכ העמשה ירפס רוצ

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

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

:Apache לש טנרטניאה תרש תלעפה תא הליחתמו הניקתמש httpd.yml םשב המשה תרבוח שבי ליעפהל ידכ ,אמגודל

# ansible-playbook httpd.yml --check

.הב ליחתהל וא ליחתהל הלעפהה רפס לעש המישמה םש ןויצ תעב שמשמ הז . - start-at-task תורשפאה איה לכתסהל ונילעש תרחאה תורשפאה

.htop תורישה ילכ תא הניקתמ היינשהו Apache לש טנרטניאה תרש תא תנקתמ הנושארה הלעפהה :תומישמ יתש תטרפמ הטמלש העמשהה תרבוח :המגוד חקינ ואוב

---
 - name: Install httpd

   hosts: all
   tasks:
    yum:	 
name: httpd
     state: Installed

- name: Install htop

      yum:  
      name: htop
      state: started

:htop תורישה תלעפה תא ןיקתהל םוקמבו י'צאפא לש טנרטניאה תרש תנקתה לע גלדל ךנוצרב םא

# ansible-playbook playbook.yml --start-at-task “Install htop”

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

---
 - name: Install httpd
   tags: Install and start
   hosts: all
   tasks:
    yum:	 
name: httpd
     state: Installed

   tags: Install

    • service: 
name: httpd
state: started
# ansible-playbook playbook.yml -tags "Install"

.גצומש יפכ - ship-tags תויורשפאב שמתשה םיגתה תא טימשהל ידכ

# ansible-playbook playbook.yml --skip-tags "Install"

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


כל הזכויות שמורות. © Linux-Console.net • 2019-2024