热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

只有在需要升级时才能以可靠的方式停止服务

如何解决《只有在需要升级时才能以可靠的方式停止服务》经验,为你挑选了1个好方法。

在一个ansible playbook中,如果需要升级,我想停止MariaDB(从我的情况下,从RPM包中重新启动并不总是有效).我对ansible很新.

我想出了这个:

- name: "Check if MariaDB needs to be upgraded"
  shell: "yum check-update MariaDB-server|grep MariaDB|wc -l"
  register: needs_update

- name: "Stop mysql service"
  service:
  name: mysql
  state: stopped
when: needs_update.stdout == "1"

有没有更好的方法来执行此操作然后执行shell命令?运行时,我收到警告:

TASK [mariadb_galera : Check if MariaDB needs to be upgraded]    ******************
changed: [139.162.220.42] => {"changed": true, "cmd": "yum check-update MariaDB-server|grep MariaDB|wc -l", "delta": "0:00:00.540862", "end": "2017-03-01 13:03:34.415272", "rc": 0, "start": "2017-03-01 13:03:33.874410", "stderr": "", "stdout": "0", "stdout_lines": ["0"], "warnings": ["Consider using yum module rather than running yum"]}
 [WARNING]: Consider using yum module rather than running yum

谢谢!



1> Konstantin S..:

您可以隐藏警告:

- name: "Check if MariaDB needs to be upgraded"
  shell: "yum check-update MariaDB-server|grep MariaDB|wc -l"
  args:
    warn: false
  register: needs_update

或者你可以欺骗Ansible执行yum任务check_mode:

- name: "Check if MariaDB needs to be upgraded (CHECK MODE!)"
  yum:
    name: MariaDB-server
    state: latest
  check_mode: yes
  register: needs_update_check

- name: "Stop mysql service"
  service:
    name: mysql
    state: stopped
  when: needs_update_check | changed

请在使用前测试此代码.


推荐阅读
author-avatar
朱泊潇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有