Using apt module in ansible PlayBook


  • با استفاده از این ماژول می‌توان بسته‌های ابزارها و سرویس‌های مختلف را از مخازن دریافت و بر روی خادم‌های تحت مدیریت نصب نمود.
  • به عنوان مثال کد زیر باعث می‌شود تا :
    • سرویس Apache بر روی خادم‌های تحت مدیریت گروه debian-servers نصب شود.
---
- name: PlayBook 
  hosts: debian-servers
  gather_facts: no
  tasks:
  - name: Install apache httpd  (state=present is optional)
    apt:
     name: apache2
     state: present
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • ابتدا لیست بسته‌ها بروز رسانی شود.
    • سپس بسته‌ای با نام foo بر روی خادم‌های تحت مدیریت گروه debian-servers نصب شود.
---
- name: PlayBook 
  hosts: debian-servers
  gather_facts: no
  tasks:
  - name: Update repositories cache and install "foo" package
    apt:
     name: foo
     update_cache: yes
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • بسته‌ای با نام foo از روی سیستم حذف شود.
---
- name: PlayBook 
  hosts: debian-servers
  gather_facts: no
  tasks:
  - name: Remove "foo" package
    apt:
     name: foo
     state: absent
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
  • نکته: این مدل از حذف بسته، معادل دستور apt-get remove می‌باشد.

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • فهرستی از بسته‌های مشخص شده نصب شوند. (از طریق مخزن)
---
- name: PlayBook 
  hosts: debian-servers
  gather_facts: no
  tasks:
  - name: Install a list of packages
    apt:
     pkg:
     - foo
     - foo-tools
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • نسخه‌ای مشخص از یک بسته توسط مخازن نصب شود.
---
- name: PlayBook 
  hosts: debian-servers
  gather_facts: no
  tasks:
  - name: Install the version '1.00' of package "foo"
    apt:
     name: foo=1.00
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • ابتدا بسته‌ی سرویس Nginx از طریق مخزن squeeze-backports بر روی سیستم نصب یا به آخرین نسخه‌ی موجود در مخزن بروز رسانی شود.
    • سپس فهرست بسته‌ها بروز رسانی شود.
---
- name: PlayBook 
  hosts: debian-servers
  gather_facts: no
  tasks:
  - name: Update the repository cache and update package "nginx" to latest version using default release squeeze-backport
    apt:
     name: nginx
     state: latest
     default_release: squeeze-backports
     update_cache: yes
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
  • عبارت update_cache: yes معادل دستور apt-get update عمل می‌کند.

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • تمام بسته‌های سیستم بروز رسانی شود.
---
- name: PlayBook 
  hosts: debian-servers
  gather_facts: no
  tasks:
  - name: Upgrade all packages to the latest version
    apt:
     name: "*"
     state: latest
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • بسته‌ی deb. از مسیر مشخص شده بر روی خادم‌های تحت مدیریت نصب شود.
---
- name: PlayBook 
  hosts: debian-servers
  gather_facts: no
  tasks:
  - name: Install a .deb package
    apt:
     deb: /tmp/mypackage.deb
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • تنها پیش نیازهایی که برای ساخت بسته مورد نیاز است، نصب شود.
---
- name: PlayBook 
  hosts: debian-servers
  gather_facts: no
  tasks:
  - name: Install the build dependencies for package "foo"
    apt:
     pkg: foo
     state: build-dep
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • نصب بسته‌ی deb. از طریق دریافت از یک آدرس مبتنی بر پروتکل https صورت گیرد.
---
- name: PlayBook 
  hosts: debian-servers
  gather_facts: no
  tasks:
  - name: Install a .deb package from the internet.
    apt:
     deb: https://example.com/python-ppq_0.1-1_all.deb
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • ابتدا بسته‌هایی که مورد استفاده قرار نمی‌گیرد از حافظه‌ی cache پاک شوند.
---
- name: PlayBook 
  hosts: debian-servers
  gather_facts: no
  tasks:
  - name: Remove useless packages from the cache
    apt:
     autoclean: yes
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • نکته: عملکرد کد بالا معادل دستور apt autoclean می‌باشد.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • پیش نیازهایی که مدتی مورد استفاده قرار نمی‌گیرند، پاک شوند.
---
- name: PlayBook 
  hosts: debian-servers
  gather_facts: no
  tasks:
  - name: Remove dependencies that are no longer required
    apt:
     autoremove: yes
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • نکته: عمل‌کرد کد بالا معادل دستور apt autoremove می‌باشد.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml

  • به منظور مطالعه‌ی بیشتر لینک‌های زیر پیشنهاد می‌شود :
https://docs.ansible.com/ansible/latest/modules/apt_module.html
Introduction to Ansible APT Package and Repository

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

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

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