Ansible 常用模块介绍

1. setup 
    可以⽤来查看远程主机的⼀些基本信息:
    ansible -i /etc/ansible/hosts test -m setup
    
2. ping 
    可以⽤来测试远程主机的运⾏状态:
    ansible test -m ping
    
3. command 
    在远程主机上执⾏命令,command模块包含如下选项:
    creates:⼀个⽂件名,当该⽂件存在,则该命令不执⾏
    free_form:要执⾏的linux指令
    chdir:在执⾏指令之前,先切换到该指定的⽬录
    removes:⼀个⽂件名,当该⽂件不存在,则该选项不执⾏,与creates 刚好相反
    executable:切换shell来执⾏指令,该执⾏路径必须是⼀个绝对路径
    示例:
    ansible node -a "creates=/tmp/test ls /tmp/"  # 如果/tmp/test 存在,则不执行ls
    ansible test -a "chdir=/root/ tar zcf anaconda-ks.cfg.tar.gz anaconda-ks.cfg"
    
4. shell 
    切换到某个shell执⾏指定的指令,参数与command相同,与command不同的是,shell
    可以⽀持管道。
    示例:
    ansible test -m shell -a "somescript.sh >> somelog.txt"

5. raw
    ⽀持管道
 
6. file 
    设置⽂件的属性,file模块包含如下选项:
    force:需要在两种情况下强制创建软链接,⼀种是源⽂件不存在但之后会建⽴的情况下;另⼀种是⽬标软链接已存在,需要先取消之前的软链,然后创建新的软
    链,有两个选项:yes|no 
    group:定义⽂件/⽬录的属组
    mode:定义⽂件/⽬录的权限
    owner:定义⽂件/⽬录的属主
    path:必选项,定义⽂件/⽬录的路径
    recurse:递归的设置⽂件的属性,只对⽬录有效
    src:要被链接的源⽂件的路径,只应⽤于state=link的情况
    dest:被链接到的路径,只应⽤于state=link的情况
    directory:如果⽬录不存在,创建⽬录
    file:即使⽂件不存在,也不会被创建
    link:创建软链接
    hard:创建硬链接
    touch:如果⽂件不存在,则会创建⼀个新的⽂件,如果⽂件或⽬录已存在,则更新其最后修改时间
    absent:删除⽬录、⽂件或者取消链接⽂件
    示例:
    ansible test -m file -a "src=/etc/fstab dest=/tmp/fstab state=link" 
    ansible test -m file -a "path=/tmp/fstab state=absent" 
    ansible test -m file -a "path=/tmp/test state=touch" 
    ansible test -m file -a "path=/tmp/dir1 state=directory mode=777 group=root owner=root"
    
7. copy 
    复制⽂件到远程主机,copy模块包含如下选项:
    backup:在覆盖之前将原⽂件备份,备份⽂件包含时间信息。有两个选项:yes|no 
    content:⽤于替代"src",可以直接设定指定⽂件的值
    dest:必选项。要将源⽂件复制到的远程主机的绝对路径,如果源⽂件是⼀个⽬录,那么该路径也必须是个⽬录
    directory_mode:递归的设定⽬录的权限,默认为系统默认权限
    force:如果⽬标主机包含该⽂件,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当⽬标主机的⽬标位
    置不存在该⽂件时,才复制。默认为yes 
    others:所有的file模块⾥的选项都可以在这⾥使⽤
    src:要复制到远程主机的⽂件在本地的地址,可以是绝对路径,也可以是相对路径。如果路径是⼀个⽬录,它将递归
    复制。在这种情况下,如果路径使⽤"/"来结尾,则只复制⽬录⾥的内容,如果没有使⽤"/"来结尾,则包含⽬录在内的
    整个内容全部复制,类似于rsync。
    示例:
    ansible test -m copy -a "src=/root/test.conf dest=/etc/test.conf owner=test group=test mode=0644" 
    ansible test -m copy -a "src=/etc/ntp.conf dest=/etc/ntp.conf owner=root group=root mode=644 backup=yes"
 
8. service 
    ⽤于管理服务,该模块包含如下选项:
    arguments:给命令⾏提供⼀些选项
    enabled:是否开机启动 yes|no 
    name:必选项,服务名称
    pattern:定义⼀个模式,如果通过status指令来查看服务的状态时,没有响应,就会通过ps指令在进程中根据该模式
    进⾏查找,如果匹配到,则认为该服务依然在运⾏
    runlevel:运⾏级别
    sleep:如果执⾏了restarted,在则stop和start之间沉睡⼏秒钟
    state:对当前服务执⾏启动,停⽌、重启、重新加载等操作(started,stopped,restarted,reloaded)
    示例:
    ansible test -m service -a "name=httpd state=started enabled=yes" 
    ansible test -m service -a "name=foo pattern=/usr/bin/foo state=started" 
    ansible test -m service -a "name=network state=restarted args=eth0"
   
9. yum 
    使⽤yum包管理器来管理软件包,选项:
    config_file:yum的配置⽂件
    disable_gpg_check:关闭gpg_check 
    disablerepo:不启⽤某个源
    enablerepo:启⽤某个源
    name:要进⾏操作的软件包的名字,也可以传递⼀个url或者⼀个本地的rpm包的路径
    state:状态(present,absent,latest)
    示例:
    ansible test -m yum -a 'name=httpd state=latest' 
    ansible test -m yum -a 'name="@Development tools" state=present'
   
10. cron 
    ⽤于管理计划任务,包含如下选项:
    backup:对远程主机上的原任务计划内容修改之前做备份
    cron_file:如果指定该选项,则⽤该⽂件替换远程主机上的cron.d⽬录下的⽤户的任务计划
    day:⽇(1-31,*,*/2,……)
    hour:⼩时(0-23,*,*/2,……)
    minute:分钟(0-59,*,*/2,……)
    month:⽉(1-12,*,*/2,……)
    weekday:周(0-7,*,……)
    job:要执⾏的任务,依赖于state=present 
    name:该任务的描述
    special_time:指定什么时候执⾏,参数:reboot,yearly,annually,monthly,weekly,daily,hourly 
    state:确认该任务计划是创建还是删除
    user:以哪个⽤户的身份执⾏
    示例:
    ansible test -m cron -a 'name="check dirs" hour="5,2" job="ls -alh > /dev/null"' 
    ansible test -m cron -a 'name="a job for reboot" special_time=reboot job="/some/job.sh"' 
    ansilbe test -m cron -a 'cron_file=ansible_yum-autoupdate state=absent'
   
11. filesystem 
    在块设备上创建⽂件系统,选项:
    dev:⽬标块设备
    force:在⼀个已有⽂件系统的设备上强制创建
    fstype:⽂件系统的类型
    opts:传递给mkfs命令的选项
    
12. mount 
    配置挂载点,选项:
    fstype:必选项,挂载⽂件的类型
    name:必选项,挂载点
    opts:传递给mount命令的参数
    src:必选项,要挂载的⽂件
    state:必选项
    present:只处理fstab中的配置
    absent:删除挂载点
    mounted:⾃动创建挂载点并挂载之
    umounted:卸载
    示例:
    ansible test -a 'dd if=/dev/zero of=/disk.img bs=4k count=1024' 
    ansible test -a 'losetup /dev/loop0 /disk.img' 
    ansible test -m filesystem 'fstype=ext4 force=yes opts=-F dev=/dev/loop0' 
    ansible test -m mount 'name=/mnt src=/dev/loop0 fstype=ext4 state=mounted opts=rw'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值