zoukankan      html  css  js  c++  java
  • ansible常用模块用法

     

    ansible常用模块用法 

     分类:
     

    ansible 默认提供了很多模块来供我们使用。在 Linux 中,我们可以通过 ansible-doc -l 命令查看到当前 ansible 都支持哪些模块,通过 ansible-doc  -s  模块名  又可以查看该模块有哪些参数可以使用。

           下面介绍比较常用的几个模块:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    copy模块
    file模块
    cron模块
    group模块
    user模块
    yum模块
    service模块
    script模块
    ping模块
    command模块
    raw模块
    get_url模块
    synchronize模块

    copy模块:

        目的:把主控端/root目录下的a.sh文件拷贝到到指定节点上

        命令:ansible 10.1.1.113 -m copy -a 'src=/root/a.sh dest=/tmp/'

        执行效果:

    wKioL1TB_EWytdwHAALpQ_NZj_Y676.jpg

    file模块:

        目的:更改指定节点上/tmp/t.sh的权限为755,属主和属组为root

        命令:ansible all -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root"

        执行效果:

    spacer.gifwKiom1TB-23S6GIaAAFkf3LCV0I648.jpg

    cron模块:

        目的:在指定节点上定义一个计划任务,每隔3分钟到主控端更新一次时间

        命令:ansible all -m cron -a 'name="custom job" minute=*/3 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate 172.16.254.139"'

        执行效果:

    wKioL1TB_EXAZ9npAAKlZcJk-2A313.jpg

    group模块:

        目的:在所有节点上创建一个组名为nolinux,gid为2014的组

        命令:ansible all -m group -a 'gid=2014 name=nolinux'

        执行效果:

    spacer.gifwKiom1TB-22w2EHsAAEyGxpaZ1Q696.jpg

    user模块:

        目的:在指定节点上创建一个用户名为nolinux,组为nolinux的用户

        命令:ansible 10.1.1.113 -m user -a 'name=nolinux groups=nolinux state=present'

        执行命令:

    wKioL1TB_EajzhgWAAKh8udIwfU616.jpg

    补充:删除用户示例

    spacer.gifwKiom1TB-27BpMDGAAJUaZVZKlQ882.jpg

    yum模块:

        目的:在指定节点上安装 lrzsz 服务

        命令:ansible all -m yum -a "state=present name=httpd"

        执行效果:

    wKioL1TB_EaTCw3xAAo06fOJT9o358.jpg

    service模块:

        目的:启动指定节点上的 puppet 服务,并让其开机自启动

        命令:ansible 10.1.1.113 -m service -a 'name=puppet state=restarted enabled=yes'

        执行效果:

    wKiom1TB-27BK1j6AAE7uhMosLQ824.jpgspacer.gif

    script模块:

        目的:在指定节点上执行/root/a.sh脚本(该脚本是在ansible控制节点上的)

        命令:ansible 10.1.1.113 -m script -a '/root/a.sh'

        执行效果:

    wKioL1TB_EehJLUgAAFvF7DUzTA542.jpgspacer.gif

    ping模块:

        目的:检查指定节点机器是否还能连通

        命令:ansible 10.1.1.113 -m ping

        执行效果:

    wKioL1TB_EfDOcX3AAD56pSs8vw739.jpg

    command模块:

        目的:在指定节点上运行hostname命令

        命令:ansible 10.1.1.113 -m command -a 'hostname'

        执行效果:

    wKiom1TB-2_TVLsoAAH9514heiw532.jpgspacer.gif

    raw模块:

        目的:在10.1.1.113节点上运行hostname命令

        命令:ansible 10.1.1.113 -m raw-a 'hostname|tee'

        执行效果:

    wKioL1TB_EfiXSlvAAD6X2f-nZ4937.jpg

    get_url模块:

        目的:将http://10.1.1.116/favicon.ico文件下载到指定节点的/tmp目录下

        命令:ansible 10.1.1.113 -m get_url -a 'url=http://10.1.1.116/favicon.ico dest=/tmp'

        执行效果:

    wKiom1TB_ZvyFnXpAAQItOAiI4M141.jpg

    synchronize模块:

        目的:将主控方/root/a目录推送到指定节点的/tmp目录下

        命令:ansible 10.1.1.113 -m synchronize -a 'src=/root/a dest=/tmp/ compress=yes'

        执行效果:

    delete=yes   使两边的内容一样(即以推送方为主)

    compress=yes  开启压缩,默认为开启

    --exclude=.Git  忽略同步.git结尾的文件

    wKioL1TB_EjxkmYpAAYA5Ai3IPg889.jpg

    由于模块,默认都是推送push。因此,如果你在使用拉取pull功能的时候,可以参考如下来实现

    mode=pull   更改推送模式为拉取模式

        目的:将10.1.1.113节点的/tmp/a目录拉取到主控节点的/root目录下

        命令:ansible 10.1.1.113 -m synchronize -a 'mode=pull src=/tmp/a dest=/root/'

        执行效果:

    wKiom1TB-3CwhN2dAASKTtTpOxI903.jpg

           由于模块默认启用了archive参数,该参数默认开启了recursive, links, perms, times, owner,group和-D参数。如果你将该参数设置为no,那么你将停止很多参数,比如会导致如下目的递归失败,导致无法拉取

    wKiom1TB-3CwM88JAAKGdhDvVqI952.jpg

    其它相关的参数解释:

    1
    2
    3
    dest_port=22    # 指定目的主机的ssh端口,ansible配置文件中的 ansible_ssh_port 变量优先级高于该 dest_port 变量
    rsync_path      # 指定 rsync 命令来在远程服务器上运行。这个参考rsync命令的--rsync-path参数,--rsync-path=PATH     # 指定远程服务器上的rsync命令所在路径信息
    rsync_timeout   # 指定 rsync 操作的 IP 超时时间,和rsync命令的 --timeout 参数效果一样

    OK!

           以上暂且列举这些日常运维中经常会用到的一些模块,更多的模块信息后期会继续完善,大家也可以去官网查看更多的信息。

           官网地址:http://docs.ansible.com/synchronize_module.html

     
    2
  • 相关阅读:
    Apple的App Analytics统计平台你必须知道的Q&A整理与翻译
    WWDC2014总结---For产品经理们
    AppStore占坑注意事项
    Mac上的终端(Terminal)启动缓慢
    iOS推送失败的可能问题汇总
    Mac OS X 10.9 Mavericks安装后,Xcode调试时模拟器黑屏的处理方法
    MySql批处理的小窍门:排行榜类数据生成
    升级OSX 10.9 Mavericks后,会导致Finder始终无响应的一个问题
    拉面馆中的移动互联网——无线KPI探讨
    Weak is not weak,Strong is not strong
  • 原文地址:https://www.cnblogs.com/lize3379/p/7025804.html
Copyright © 2011-2022 走看看