前言

ansible内置了很多模块,常用的并不多,可以通过ansible -l命令列出所有模块,使用 ansible-doc module-name 查看指定模块的帮助文档,例如:ansible-doc command

ping模块

主要作用

判断远程客户端是否在线。没有参数

示例

ansible all -m ping

command模块

主要作用

执行Linux基础命令

使用详解

  • chdir:执行命令前,则不执行该步骤
  • creates:当该文件存在时,则不执行该步骤
  • executable:换用shell环境执行命令
  • free_form:需要执行的脚本
  • removes:当该文加不存在时,则不执行该步骤
  • warn:若在Ansible.cfg中存在告警。如果false,则不会警告此行。
  • 可以使用-a加要执行的命令直接执行,不过命令中如果带特殊字符,执行则会失败。

示例

ansible -k -i /etc/ansible/hosts all -m command -a "date"
ansible -k all -m command -a "ping -c www.baidu.com"
ansible zxserver -a "whoami"
ansible zxserver -a "chdir=/tmp/ ls"
ansible zxserver -a "creates=/tmp/testansible.txt date"

copy模块

主要作用

文件或目录复制

参数选项

  • src:本地源文件或目录的路径,空文件夹不复制
  • content:可替代src,用于将指定文件的内容复制到远程文件内
  • dest:客户端目标目录或者文件,需要绝对路径
  • backup:复制之前,先备份远程节点上的原始文件。backup=yes可以在覆盖之前对文件自动备份
  • directory_mode:用于复制文件夹,新建的文件会被复制,而老旧的不会被复制
  • follow:支持link文件复制
  • force:覆盖远程主机不一致的内容
  • group:设定远程主机文件夹的组名
  • mode:指定远程主机文件及文件夹的权限
  • owner:设定远程主机文件夹的用户名

示例

ansible -k all -m copy -a 'src=/etc/passwd dest=/tmp/ mode=755 owner=root'
ansible -k all -m copy -a 'content="Hello World" dest=/tmp/test.txt mode=755 owner=root'
ansible zxserver -m copy -a "src=/etc/odbc.ini dest=/etc/odbc.ini backup=yes"

YUM模块

主要作用

软件的安装、升级、卸载

使用详解

  • name:需要安装的软件名,支持软件组安装
  • update_cache:安装前更新缓存
  • state:软件包状态,是否安装或卸载
    • installed: 安装
    • removed: 卸载

示例

ansible all -m yum -a "name=screen state=installed"

file模块

主要作用

用于对文件的创建、删除、修改、权限、属性的维护和管理

参数选项

  • path:必选项,定义文件/目录的路径
  • state
  • directory:表示目录,如果目录不存在则创建目录
  • link:创建软链接
  • hard:创建硬链接
  • touch:如果文件不存在则创建,如果存在则更新修改时间。
  • absent:删除目录、文件或者取消链接文件
  • mode:定义文件权限
  • owner:定义属主
  • group:定义属组
  • recurse:递归设置文件属性,只对目录有效
  • src:被链接的源文件路径,只应用于state=link的情况
  • dest:要链接到的目标路径,只应用于state=link的情况

示例

  • 示例1:创建一个不存在的目录并进行递归授权
ansible zxserver -m file -a "path=/tmp/abc123 state=directory"
ansible zxserver -m file -a "path=/tmp/abc123 owner=nobody group=nobody mode=0644 recurse=yes"
ansible zxserver -m file -a "path=/tmp/abc1234 owner=sshd group=sshd mode=0644 state=directory"
  • 示例2:创建一个文件
ansible zxserver -m file -a "path=/tmp/zhangsan.txt mode=0644"
# 或者
ansible zxserver -m file -a "path=/tmp/zhangsan.txt state=touch"
  • 示例3:创建一个软链接
ansible zxserver -m file -a "src=/usr/local/freeswitch/bin/fs_bin dest=/usr/bin/fs_cli state=link"
  • 示例4:删除一个文件
ansible zxserver -m file -a "path=/tmp/zhangsan.txt state=absent"

user模块

主要作用

用户管理

示例

# 新增用户
ansible grp1 -m user -a "name=zhangsan password=lisi" # 删除用户
ansible grp1 -m user -a "name=zhangsan state=absent"

cron模块

主要作用

管理定时任务

使用详解

  • dayhourminutemonthweekday
  • state
    • present:创建定时任务
    • absent:删除定时任务
  • job:要执行的任务,依赖于state=present
  • special_time:特殊的时间范围。参数:
  • reboot:重启时
  • annually:每年
  • monthly:每月
  • weekly:每周
  • daily:每天
  • hourly:每小时
  • user:指定用户身份

示例

  • 示例1:系统重启时执行/data/bootservice.sh脚本
ansible zxserver -m cron -a 'name="jobForReboot" special_time=reboot job="/data/bootservice.sh"'
  • 示例2:每周六的1:20分执行yum -y update操作
ansible zxserver -m cron -a 'name="yumUpdate" weekday="6" minute="20" hourly="1" user="root" job="yum -y update"'

synchronize模块

主要作用

同步目录、文件,基于rsync

使用详解

  • compress:开启压缩
  • archive:是否采用归档模式同步,保证源和目标文件属性一致
  • checksum:是否校验
  • dirs:以非递归的方式传输目录
  • links:同步链接文件
  • recursive:是否递归yes/no
  • rsync_opts:使用rsync的参数
  • delete:删除源中没有而目标存在的文件
  • src:源目录及文件
  • dest:目标目录及文件
  • set_remote_user:设置远程用户名
  • dest_port:目标接受的端口
  • mode:同步的模式。默认为push,还有pull选项
  • --exclude=.log:忽略同步.log结尾的文件

示例

foo

shell模块

主要作用

远程客户端执行各种shell命令或者运行脚本。其用法和command模块一样,不过shell模块执行命令的时候使用的是/bin/sh,所以shell模块可以执行任何命令

示例

ansible zxserver -m shell -a "touch /tmp/testansible.txt;ls -l /tmp/testansible.txt"

service模块

主要作用

用于远程客户端各种服务管理,包括启动、停止、重启、重新加载

使用详解

  • enable:是否开机自启yes/no
  • name:必选项,服务名称
  • parttern:定义一个模式。如果status没有响应,则通过ps在进程中查找,匹配到就认为该服务依然在运行。
  • state:对服务执行启动、停止、重启、重加载等操作(started、stopped、restarted、reloaded)
  • sleep:如果指定了重启,则在stop和start之间沉睡几秒钟。

示例

ansible zxserver -m service -a "name=httpd state=started enable=yes"

get_url模块

主要作用

从web下载文件,类似wget

示例

  • 示例1:下载文件到远程主机的/tmp目录下。
ansible zxserver -m get_url -a "url=http://192.168.10.101/download/test.txt dest=/tmp"

[ansible]常用内置模块的更多相关文章

  1. Python第五章__模块介绍,常用内置模块

    Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群  群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...

  2. ansible常用命令

    一.ansible常用命令 一.ansible命令的常用参数 ansible 默认提供了很多模块来供我们使用.在 Linux 中,我们可以通过 ansible-doc -l 命令查看到当前 ansib ...

  3. ansible常用模块用法

    ansible常用模块用法 2015-07-21 10:25 24458人阅读 评论(1) 收藏 举报  分类: Linux(44)   ansible 版权声明:本文为博主原创文章,未经博主允许不得 ...

  4. Ansible常用模块介绍及使用(week5_day1_part2)--技术流ken

    Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)--技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几 ...

  5. Python常用内置模块之xml模块

    xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.从结构上,很像HTML超文本标记语言.但他们被设计的目的是不同的,超文本标记语言被设计用来显示 ...

  6. Ansible常用模块命令

    Ansible常用模块命令 一.安装ansible yum install epel-release yum install ansible 二.配置文件配置 vi /etc/ansible/ansi ...

  7. Ansible常用功能

    Ansible 是近几年十分流行的DevOps工具架构什么的我就不在这里赘述了,网上一找一堆 这里写点我在ansible常用功能 1.命令串 #copy文件 #ansible host文件中的主机组 ...

  8. 简学Python第五章__模块介绍,常用内置模块

    Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群  群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...

  9. Python17个常用内置模块总结

    Python17个常用内置模块总结 1.getpass 2.os 3.sys 4.subprocess 5.hashlib 6.json 7.pickle 8.shutil 9.time 10.dat ...

  10. 常用内置模块(一)——time、os、sys、random、shutil、pickle、json

    常用内置模块 一.time模块 在python中,时间分为3种       1.时间戳: timestamp,从1970年1月1日到现在的秒数, 主要用于计算两个时间的差    2.localtime ...

