如何使Ansible在未安装软件包的情况下执行shell脚本
发布时间:2020-12-15 09:07:17 所属栏目:安全 来源:网络整理
导读:如果没有安装(rpm)包,我如何让Ansible执行一个shell脚本?是不是有可能利用yum模块? 我不认为yum模块将有助于在这种情况下。它目前有3个州:不在,现在和最新。因为它听起来像你不想实际安装或删除包(至少在这一点上),那么你需要在两个手动步骤。第一个任
如果没有安装(rpm)包,我如何让Ansible执行一个shell脚本?是不是有可能利用yum模块?
我不认为yum模块将有助于在这种情况下。它目前有3个州:不在,现在和最新。因为它听起来像你不想实际安装或删除包(至少在这一点上),那么你需要在两个手动步骤。第一个任务将检查包是否存在,然后第二个任务将根据第一个命令的输出调用一个命令。
如果使用“rpm -q”来检查包是否存在,那么对于存在的包,输出将如下所示: # rpm -q httpd httpd-2.2.15-15.el6.centos.1.x86_64 并像这样如果包不存在: # rpm -q httpdfoo package httpdfoo is not installed 所以你的ansible任务看起来像这样: - name: Check if foo.rpm is installed command: rpm -q foo.rpm register: rpm_check - name: Execute script if foo.rpm is not installed command: somescript when: rpm_check.stdout.find('is not installed') != -1 rpm命令也将退出,如果程序包存在,则返回0,如果程序包未找到,则返回1,因此另一种可能性是使用: when: rpm_check.rc == 1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |