用于搜索单词的 Ansible 任务

用于搜索单词的 Ansible 任务

通过我的 ansible 任务,我想检查是否开放jdk安装在环境上。

- name: Check if java is installed on environment
   shell: rpm -qa | grep 'openjdk'
   register: result

结果我失败了,因为 grep 没有找到任何东西,返回码是 1。

任务 [xms_webapp:检查环境中是否安装了 java] ****************** 致命:[10.230.14.21]:失败! => {“更改”:true,“cmd”:“rpm -qa | grep 'openjdk'”,“delta”:“0:00:00.721086”,“end”:“2019-02-20 12:17: 40.253171", "msg": "非零返回码", "rc": 1, "start": "2019-02-20 12:17:39.532085", "stderr": "", "stderr_lines": [ ], "stdout": "", "stdout_lines": []} 要重试,请使用: --limit @/opt/ngpe/share/playbooks/xms/xms.retry

作为替代方法,我正在尝试使用较少的命令和他的 -p 选项来使用模式。

rpm -qa > /tmp/openjdk.txt | less -p /'\w[openjdk]' /tmp/openjdk.txt

但结果是“找不到模式”。

当我用 vim 打开文件并输入:/openjdk

我发现有通缉字。

plymouth-scripts-0.8.3-29.el6.x86_64
lm_sensors-libs-3.1.1-17.el6.x86_64
vim-minimal-7.4.629-5.el6_8.1.x86_64
adl-release-13-03.00.09.el6.noarch
lua-5.1.4-4.1.el6.x86_64
adl-pmc3-3.1-04.00.14.el6.x86_64
libidn-1.18-2.el6.x86_64
module-init-tools-3.9-26.el6.x86_64
libpciaccess-0.13.4-1.el6.x86_64
libgpg-error-1.7-4.el6.x86_64
java-1.8.0-**openjdk**-1.8.0.191.b12-0.el6_10.x86_64
cpio-2.10-13.el6.x86_64
p11-kit-0.18.5-2.el6.x86_64
cvs-1.11.23-16.el6.x86_64
libutempter-1.1.5-4.1.el6.x86_64
checkpolicy-2.0.22-1.el6.x86_64
perl-Expect-1.21-3.el6.noarch
which-2.19-6.el6.x86_64
hpacucli-9.40-12.0.x86_64
cma_server-1.2-00.B03.noarch
pth-2.0.7-9.3.el6.x86_64
p11-kit-trust-0.18.5-2.el6.x86_64
oddjob-0.30-5.el6.x86_64

有人能告诉我出了什么问题吗?

答案1

ignore_errors: yes我通过添加ansible 任务解决了这个问题。

- name: Check if java is installed on environment
   shell: rpm -qa | grep 'openjdk'
   ignore_errors: yes
   register: result

因为我接下来的任务是检查注册结果。

- name: Exclude java from updating to newer version, if java is installed
   lineinfile:
     path: /etc/yum.conf
     line: exclude=java*
     insertafter: [main]
   when: result.stdout != ""

相关内容