在ansible 中使用变量

2019-08-01  本文已影响0人  京樂春水

目前在工作中使用ansible来部署、升级业务组件。在编写新的升级剧本时,需要使用shell来判断是否要进行下一步,这个时候就用到了ansible的变量功能。

...
- name: shell
  shell: ps -ef | grep kernel | wc -l
  register:  kernel.status

- name: update
  shell: kill -9 kernel
  when: kernel.status.stdout == "1"
...

这里使用了shell语句“ps -ef | grep kernel | wc -l”,如果kernel进程存在,则将注册一个变量“kernel.status”;接着使用ansible的when来判断变量“kernel.status”的输出,如果输出等于“1”,则执行shell语句“kill -9 kernel”。
关于变量“kernel.stauts”,可以使用debug来显示它的具体输出,其中“rc”为命令执行命令的状态,“0”表示成功,类型为数字,在使用when判断的时候,是不加引号的(判断数字是否相等);“stdout”则是命令的具体输出,在使用when判断的时候,是需要加引号的(判断字符串是否相等)。

上一篇下一篇

猜你喜欢

热点阅读