zoukankan      html  css  js  c++  java
  • 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模块:

        目的:在指定节点上创建一个username为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 命令来在远程server上执行。这个參考rsync命令的--rsync-path參数,--rsync-path=PATH     # 指定远程server上的rsync命令所在路径信息
    rsync_timeout   # 指定 rsync 操作的 IP 超时时间,和rsync命令的 --timeout 參数效果一样


    OK!

           以上暂且列举这些日常运维中常常会用到的一些模块,很多其它的模块信息后期会继续完好,大家也能够去官网查看很多其它的信息。

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

  • 相关阅读:
    每日英语:A Whiff Of 'Welcome Home'
    每日英语:What To Expect To Wear When You're Expecting
    每日英语:Success Outside the Dress Code
    每日英语:Mistrust Between U.S., Malaysia Strains Probe
    每日英语:A New Way to Learn Chinese
    真香,撸一个SpringBoot在线代码修改器
    SpringBoot代码生成器,从此不用手撸代码
    推荐一个能够让程序猿快速开发的极简工具箱
    臭名昭著的手机验证码功能是如何实现的
    SpringBoot 2.x 开发案例之前后端分离鉴权
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5391726.html
Copyright © 2011-2022 走看看