实例学习Ansible系列(18)服务管理的几种方式
发布日期:2021-06-30 20:16:03 浏览次数:2 分类:技术文章

本文共 1788 字,大约阅读时间需要 5 分钟。

Ansible中使用service等模块进行服务的管理,也可直接使用非幂等性的模块诸如shell等进行控制,这篇文章介绍常用的使用示例。

示例1: 使用service停止单个服务

比如停止etcd服务,示例如下

## stop etcd service- name: stop etcd service  service:    name:  etcd    state: stopped

示例2: 使用service停止多个服务

比如停止kubernetes的master相关的服务,示例如下

## stop kubernetes master service- name: stop master service  service:    name: "{
{ item }}" state: stopped with_items: - kube-scheduler - kube-controller-manager - kube-apiserver

示例3: 无视错误

如果当当前机器上不存在service文件时,可能会出现如下类似的错误信息

fatal: [localhost]: FAILED! => {"changed": false, "msg": "Could not find the requested service flanneld: host"}

这种情况下可以使用ignore_errors来对应,但是缺点在于错误不会消失,只会显示出来并无视

## stop flannel service- name: stop flannel service  service:    name:  flanneld    state: stopped  ignore_errors: true

这个问题在如下的stackoverflow链接中也有类似的讨论,个人认为这并不算是一个XY问题,而且讨论问题是不是XY问题本身就很无聊。Ansible中虽然是基于状态的控制,但是Service不存在的这种情况是现实存在的情况,必须让已有的使用方式发生调整算不上一个好方法。

  • https://stackoverflow.com/questions/51765306/using-ansible-to-stop-service-that-might-not-exist

示例4: 使用shell或者command模块

使用shell或者command,结合脚本书写的一些小技巧(实际上就是将包含简单逻辑的内容写在一行,这种不推荐的做法在很久之前就存在,一直不被认可,一直顽强地存在着,比如既有模块无法满足需求或者写起来很麻烦时,这个至少就能用),比如可以使用如下示例方式:

## stop services- name: stop services  shell: "(! chkconfig kube-scheduler || systemctl stop kube-scheduler ) \          && (! chkconfig kube-controller-manager || systemctl stop kube-controller-manager ) \          && (! chkconfig kube-apiserver || systemctl stop kube-apiserver ) \          && (! chkconfig etcd || systemctl stop etcd ) \          && (! chkconfig flanneld || systemctl stop flanneld  ) \          && (! chkconfig docker || systemctl stop docker )"

其他处理方式:

  • 方法1: service用于管理service文件已经存在的情况,在hosts部分进行切割,保证service文件不存在的情况此task不会执行
  • 方法2: 使用两个task来解决,前面一个task判断是否存在,后面一个task根据结果进行继续执行,但是这种方式也不是很建议,明显是按照脚本方式来写Ansible了

转载地址:https://liumiaocn.blog.csdn.net/article/details/103708346 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:实例学习Ansible系列(19)drop-if-exist不出错的写法
下一篇:Android应用构建:16:使用gradle和Android SDK镜像构建安卓应用

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年05月03日 08时14分41秒