Ansible 常用模块列表
模块名 | 模块描述 | 状态机制 | 参数简述 |
---|---|---|---|
authorized_key | 管理终端设备用户鉴权密钥 | 是 | user={用户名} key={密钥本地路径} |
copy | 本地文件复制到终端 | 是 | src={文件本地路径} dest={终端目标路径} owner={属组} user={用户} |
cron | 管理终端计划任务 | 是 | name={name标签} job={任务命令} [month/day/hour/minute] 时间属性 |
file | 管理终端文件 | 是 | path={终端路径} state={操作类型} owner={属组} user={用户} |
get_url | 终端下载文件 | 是 | url={url} dest={保存路径} checksum={完整性校验} timeout={超时时间} headers={headers} |
lineinfile | 管理终端指定文件内容 | 是 | dest={文件路径} line={写入行} regexp={匹配规则} |
replace | 正则替换文件内容 | 是 | path={文件路径} regexp={匹配规则} replace={待写入内容} |
script | 在终端执行本地脚本 | 否 | {本地脚本路径} {参数} |
shell | 在终端执行shell命令 | 否 | {shell命令} 完整的shell命令行 |
synchronize | rsync同步本地文件到终端 | 是 | src={源} dest={目标} archive={归档} recursive={递归} owner={属组} |
template | 渲染模板到终端 | 是 | src={模板路径} dest={渲染目标路径} owner={用户} group={属组} mode={权限} |
unarchive | 解压本地压缩包到终端 | 否 | src={本地路径} dest={目标路径} owner={用户} group={属组} |
yum | yum安装程序 | 是 | name={软件名} state={操作类型} [present/latest/absent/installed/removed] |
与salt的模块映射
Ansible | Salt | args | Comment |
---|---|---|---|
authorized_key | ssh_auth.manage | ssh_keys:{key} user:{user} enc:{加密方式} | - |
copy | file.managed | name:{文件路径} source={fileserver地址} [user/group/mode] | - |
cron | cron | name:{任务} user:{用户} identifier: None必选 [minute/day…] | 需判断是否添加 identifier: None,首行需添加Salt管理标记 |
file | file [absent/directory/manager/touch…] | 具体模块实现不同的state | - |
get_url | file.managed | name:{文件路径} source={fileserver地址} source_hash: {必填,基于长度判断类型} [user/group/mode] | - |
lineinfile | file.place、file.append | 基于是否使用正则来确认需要使用的模块 | - |
replace | file.place | name:{name} pattern:{regexp} repl:{替换内容} | - |
script | cmd.script | source:{资源url} template:{渲染执行} cwd:{执行路径,默认/root} user:{user} shell:{/bin/bash} name:{cmd参数或资源url不存在的情况下使用} | 常规脚本建议拆分使用cmd.run |
shell | cmd.run | name:{command} onlyif:{前置条件} | - |
synchronize | rsync.synchronized | name:{目标路径} source:{源} prepare:{不存在时创建} delete:{是否删除多余文件} force:{强制删除非空文件夹}… | 删文件风险,慎用 |
template | file.managed | args如上 template:{jinja} defaults/context: {数据源,context优先级高}… | 需注意参数支持情况 |
unarchive | file.managed或archive.extracted | name:{dest path} source:{source path} user:group | |
yum | pkg.[installed/latest/removed…] | disablerepo:{忽略repo} name:{pkg name} | pkg.name 需要给出安装包的正确名称,如:vim -> vim-enhanced |