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_64

192.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命令的封装。

posted on 2021-05-20 20:59  与所有美好不期而遇  阅读(875)  评论(0)    收藏  举报