【发布时间】:2021-05-05 11:01:45
【问题描述】:
y 代码 -
# Update apt cache reposoitary
- name: Update apt cache
command: apt-get update
register: return
# Debug msg
- debug:
msg: '{{ return }}'
result.stdout_lines
"stdout_lines": [
"Hit:1 http://server/pub/mirrors/ubuntu bionic InRelease",
"Get:2 http://server/pub/mirrors/ubuntu bionic-updates InRelease [88.7 kB]",
"Get:3 http://server/pub/mirrors/ubuntu bionic-backports InRelease [74.6 kB]",
"Hit:4 https://download.package.com/infrastructure_agent/linux/apt bionic InRelease",
"Hit:5 https://archive.repo.package.com/apt/ubuntu/18.04/amd64/2018.3 bionic InRelease",
"Get:6 http://server/pub/mirrors/ubuntu bionic-security InRelease [88.7 kB]",
"Hit:7 http://apt.package123.org/pub/repos/apt bionic-pgdg InRelease",
"Fetched 252 kB in 1s (222 kB/s)",
"Reading package lists..."
我想考虑是否有任何一行有 2 个字符串“Err”和“package”,这意味着它无法从网站更新 apt 缓存 - https://download.package.com/
我在想下面这样的事情:
changed_when: >
(("Get" in return.stdout_lines) and
("package" in ret.stdout_lines)) or
(("Hit" in return.stdout_lines) and
("package" in ret.stdout_lines))
failed_when: >
("Err" in return.stdout_lines) and
("package" in ret.stdout_lines)
这里的问题是 2 个字符串是查找所有行还是逐行查找? 如果是这样,如何逐行检查。
【问题讨论】:
标签: automation ansible yaml devops