随机推荐

  1. 音视频八股文(9)-- flv的h264六层结构和aac六层结构

    flv介绍 FLV(Flash Video)是Adobe公司推出的⼀种流媒体格式,由于其封装后的⾳视频⽂件体积⼩.封装简单等特点,⾮常适合于互联⽹上使⽤.⽬前主流的视频⽹站基本都⽀持FLV.采⽤FLV ...

  2. 2023-03-09:用golang调用ffmpeg,将流媒体数据(以RTMP为例)保存成本地文件(以flv为例)。

    2023-03-09:用golang调用ffmpeg,将流媒体数据(以RTMP为例)保存成本地文件(以flv为例). 答案2023-03-09: 这是最简单的收流器.本文记录一个最简单的基于FFmpe ...

  3. 2020-08-27:OpenStack与Docker的区别?

    福哥答案2020-08-27: 此答案来自qq群巨佬:openstack是个体系一个完整的方案系统 基于虚拟机 docker只是一个内核上特殊模式跑与其他系统进程隔离的进程的软件方案真正与docker ...

  4. 2020-08-19:TCP是通过什么机制保障可靠性的?

    福哥答案2020-08-19: 福哥口诀法:校(jiao)序确重拥流连(tcp可靠性保障机制:校验.序号.确认.重传.拥塞.流量.连接)校验:数据是否正确.序号:对数据编号seq.确认:ACK.重传: ...

  5. 【设计模式】使用 go 语言实现简单工厂模式

    最近在看<大话设计模式>,这本书通过对话形式讲解设计模式的使用场景,有兴趣的可以去看一下. 第一篇讲的是简单工厂模式,要求输入两个数和运算符号,得到运行结果. 这个需求不难,难就难在类要怎 ...

  6. 局部添加加载中效果loading (vue+elementUI)

    产品需求:有时候我们不想为整个页面添加loading效果.只想给局部区域添加loading效果.(这效果就不揍产品了) 在一个表格数据加载时,因为需要连接其它东西,所以后台接口返回数据需要较长时间,因 ...

  7. CST为什么要关闭 GPU 卡的 ECC 模式而开启 TCC 模式?操作使用【详解】

    在使用CST软件之前,我们一般建议大家关闭 GPU 卡的 ECC 模式而开启 TCC 模式.那么,为什么要进行这样一个操作呢?在此之前,给大家科普一下什么是"ECC"和" ...

  8. [NISACTF 2022]bingdundun~

    [NISACTF 2022]bingdundun~ 考点 文件上传.Phar://伪协议 一.题目 打开题目,发现是一道文件上传的题目,因为提示了可以压缩包,所以尝试直接上传zip文件,然后利用PHP ...

  9. SQL基础知识扫盲

    @ 目录 SQL & 数据库基础知识扫盲 SQL是什么? 数据库是什么? 挺身入局,实践出真知 DBMS初体验 MySQL:初体验 Oracle:初体验 PostgreSQL:初体验 Demo ...

  10. Python网页开发神器fac 0.2.9、fuc 0.1.29新版本更新内容介绍

    fac项目地址:https://github.com/CNFeffery/feffery-antd-components fuc项目地址:https://github.com/CNFeffery/fe ...