내 가능한 작업을 통해 다음과 같은지 확인하고 싶습니다.openjdk환경에 설치됩니다.
- 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": "0이 아닌 반환 코드", "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 != ""