Ansible yum module


  • با استفاده از این ماژول می‌توان مدیریت کامل و جامعی بر روی ابزار 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

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

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