说我想要执行条件操作;到
到目前为止,我可以执行以下操作:
- name: install updated glibc
yum: name=glibc-2.12-1.166.el6_8.0.x86_64 state=present
sudo: yes
notify:
- stop mongodb
- restart vm
我有处理程序来执行后续操作,但我想在更新glibc之前停止mongodb。如您所见,我无法执行所需的订单。
我正在查看ansible文档和堆栈溢出板,但我找不到我想要的如何实现这一点。这能否在ansible中完成? ansible是否应该用于单个更新,例如这些?
谢谢!
答案 0 :(得分:0)
此处唯一的选择是先前比较版本。因此,您需要手动检查安装的版本以及应安装的版本,如果不同,请执行操作。这是我如何为git做过一次这样的例子,很快就为glibc重写了。它可能需要更多的工作,但应该知道如何做到这一点。
---
- name: Detect latest available glibc version
shell: "`which yum` info glibc | grep Version | rev | cut -d' ' -f1 | rev"
changed_when: false
register: glibc_install_latest_version
- name: Detect currenty installed glibc version
shell: "ldd --version | head -n 1 | cut -d' ' -f4"
changed_when: false
register: glibc_install_current_version
- name: Stop mongo!
...
when: glibc_install_latest_version.stdout != glibc_install_current_version.stdout
- name: "Install latest version of glibc"
yum:
name: glibc
state: latest
update_cache: yes
become: yes
when: glibc_install_latest_version.stdout != glibc_install_current_version.stdout
...
重新启动仍然可以由您的处理程序触发。