- با استفاده از این ماژول میتوان مدیریت کامل و جامعی بر روی ابزار yum در داخل توزیعهای بر پایهی RHEL داشت.
- لازم به ذکر است که از این ابزار و از این ماژول به منظور نصب بستههای مختلف بر روی سیستم استفاده میشود.
- به عنوان مثال دستور زیر باعث میشود تا :
- بستهی httpd بر روی گروهی خاص از خادمهای تحت مدیریت نصب و راه اندازی شود.
# ansible -i hosts.list centos-servers -m yum -a "name=httpd state=latest"
- در صورتی که دستور بالا به صورت موفقیت آمیز اجرا شده باشد، خروجیای مشابه زیر دریافت خواهید کرد :
172.16.0.245 | SUCCESS => {
"changed": true,
"msg": "",
"rc": 0,
"results": [
"Loaded plugins: fastestmirror\nLoading mirror speeds from cached hostfile\n * base: mirror.fibersunucu.com.tr\n * epel: mirror.yer.az\n * extras: mirror.dgn.net.tr\n * updates: mirror.fibersunucu.com.tr\nResolving Dependencies\n--> Running transaction check\n---> Package httpd.x86_64 0:2.4.6-90.el7.centos will be installed\n--> Processing Dependency: httpd-tools = 2.4.6-90.el7.centos for package: httpd-2.4.6-90.el7.centos.x86_64\n--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-90.el7.centos.x86_64\n--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-90.el7.centos.x86_64\n--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-90.el7.centos.x86_64\n--> Running transaction check\n---> Package apr.x86_64 0:1.4.8-5.el7 will be installed\n---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed\n---> Package httpd-tools.x86_64 0:2.4.6-90.el7.centos will be installed\n---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed\n--> Finished Dependency Resolution\n\nDependencies Resolved\n\n================================================================================\n Package Arch Version Repository Size\n================================================================================\nInstalling:\n httpd x86_64 2.4.6-90.el7.centos base 2.7 M\nInstalling for dependencies:\n apr x86_64 1.4.8-5.el7 base 103 k\n apr-util x86_64 1.5.2-6.el7 base 92 k\n httpd-tools x86_64 2.4.6-90.el7.centos base 91 k\n mailcap noarch 2.1.41-2.el7 base 31 k\n\nTransaction Summary\n================================================================================\nInstall 1 Package (+4 Dependent packages)\n\nTotal download size: 3.0 M\nInstalled size: 10 M\nDownloading packages:\n--------------------------------------------------------------------------------\nTotal 1.3 MB/s | 3.0 MB 00:02 \nRunning transaction check\nRunning transaction test\nTransaction test succeeded\nRunning transaction\n Installing : apr-1.4.8-5.el7.x86_64 1/5 \n Installing : apr-util-1.5.2-6.el7.x86_64 2/5 \n Installing : httpd-tools-2.4.6-90.el7.centos.x86_64 3/5 \n Installing : mailcap-2.1.41-2.el7.noarch 4/5 \n Installing : httpd-2.4.6-90.el7.centos.x86_64 5/5 \n Verifying : apr-1.4.8-5.el7.x86_64 1/5 \n Verifying : mailcap-2.1.41-2.el7.noarch 2/5 \n Verifying : httpd-tools-2.4.6-90.el7.centos.x86_64 3/5 \n Verifying : apr-util-1.5.2-6.el7.x86_64 4/5 \n Verifying : httpd-2.4.6-90.el7.centos.x86_64 5/5 \n\nInstalled:\n httpd.x86_64 0:2.4.6-90.el7.centos \n\nDependency Installed:\n apr.x86_64 0:1.4.8-5.el7 apr-util.x86_64 0:1.5.2-6.el7 \n httpd-tools.x86_64 0:2.4.6-90.el7.centos mailcap.noarch 0:2.1.41-2.el7 \n\nComplete!\n"
]
}
- نکته: در صورتی که از پارامتر state استفاده نشود، به صورت پیشفرض این پارامتر با مقدار کلیدی present در نظر گرفته میشود.
- نکته: مقدار کلیدی latest برای پارامتر state باعث نصب بسته یا بروزرسانی آن به آخرین نسخه میشود.
- نکته: مقدار کلیدی present و installed برای پارامتر state بررسی میکند که آیا بستهی مورد نظر بر روی سیستم عامل نصب است یا خیر. همچنین در صورتی که نصب نباشد، آن را اقدام به نصب میکند.
- به عنوان مثال دستور زیر باعث میشود تا :
- بررسی شود آیا بستهی httpd بر روی گروهی خاص از خادمهای تحت مدیریت نصب است یا خیر :
# ansible -i hosts.list centos-servers -m yum -a "name=httpd state=present"
- در صورتی که دستور بالا به صورت موفقیت آمیز اجرا شده باشد، خروجیای مشابه زیر دریافت خواهید کرد :
172.16.0.245 | SUCCESS => {
"changed": false,
"msg": "",
"rc": 0,
"results": [
"httpd-2.4.6-90.el7.centos.x86_64 providing httpd is already installed"
]
}
- به منظور پاک کردن یک بسته میتوان از مقدار کلیدی removed یا absent برای پارامتر state استفاده کرد.
- به عنوان مثال دستور زیر باعث میشود تا :
- بستهی httpd از روی گروهی خاص از خادمهای تحت مدیریت پاک شود.
# ansible -i hosts.list centos-servers -m yum -a "name=httpd state=removed"
- در صورتی که دستور بالا به صورت موفقیت آمیز اجرا شده باشد، خروجیای مشابه زیر دریافت خواهید کرد :
172.16.0.245 | SUCCESS => {
"changed": true,
"msg": "",
"rc": 0,
"results": [
"Loaded plugins: fastestmirror\nResolving Dependencies\n--> Running transaction check\n---> Package httpd.x86_64 0:2.4.6-90.el7.centos will be erased\n--> Finished Dependency Resolution\n\nDependencies Resolved\n\n================================================================================\n Package Arch Version Repository Size\n================================================================================\nRemoving:\n httpd x86_64 2.4.6-90.el7.centos @base 9.4 M\n\nTransaction Summary\n================================================================================\nRemove 1 Package\n\nInstalled size: 9.4 M\nDownloading packages:\nRunning transaction check\nRunning transaction test\nTransaction test succeeded\nRunning transaction\n Erasing : httpd-2.4.6-90.el7.centos.x86_64 1/1 \n Verifying : httpd-2.4.6-90.el7.centos.x86_64 1/1 \n\nRemoved:\n httpd.x86_64 0:2.4.6-90.el7.centos \n\nComplete!\n"
]
}
- برای مطالعه بیشتر در خصوص این ماژول به آدرس اینترنتی زیر مراجعه کنید :
https://docs.ansible.com/ansible/latest/modules/yum_module.html
- همچنین برای مطالعه بییشتر در خصوص این ماژول، میتوان از دستور ansible-doc استفاده نمود.
- آزمایش شده بر روی Ansible نسخهی 2.5.1
- آزمایش شده بر روی سیستم عامل Ubuntu 18.04