在Ansible中,如何检查是否安装了特定版本的MySQL?

Jef*_*man 2 ansible

我有一个Ansible任务,它包装了一个别人维护的相当复杂的shell脚本.此shell脚本安装了大量自定义的Web堆栈,其中许多组件都是从源代码编译的.

shell脚本经常会将各种组件更新为更新的版本.发生这种情况时,我希望管理这些服务的conf文件的Ansible模板任务失败,以便我可以手动查看更改的内容.

使用Ansible,如何检查已安装的某些版本并将其注册为我可以在以后的任务中使用的变量?

示例:MariaDB是从源代码编译的,所以我想创建一个等于输出的Ansible变量mysql --version.

maq*_*que 5

一种选择是使用ansible命令并将其输出到变量

tasks:
   - command: mysql --version
     name: ls
     register: mysql_version
   - command: service mysql stop
     when: mysql_version.stdout_lines == 'mysql ver 14.14'
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅此链接http://docs.ansible.com/playbooks_variables.html#id18