- با استفاده از این ماژول میتوان بستههای ابزارها و سرویسهای مختلف را از مخازن دریافت و بر روی خادمهای تحت مدیریت نصب نمود.
- به عنوان مثال کد زیر باعث میشود تا :
- سرویس 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