Using yum module in ansible PlayBook


  • با استفاده از این ماژول می‌توان بسته‌های ابزارها و نرم افزارهای مختلف را از مخازن دریافت و بر روی سیستم نصب نمود.
  • استفاده از این ماژول تنها برای توزیع‌های مشتق شده از سیستم عامل red hat enterprise linux امکان پذیر خواهد بود.

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • بسته‌ی سرویس httpd بر روی گروهی خاص از خادم‌های تحت مدیریت نصب شود.
---
- name: PlayBook
  hosts: centos-servers
  gather_facts: no
  tasks:
  - name: Install the latest version of Apache
    yum:
     name: httpd
     state: latest
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
  • در صورتی که کد بالا به صورت موفقیت آمیز اجرا شود، خروجی‌ای مشابه زیر دریافت خواهید کرد :
PLAY [PlayBook] *************************************************************************************************************************************************

TASK [Install the latest version of Apache] ************************************************************************************************************************
changed: [172.16.0.245]

PLAY RECAP *********************************************************************************************************************************************************
172.16.0.245               : ok=1    changed=1    unreachable=0    failed=0
  • نکته: با توجه به ماهیت ماژول yum و خروجی بالا، عبارت changed=1 مشخص می‌کند که اعمال تغییرات بر روی خادم تحت مدیریت، صورت گرفته است.

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • سرویس httpd از روی گروهی خاص از خادم‌های تحت مدیریت حدف شود.
---
- name: PlayBook
  hosts: centos-servers
  gather_facts: no
  tasks:
  - name: remove the Apache package
    yum:
     name: httpd
     state: absent
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
  • در صورتی که کد بالا به صورت موفقیت آمیز اجرا شده باشد، خروجی‌ای مشابه زیر دریافت خواهید کرد :
PLAY [PlayBook] *************************************************************************************************************************************************

TASK [remove the Apache package] ***********************************************************************************************************************************
changed: [172.16.0.245]

PLAY RECAP *********************************************************************************************************************************************************
172.16.0.245               : ok=1    changed=1    unreachable=0    failed=0

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • ابزار htop توسط مخزن epel بر روی گروهی خاص از خادم‌های تحت مدیریت نصب شود.
---
- name: PlayBook
  hosts: centos-servers
  gather_facts: no
  tasks:
  - name: install the latest version of htop tool
    yum:
     name: htop
     enablerepo: epel
     state: present
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
  • در صورتی که کد بالا به صورت موفقیت آمیز اجرا شده باشد، خروجی‌ای مشابه زیر دریافت خواهید کرد :
PLAY [PlayBook] *************************************************************************************************************************************************

TASK [install the latest version of htop tool] *********************************************************************************************************************
changed: [172.16.0.245]

PLAY RECAP *********************************************************************************************************************************************************
172.16.0.245               : ok=1    changed=1    unreachable=0    failed=0

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • سرویس httpd نسخه‌ی 2.4.6-90.el7.centos بر روی گروهی خاص از خادم‌های تحت مدیریت نصب و راه اندازی شود.
---
- name: PlayBook
  hosts: centos-servers
  gather_facts: no
  tasks:
  - name: install one specific version of Apache
    yum:
     name: httpd-2.4.6-90.el7.centos
     state: present
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
  • در صورتی که کد بالا به صورت موفقیت آمیز اجرا شده باشد، خروجی‌ای مشابه زیر دریافت خواهید کرد :
PLAY [PlayBook] *************************************************************************************************************************************************

TASK [install one specific version of Apache] **********************************************************************************************************************
changed: [172.16.0.245]

PLAY RECAP *********************************************************************************************************************************************************
172.16.0.245               : ok=1    changed=1    unreachable=0    failed=0

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • تمام بسته‌های سیستم به جز kernel و foo به روز رسانی شوند.
---
- name: PlayBook
  hosts: centos-servers
  gather_facts: no
  tasks:
  - name: upgrade all packages, excluding kernel & foo related packages
    yum:
     name: '*'
     state: latest
     exclude: kernel*,foo*
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
  • در صورتی که کد بالا به صورت موفقیت آمیز اجرا شده باشد، خروجی‌ای مشابه زیر دریافت خواهید کرد :
PLAY [PlayBook] *************************************************************************************************************************************************

TASK [upgrade all packages, excluding kernel & foo related packages] ***********************************************************************************************
changed: [172.16.0.245]

PLAY RECAP *********************************************************************************************************************************************************
172.16.0.245 : ok=1 changed=1 unreachable=0 failed=0

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • ابزارهای htop و nano و سرویس httpd بر روی گروهی خاص از خادم های تحت مدیریت نصب شود.
---
- name: PlayBook
  hosts: centos-servers
  gather_facts: no
  tasks:
  - name: Install a list of packages
    yum:
     name:
     - htop
     - nano
     - httpd
     state: latest
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
  • در صورتی که کد بالا به صورت موفقیت آمیز اجرا شده باشد، خروجی‌ای مشابه زیر دریافت خواهید کرد :
PLAY [PlayBook] *************************************************************************************************************************************************

TASK [Install a list of packages] **********************************************************************************************************************************
changed: [172.16.0.245]

PLAY RECAP *********************************************************************************************************************************************************
172.16.0.245               : ok=1    changed=1    unreachable=0    failed=0

  • به منظور مطالعه‌ی بیشتر لینک‌های زیر پیشنهاد می‌شود :
https://docs.ansible.com/ansible/latest/modules/yum_module.html
https://www.mydailytutorials.com/ansible-yum-module-examples/

  • آزمایش شده بر روی Ansible نسخه‌ی 2.5.1
  • آزمایش شده بر روی سیستم عامل Ubuntu 18.04

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *