今天继续给大家介绍Linux运维相关知识,本文主要内容是Ansible的命令模块详解。
 

一、Ansible copy模块
Ansible的copy模块用于实现Ansible设备先被控制设备上传输文件。该模块有常用的5个参数,src参数指定Ansible设备上的文件位置,dest参数指定传输目标位置,onwer参数指定传输文件的属主,group参数用于指定文件的属组,mode参数用于指定文件的权限。copy模块应用如下:

ansible exp -m copy -a "src=/root/ dest=/root/ owner=root group=root mode=0644"

二、Ansible file模块
Ansible的file模块主要用于设置Ansible被控制客户端的文件属性。file模块有2个常见参数,path参数用于指定被控客户端的文件,mode参数用于指定要被设定的属性。Ansible的file模块使用如下:

ansible exp -m file -a "path=/root/ansible.txt mode=0777"

三、Ansible stat模块
Ansible的stat模块主要用于获取被控客户端的文件属性信息。该模块主要有path参数用于指定被控客户端的文件。Ansible的stat模块使用如下:

ansible exp -m stat -a "path=/root/ansible.txt"

四、Ansible get_url模块
Ansible的get_url模块主要用于实现被控客户端从远程将文件下载到本地。该模块有四个常用参数,url参数主要用于指定被控客户端要远程下载的文件,dest参数主要指定目的文件夹,mode参数指定下载后的文件权限,force参数可以为yes或者是no。如果force参数为yes,则表示如果所下载的内容和原目录下的文件内容不一样,则下载并替换原文件,如果相同,则不进行下载;如果force参数为no,则不管目录下的同名文件是否相同,只有在目标不存在时才下载文件。在Ansible0.6版本之前,该参数默认为yes,在Ansible0.6之后,该参数默认为no。在生产环境中,一般小文件的下载选用yes。
该模块使用如下:

ansible exp -m get_url -a "url=http://nginx.org/download/nginx-1.4.7.tar.gz dest=/root/ mode=0644 force=yes"

五、Ansible yum模块
Ansible的YUM模块主要用于控制客户端采取YUM的方式安装软件,该模块有两个常用参数,name参数指定Ansible要安装的软件名称,state参数可以是latest、present、installed表示安装,removed和absent表示卸载。
Ansible的YUM模块使用如下:

ansible exp -m yum "name=tree state=installed"

六、Ansible cron模块
Ansible的cron模块主要控制被控客户端添加定时任务,该参数有三个常用参数,name表示给该定时任务命名,minute参数指定该定时任务的间隔,job指定了具体的操作。Ansible的cron模块使用如下:

ansible exp -m cron -a "name='exp' minute='*/1' job='pwd'"

七、Ansible service模块
Ansible的service模块主要用于控制被控端主机的服务开启情况。该模块有两个常用参数,name和state,name参数指定了要管理的服务名称,state参数指定了要对指定服务进行的操作,可以使started(开启)、stopped(停止)、restarted(重启)、reloaded(平滑重启)。该模块使用如下所示:

ansible -m service -a "name=mysqld state=stopped"