ansible模块及语法

Posted dahuige

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible模块及语法相关的知识,希望对你有一定的参考价值。

常用模块详解

模块说明及示例:

1.ping模块ping模块

主要用于判断远程客户端是否在线,用于ping本身服务器,返回值是changed、ping
示例 ansible clu -m ping

2.Ansible command模块是Ansible默认模块

主要用于执行Linux基础命令,可以执行远程服务器命令执行、任务执行等操作。
但command模块不支持变量、重定向、管道符等,这些操作需要用shell模块执行
command模块使用详解:
chdir:执行命令前,切换到目录
creates:当该文件存在时,不执行该步骤
executable:切换shell来执行命令,需要使用命令的绝对路径
free_from:需要执行的脚本,一般使用Ansible的-a参数代替。
removes:当该文件不存在时,不执行该步骤
warn:如果在ansible.cfg中存在告警,如果设定了false,不会告警该行
示例ansible ansible-demo3 -m command -a "ls"
(command执行linux命令有局限性,最好使用shell替代 )

3.Ansible copy模块

主要用于文件或者目录复制,支持文件、目录、权限、用户组功能
copy模块使用详解:
src:Ansible端源文件或者目录,空目录不复制
content:用来替代src,用于将指定文件的内容复制到远程文件内
dest:客户端目标目录或者文件,需要绝对路径
backup:复制之前,先备份远程节点上的原始文件
directory_mode:用于复制目录,新建的文件会被复制,而旧的不会被复制
follow:支持link文件复制
force:覆盖远程主机不一致的内容
group:设定远程主机目录的组名
mode:设定远程主机文件及目录的权限
owner:设定远程主机目录的用户名
示例
ansible clu -m copy -a “src=/root/1.txt dest=/soft/2.txt group=root owner=root mode=755”

4.Ansible yum模块

主要用于软件的安装、升级、卸载,支持rpm软件包的管理
yum模块使用详解:

conf_file:设置远程yum执行时所依赖的yum配置文件
disable_gpg_check:安装软件包之前是否检查gpg key
name:需要安装的软件名称,支持软件组安装
update_cache:安装软件之前更新缓存
enablerepo:指定repo源名称
skip_broken:跳过异常软件节点
state:软件包状态,包括installed、present、latest、absent、removed
present, installed是指安裝套件,而latest指安裝最新的套件,也就是使用 yum mirror 上最新的版本。
absent, removed 没有什么区别
示例ansible clu -m yum -a “name=http state=latest”

5.Ansible user模块

主要用于操作系统用户、组、权限、密码等操作
user模块使用详解:
system:默认创建为普通用户,为yes则创建系统用户
append:添加一个新的组
comment:添加描述信息
createhome:给用户创建家目录
force:强制删除用户
group:创建用户主组
groups:将用户加入组或者附属组添加
home:指定用户的家目录
name:表示状态,是否create、remove、modify
password:指定用户的密码,为加密密码
remove:删除用户
shell:设置用户的shell登录环境
uid:设置用户ID
update_password:修改用户密码
state:用户状态,默认为present,表示新建用户
示例:ansible hadoop -m user -a "name=dba groups=admins,dbagroup append=yes home=/home/dba shell=/bash/shell state=present"

6. setup模块

主要用于获取主机信息,在playbooks里经常会用到的一个参数gather_facts就与该模块相关。setup模块下经常使用的一个参数是filter参数,具体使用示例如下(由于输出结果较多,这里只列命令不写结果)
示例:
ansible 10.212.52.252 -m setup -a ‘filter=ansible_*_mb‘   ansible host1 -m setup -a "filter=ansible_all_ipv4_addresses"
(由于ansible执行剧本执行会去获取主机参数,对执行速度会有影响,可以使用gather_faces去进行预先缓存)

7.file模块

主要用于远程主机上的文件操作,file模块包含如下选项:
force:需要在两种情况下强制创建软链接,一种是源文件不存在但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no
group:定义文件/目录的属组
mode:定义文件/目录的权限
owner:定义文件/目录的属主
path:必选项,定义文件/目录的路径
recurse:递归的设置文件的属性,只对目录有效
src:要被链接的源文件的路径,只应用于state=link的情况
dest:被链接到的路径,只应用于state=link的情况
state: :如果目录不存在,创建目录
file:即使文件不存在,也不会被创建
link:创建软链接
hard:创建硬链接
touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间
absent:删除目录、文件或者取消链接文件
使用示例:
ansible test -m file -a "path=/root/1.txt state=file/directory”

8.cron模块(计划任务)

用于定时执行任务

相关参数:minute、hour、day、month、weekday (计划时间默认为*)

 name:必须 任务描述

 job:任务。要加引号(statepresent - 创建 adsent - 删除)

 

9.service模块

用于管理服务

name:服务名称

state:服务执行操作(started、stopped、restarted)

enable:自启动(yes)

runlevel:运行级别

ansible host1 -m service -a "name=nginx state=started enabled=yes"

 

10.group(管理用户组)

用于创建修改用户组

name:组名称

gid:指定组gid

state:absent不存在

 







































































以上是关于ansible模块及语法的主要内容,如果未能解决你的问题,请参考以下文章

Ansible安装部署及常用模块详解

ansible概述及各模块应用

ansible概述及各模块应用

ansible概述及各模块应用

ansible概述及各模块应用

Ansible概述及常用命令模块