• 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以下的为系统组


    for linux and python
  • 相关阅读:
    【mysql5.6】数据类型
    【leetcode】Multiply Strings(middle)
    创建JDBC模板简化代码、JDBC应用的事务管理以及连接池的作用
    IE8.0登录Oracle EBS后报Oracle error 1403错
    三联动 支持ie6,ie7 省,市,区
    任正非最新訪谈: 假设企业收留这类人, 距离死亡就不远了
    向量空间模型实现文档查询(Vector Space Model to realize document query)
    前端开发的经验
    《大话操作系统——做坚实的project实践派》(7)
    【整理】nand相关
  • 原文地址:https://www.cnblogs.com/kellyseeme/p/5525088.html
Copyright © 2020-2023  润新知