实例学习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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年05月03日 08时14分41秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
ROS相关知识
2019-04-30
单目深度估计 monodepth2模型 代码
2019-04-30
位图索引Bitmap indexes
2019-04-30
YOLO算法(二)—— Yolov2 & yolo9000
2019-04-30
YOLO算法(三)—— Yolov3 & Yolo系列网络优缺点
2019-04-30
Python的__future__模块
2019-04-30
计算机视觉中的cost-volume的概念具体指什么(代价体积)
2019-04-30
启发函数heuristic 与 A*
2019-04-30
Image Pyramid(图像金字塔)
2019-04-30
Oracle 作业记录
2019-04-30
putty连接AWS配置(multimedia project)
2019-04-30
Hourglass Network 沙漏网络 (pose estimation姿态估计)
2019-04-30
OpenCV实战(二)——答题卡识别判卷
2019-04-30
目标检测神经网络的发展历程(52 个目标检测模型)
2019-04-30