ansible服务模块和组模块使用
本篇文章主要是介绍ansible服务模块和组模块的使用。
主要模块为ansible service module和ansible group moudle,下面的内容均是通过实践得到,可以直接运行相关的代码进行测试。
注意参数均为小写。
1、服务模块使用
服务模块的参数列表如下所示:
|
参数 |
必填 |
默认值 |
选项 |
说明 |
|
Arguments |
否 |
- |
- |
参数 |
|
Enabled |
否 |
- |
Yes/no |
开机自动启动 |
|
Name= |
否 |
- |
- |
服务名称 |
|
Pattern |
否 |
- |
- |
如果服务没有响应,则ps查看是否具有指定参数的进程,有则认为服务已经启动 |
|
Runlevel |
否 |
Default |
服务启动级别(仅仅在debain系统中) |
|
|
Sleep |
否 |
- |
- |
如果服务被重新启动,则睡眠多少秒再执行停止和启动命令(restarted状态) |
|
State |
否 |
- |
running, started, stopped, restarted, reloaded |
服务的状态 |
在查看模块的参数的时候,可以使用命令:ansible-doc -s service(查看服务的帮助手册)
在使用参数的时候,name是必须写上的。
Controls services on remote hosts. Supported initsystems include BSD init, OpenRC, SysV, Solaris SMF, systemd, upstart.
在下面的代码中,ansible的配置文件中设置了询问ssh的密码,也就是每次都会出现ssh password的字样。
1.1 检查服务状态为running
无论服务处在什么状态,最后都是将服务状态设置为启动
|
[root@ansibleserver ansible]# ansible nagiosserver -m service -a "name=nagios state=running" SSH password: 192.168.1.20 | success >> { "changed": false, "name": "nagios", "state": "started" } |
当服务正在运行的时候,显示为changed为false,state显示为状态,表示为正在运行
|
[root@ansibleserver ansible]# ansible nagiosserver -m service -a "name=nagios state=running" SSH password: 192.168.1.20 | success >> { "changed": true, "name": "nagios", "state": "started" } |
当服务停止的时候,显示为changed为true,表示这个时候将服务进行了启动,状态为启动
1.2 将服务停止
|
[root@ansibleserver ansible]# ansible nagiosserver -m service -a "name=nagios state=stopped" SSH password: 192.168.1.20 | success >> { "changed": true, "name": "nagios", "state": "stopped" } |
服务为启动状态,从而将服务停止,所以changed为真,最后状态为stopped
1.3 将服务重新启动
|
[root@ansibleserver ansible]# ansible nagiosserver -m service -a "name=nagios state=restarted" SSH password: 192.168.1.20 | success >> { "changed": true, "name": "nagios", "state": "started" } |
服务不论为啥状态,都会将服务进行重启,然后changed为真,最后状态修改为启动
1.4 将服务重新加载
|
[root@ansibleserver ansible]# ansible nagiosserver -m service -a "name=nagios state=reloaded" SSH password: 192.168.1.20 | success >> { "changed": true, "name": "nagios", "state": "started" } |
将服务进行重新加载,差不多就是重新启动服务。
1.5 当不存在服务的时候
|
[root@ansibleserver ~]# ansible -i hosts kel -m service -a "name=nagios state=stopped" SSH password: 192.168.1.60 | FAILED >> { "failed": true, "msg": "cannot find 'service' binary or init script for service, possible typo in service name?, aborting" } |
表示在服务器上不存在此服务,报错中信息表示可能服务的名称写错。
1.6 将服务设置为开机启动
|
[root@ansibleserver ansible]# ansible nagiosserver -m service -a "name=nagios enabled=no" SSH password: 192.168.1.20 | success >> { "changed": true, "enabled": false, "name": "nagios" } [root@ansibleserver ansible]# ansible nagiosserver -m service -a "name=nagios enabled=yes" SSH password: 192.168.1.20 | success >> { "changed": true, "enabled": true, "name": "nagios" } |
主要使用的选项为enabled,设定为yes表示为开机启动,设定为no表示开机不启动
1.7 添加额外的参数args
|
[root@ansibleserver ansible]# ansible nagiosserver -m service -a "name=network state=restarted args=eth0" SSH password: 192.168.1.20 | success >> { "changed": true, "name": "network", "state": "started" } |
表示仅仅只重启eth0的网络。
1.8 pattern的使用
|
[root@ansibleserver ansible]# ansible nagiosserver -m service -a "name=nagios pattern=/usr/local/nagios//bin/nagios state=restarted" SSH password: 192.168.1.20 | success >> { "changed": true, "name": "nagios", "state": "started" } |
在使用pattern的时候,表示进程运行的基础是pattern,例如上面的例子中,nagios服务启动是基于/usr/local/nagios//bin/nagios,在查询的时候使用是的ps
2、组模块的使用
组模块主要对应的命令为groupadd,groupdel,groupmod。
|
参数 |
必填 |
默认 |
选项 |
说明 |
|
Gid |
非 |
组的gid |
||
|
Name |
是 |
组名称 |
||
|
State |
非 |
Present |
Present/absent |
添加删除组 |
|
System |
非 |
非 |
Yes/no |
是否属于系统组 |
2.1 添加删除组
|
[root@ansibleserver ansible]# ansible pythonserver -m group -a "name=kellyse state=absent" SSH password: 192.168.1.60 | success >> { "changed": true, "name": "kellyse", "state": "absent" } [root@ansibleserver ansible]# ansible pythonserver -m group -a "name=kelly state=present" SSH password: 192.168.1.60 | success >> { "changed": true, "gid": 501, "name": "kelly", "state": "present", "system": false } |
主要就是用来删除一个组,然后添加一个组
2.2 指定gid等创建组
|
[root@ansibleserver ansible]# ansible pythonserver -m group -a "name=kelly gid=550 system=yes state=present" SSH password: 192.168.1.60 | success >> { "changed": true, "gid": 550, "name": "kelly", "state": "present", "system": true } |
指定组的gid为550,并且创建为系统组,在创建为系统组的时候,表示创建组的GID在指定的范围之内,有的系统表示GID在500以下的为系统组
ansible服务模块和组模块使用的更多相关文章
- CentOS7Linux中自动化运维工具Ansible的安装,以及通过模块批量管理多台主机
使用自动化运维工具Ansible集中化管理服务器 Ansible概述 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具.它用Python写成,类似于saltstack和Puppet ...
- ansible学习系列2-ansible常用模块使用
1. 查看支持的模块 [root@localhost ~]# ansible-doc -l 这里我们看下ansible的支持的模块个数 [root@localhost ~]# ansible-doc ...
- ansible学习基础知识和模块(一)
基础知识补充: 常用自动化运维工具 Ansible:使用python来开发的,无需设置Agentless(代理),一般管理几百台.与ssh的方式也不一样,ssh是基于c/s模式(客户端+服务器)来使用 ...
- Ansible安装部署以及常用模块详解
一. Ansible 介绍Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于py ...
- ansible环境部署及常用模块总结 - 运维笔记
一. Ansible 介绍Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于py ...
- Ansible安装部署及常用模块详解
Ansible命令使用 Ansible语法使用ansible <pattern_goes_here> -m <module_name> -a <arguments> ...
- Ansible基础配置与常用模块使用
环境介绍: Ansible服务端IP:192.168.2.215 Ansible客户端IP:192.168.2.216.192.168.2.218.192.168.2.113 一.创建Ansibl ...
- 10.Python之Ansible自动化运维常用模块
Ansible中文权威文档:http://www.ansible.com.cn/docs/ Ansible从入门到精通:https://www.bilibili.com/video/av3361175 ...
- ansible 的安装及常见模块使用
ansible 基础keys的ssh协议配置的 特性:幂等性:一个任务执行1遍和执行n遍效果一样. ansible是个管理软件不是服务,不需要长期运行 一.通过epel源安装ansible, 1.下 ...
随机推荐
- Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境
Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境 !!OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用Ope ...
- [IT] 关闭笔记本的蜂鸣提示
很久没有写什么了,今天开过workshop, 稍微放松些, 一时动念上来看看,没想到最近一篇都是2010年的了, 不得不感叹时光流逝之快啊. 那就写点什么吧. 现在每天工作用的DELL笔记本,性能差强 ...
- 基于矩阵模式的 Web 软件测试手段(转)
http://www.ibm.com/developerworks/cn/web/1410_dujing_matrixfortest/ 在 Web 测试中,我们经常针对某个测试点进行多种场景测试,或者 ...
- JVM的相关知识整理和学习--(转载)
JVM是虚拟机,也是一种规范,他遵循着冯·诺依曼体系结构的设计原理.冯·诺依曼体系结构中,指出计算机处理的数据和指令都是二进制数,采用存储程序方式不加区分的存储在同一个存储器里,并且顺序执行,指令由操 ...
- java 求取某一段时间内的每一天、每一月、每一年
1.求取某一段时间内的每一天 Date date0 = new SimpleDateFormat("yyyy-MM-dd").parse("2014-01-01" ...
- pl/sql programming 03 语言基础
PL/SQL 块结构 最小的有意义的代码单元叫做 块(block). 一个块是一组代码, 这个块给出了执行边界, 也为变量声明和异常处理提供了作用范围, pl/sql 准许我们创建匿名块和命名块, 命 ...
- JAVA设计模式之【抽象工厂模式】
1.产品接口,电视和空调 public interface Television // 电视接口 { public void play(); } public interface AirConditi ...
- hdu1052(田忌赛马 贪心)
好坑的一道题,不过确实是贪心的一道好题,想了好久一直无法解决平局的情况. 参考了别人的思路,然后结合了自己的想法,总算是想出来了. 这题有些步骤是必须要执行的,有四个步骤 一.当期状态田忌的最慢的马 ...
- R语言实战读书笔记(三)图形初阶
这篇简直是白写了,写到后面发现ggplot明显更好用 3.1 使用图形 attach(mtcars)plot(wt, mpg) #x轴wt,y轴pgabline(lm(mpg ~ wt)) #画线拟合 ...
- Maven之 环境搭建
这几天开始了maven的学习,看了孔浩老师的视频(http://pan.baidu.com/s/1o7bg2h0),以及黄勇大牛的博客(http://my.oschina.net/huangyong/ ...