Ansible软件类型模块介绍与实践

yum模块儿功能说明

功能说明:yum包管理模块

name:需要安装软件包名称信息

state:是否安装(present  or installed latest),或者移除(absent or removed)一个包

[root@localhost ~]# ansible all -m shell -a "rpm -qa nmap warn=false"   #首先检查系统是否安装了nmap软件包,若未安装,可以使用ansible模块中的yum模块安装nmap软件包
192.168.146.110 | CHANGED | rc=0 >>
nmap-6.40-19.el7.x86_64192.168.146.110 | CHANGED | rc=0 >>
[root@localhost ~]# ansible all -m yum -a "name=nmap state=installed"
192.168.146.110 | SUCCESS => {         #绿色的表示已经安装过了
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "msg": "", 
    "rc": 0, 
    "results": [
        "2:nmap-6.40-19.el7.x86_64 providing nmap is already installed"
    ]
}
192.168.146.120 | CHANGED => {       #黄色的表示现在正在安装
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "changes": {

------------------------------------------------------------------------------------------

省略部分安装信息

------------------------------------------------------------------------------------------

cat.x86_64 2:6.40-19.el7 \n\nComplete!\n"
    ]
}[root@localhost ~]# ansible all -m shell -a "rpm -qa nmap warn=false"
192.168.146.120 | CHANGED | rc=0 >>
nmap-6.40-19.el7.x86_64
192.168.146.110 | CHANGED | rc=0 >>
nmap-6.40-19.el7.x86_64

Ansible网络服务类型模块介绍与实践

service/systemd 模块功能说明

功能说明:Service服务管理用于centos6及以前的系统,而systemd命令应用于centos7系统

name:定义所要管理的名称

enable:确认是否启动时运维指定的服务,对于state或enable参数在管理服务时至少需要一个

state:started/stopped两个参数属于服务激活操作命令,除非必要,否则不用经常运行这两个参数。restarted重启操作将始终支持的服务,reloaded表示进行平滑重启

管理crond定时任务

service/systemed模块管理crond定时任务服务(重启、停止、开启)

[root@localhost ~]# ansible wangju -m service -a "name=crond state=stopped enabled=no"      #停掉crond服务,并取消开机自启动
192.168.146.110 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "enabled": false,

---------------------------------------------------------------------------------------------------------------

省略部分输出内容

---------------------------------------------------------------------------------------------------------------

[root@localhost ~]# ansible wangju -m shell -a "systemctl status crond"    #查看当前crond的状态
192.168.146.110 | FAILED | rc=3 >>
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

------------------------------------------------------------------------------------------------------------

省略部分内容

------------------------------------------------------------------------------------------------------------

[root@localhost ~]# ansible wangju -m systemd -a "name=crond enabled=yes state=started"     #开启crond服务,并将其加入开机自启动
192.168.146.110 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "enabled": true,

--------------------------------------------------------------------------------------------------------------

省略部分输出内容

-------------------------------------------------------------------------------------------------------------

[root@localhost ~]# ansible wangju -m shell -a "systemctl status crond"       #查看当前crond的状态
192.168.146.110 | CHANGED | rc=0 >>
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since 四 2021-05-20 15:37:16 CST; 14s ago
 Main PID: 31919 (crond)

-------------------------------------------------------------------------------------------------------------

省略部分输出内容

-------------------------------------------------------------------------------------------------------------

cron模块功能说明

功能说明:管理定时任务条目信息模块

minute:运行job任务的分钟时间信息

hour:运行job任务的小时时间信息

day:运行job任务的日期时间信息

mouth:运行job任务的月份时间信息

weekday:运行job任务的星期时间信息

job:执行相应的命令,如果env被设置,将作为环境变量的值,但前提是state=present定时任务所要完成的操作

name:定时任务条目的描述信息;如果env被设定了,描述信息将为环境环境变量信息。前提是定时任务状态为关闭状态。注意:如果名称没有被指定,并且定时任务状态为开启,那么新的定时任务将总被创建,不管这个定时任务是否存在。设定定时任务描述信息,如果不设定会创建默认描述,但默认描述任务会重复创建多个,不会去重

state:确认job或环境变量是开启或是关闭;即创建定时任务或删除定时任务

disabled:只影响状态是开启状态的定时任务条目

user:指定修改与编写定时任务的用户信息

设置时间同步定时任务

[root@localhost ~]# ansible wangju -m cron -a "name='wangju' job='/usr/sbin/ntpdate ntp3.aliyun.com >/dev/null 2>&1' minute=*/5"  #创立时间同步任务
192.168.146.110 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "envs": [], 
    "jobs": [
        "wangju"
    ]
}[root@localhost ~]# ansible wangju -m shell -a "crontab -l|tail -2"   #差看时间同步任务
192.168.146.110 | CHANGED | rc=0 >>
#Ansible: wangju
*/5 * * * * /usr/sbin/ntpdate ntp3.aliyun.com >/dev/null 2>&1[root@localhost ~]# ansible wangju -m cron -a "name='wangju' state=absent"     #删除定时任务
192.168.146.110 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "envs": [], 
    "jobs": []
}

mount模块功能说明

功能说明:挂载及卸载文件系统(本地或远程)

src:要挂载的设备

path:挂载点,如/mnt

fstype:挂载的文件系统类型

opts:挂载的参数选项

state:present:开机挂载。仅将挂载的配置写入 /etc/fstab;mounted 挂载设备,并将配置写入/etc/fstab;unmounted 卸载设备,不会清除/etc/fstab写入的配置;absent 卸载设备,会清理/etc/fstab写入的配置

 Ansible用户和组类型模块介绍与实践

user模块功能说明

功能说明:管理系统用户

create_home:创建家目录,除非设置no,则不创建家目录
group:创建用户组(主组)
name:创建用户的名字
password:创建用户的密码
uid:创建用户的UID
shell:创建用户的登录shell

创建test用户,UID设置为8888 ,不能登录不创建家目录

[root@localhost ~]# ansible wangju -m user -a "name=test uid=8888 shell=/sbin/nologin create_home=no"
192.168.146.110 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "comment": "", 
    "create_home": false, 
    "group": 8888, 
    "home": "/home/test", 
    "name": "test", 
    "shell": "/sbin/nologin", 
    "state": "present", 
    "system": false, 
    "uid": 8888
}[root@localhost ~]# ansible wangju -m shell -a "tail -1 /etc/passwd"
192.168.146.110 | CHANGED | rc=0 >>
test:x:8888:8888::/home/test:/sbin/nologin

group模块功能说明

功能说明:管理系统用户

name:指定创建的组名

gid:指定组的GID

state:移除远端主机的组用absent,创建远端主机的组默认用present

[root@localhost ~]# ansible wangju -m group -a "name=sa gid=9999"    #创建用户组,并设置gid
192.168.146.110 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "gid": 9999, 
    "name": "sa", 
    "state": "present", 
    "system": false
}
[root@localhost ~]# ansible wangju -m shell -a "tail -1 /etc/group"   #检查用户组是否创建成功
192.168.146.110 | CHANGED | rc=0 >>
sa:x:9999:

Ansible 模块非常众多,而且每个模块的功能各不相同,想要对Ansible服务有更多的了解,就可以从他的模块入手。Ansible中的模块其实是对Linux命令的封装。