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