1. 查看支持的模块

  1. [root@localhost ~]# ansible-doc -l

这里我们看下ansible的支持的模块个数

  1. [root@localhost ~]# ansible-doc -l |wc -l #查看支持的模块个数
  2.  
  3. [root@localhost ~]# ansible --version #查看我们的ansible版本号
  4. ansible 2.3.1.0
  5. config file = /etc/ansible/ansible.cfg
  6. configured module search path = Default w/o overrides
  7. python version = 2.6. (r266:, Aug , ::) [GCC 4.4. (Red Hat 4.4.-)]

2.获取模块的帮助

这里我们使用ansible-doc获取下command模块的使用方式。

  1. [root@localhost ~]# ansible-doc command

3.1 command模块

command :作为ansible的默认模块,可以允许远程主机范围内的所有shell命令。

注意: 在command的命令中含有像`$ HOME'这样的变量和像``<“',`”>“, `“”“”,“”;“”和“”&“'将无法正常工作(如果需要这些功能,请使用[shell]模块)

  1. [root@localhost ~]# ansible 192.168.168.11* -m command -a 'ip addr show dev eth0'
  2. 192.168.168.115 | SUCCESS | rc= >>
  3. : eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
  4. link/ether ::::8d:e2 brd ff:ff:ff:ff:ff:ff
  5. inet 192.168.168.115/ brd 192.168.168.255 scope global eth0
  6. inet6 fe80:::56ff:fe29:8de2/ scope link
  7. valid_lft forever preferred_lft forever
  8.  
  9. 192.168.168.111 | SUCCESS | rc= >>
  10. : eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
  11. link/ether :0c:::: brd ff:ff:ff:ff:ff:ff
  12. inet 192.168.168.111/ brd 192.168.168.255 scope global eth0
  13. inet6 fe80::20c:29ff:fe77:/ scope link
  14. valid_lft forever preferred_lft forever

3.2 script模块

功能:在远程主机上执行主控端的脚本,相当于scp+shell组合。

  1. [root@localhost ~]# ansible all -m script -a "/home/test.sh 12 34"

3.3 shell模块

功能:执行远程主机的shell脚本文件

  1. [root@localhost ~]# ansible all -m shell -a "/home/test.sh"

shell替代command执行

  1. [root@localhost ~]# ansible 192.168.168.11* -m shell -a 'ip addr show dev eth0'
  2. 192.168.168.111 | SUCCESS | rc= >>
  3. : eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
  4. link/ether :0c:::: brd ff:ff:ff:ff:ff:ff
  5. inet 192.168.168.111/ brd 192.168.168.255 scope global eth0
  6. inet6 fe80::20c:29ff:fe77:/ scope link
  7. valid_lft forever preferred_lft forever
  8.  
  9. 192.168.168.115 | SUCCESS | rc= >>
  10. : eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
  11. link/ether ::::8d:e2 brd ff:ff:ff:ff:ff:ff
  12. inet 192.168.168.115/ brd 192.168.168.255 scope global eth0
  13. inet6 fe80:::56ff:fe29:8de2/ scope link
  14. valid_lft forever preferred_lft forever

3.4 copy模块

功能: 实现主控端向目标主机copy文件。

  1. [root@localhost ~]# ansible all -m copy -a "src=/home/test.sh dest=/tmp/ owner=root group=root mode=0755"
    #src 主控端文件位置
    #dest 被控端目标位置
    #owner 文件复制过去后的所有者
    #group 文件复制过去后的所属组
    #mode 文件的权限设定,执行a+x这种方式

3.5 stat模块

功能: 获取远程文件的状态信息,包括atime,ctime,mtime,md5,uid,gid等信息。

  1. [root@localhost ~]# ansible all -m stat -a "path=/etc/sysctl.conf"

3.6 yum模块

功能: 安装软件包。

  1. [root@localhost ~]# ansible all -m yum -a "name=httpd state=latest disable_gpg_check=yes enablerepo=epel"
    #name 包名
    #state (Choices: present, installed, latest, absent, removed)[Default: present]
    #disable_gpg_check:禁止gpg检查
    #enablerepo:只启动指定的repo

3.7 cron模块

功能:远程主机crontab配置

  1. [root@localhost ~]# ansible all -m cron -a "name='test' hour='2-5' minute='*/5' day='1' month='3,4' weekday='1' job='ls -l' user=tom"
    192.168.168.115 | SUCCESS => {
        "changed": true,
        "envs": [],
        "jobs": [
            "test"
        ]
    }
    192.168.168.111 | SUCCESS => {
        "changed": true,
        "envs": [],
        "jobs": [
            "test"
        ]
    }

我们去被控主机看下生成的crontab作业

  1. [root@localhost ~]# crontab -l -u tom
  2. #Ansible: test
  3. */ - , ls -l

删除指定crontab

  1. [root@localhost ~]# ansible all -m cron -a "name=test state=absent"

3.8 mount模块

功能: 挂载文件系统

  1. [root@localhost ~]# ansible 192.168.168.111 -m mount -a "path=/mnt/data src=/dev/sd0 fstype=ext3 ots=ro state=present"

注:mount已经使用path代替了原来的name参数,但是name参数还是可以使用的。

3.9 service模块

功能: 服务管理

  1. [root@localhost ~]# ansible all -m service -a "name=httpd state=restarted" #启动服务
  2. [root@localhost ~]# ansible all -m service -a "name=httpd state=running" #查看服务状态
  3. [root@localhost ~]# ansible all -m service -a "name=httpd state=stoped" #停止服务

3.10 user模块

功能: 远程主机的用户管理

  1. [root@localhost ~]# ansible all -m user -a "name=jerry comment=' doubi jerry'" #添加用户 详细参数参考ansible-doc user
  2. [root@localhost ~]# ansible all -m user -a "name=jerry state=absent remove=yes" #删除用户

ansible学习系列2-ansible常用模块使用的更多相关文章

  1. SaltStack学习系列之state常用模块

    常用模块:cron,cmd,file,mount,ntp,pkg,service,user,group cmd模块 参数: name:要执行的命令 unless:用于检查的命令,只有unless指向的 ...

  2. Python学习系列(六)(模块)

    Python学习系列(六)(模块) Python学习系列(五)(文件操作及其字典) 一,模块的基本介绍 1,import引入其他标准模块 标准库:Python标准安装包里的模块. 引入模块的几种方式: ...

  3. 自动化运维工具Ansible实战(四)常用模块

    转载链接:http://blog.51cto.com/liqingbiao/1962609   Ansible模块按功能分为:云模块.集群模块. 命令模块.数据库模块.文件模块.资产模块.消息模块.监 ...

  4. Func系列2:常用模块及API

    简介 Func提供了非常丰富的功能模块,包括CommandModule(执行命令).CopyFileModule(拷贝文件).CPUModule(CPU信息).DiskModule(磁盘信息).Fil ...

  5. Django学习之六:Django 常用模块导入记忆

    Django 常用模块导入记忆 django相关 1. urls相关操作 from django.urls import path, re_path, include from django.urls ...

  6. Python学习—基础篇之常用模块

    常用模块 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...

  7. Ansible 快速安装配置,常用模块

    Ansible是一个轻量级的工具,基于python语言实现,通过python中的paramiko来连接并管理机器, 功能强大(YAML,PlayBook,模块化功能),不需要安装客户端, 通过ssh连 ...

  8. Ansible笔记(7)---常用模块之系统类模块(cron、service)

    一.cron模块 1.1作用: cron 模块可以帮助我们管理远程主机中的计划任务,功能相当于 crontab 命令. 在了解cron模块的参数之前,先写出一些计划任务的示例: # 示例1,每天的1点 ...

  9. Ansible笔记(2)---常用模块之文件操作

    一.copy模块 1.1作用: copy模块是将ansible主机上的文件拷贝到远程受控主机 1.2常用参数: src参数 :用于指定需要copy的文件或目录. dest参数 :用于指定文件将被拷贝到 ...

随机推荐

  1. 极速创建 IOS APP !涛舅舅苹果 IOS APP自助生成系统!不用证书、不用越狱、永久可用

    不用签名将网页封装成苹果APP,无需苹果企业签名,IPA签名,ios签名,免越狱安装 (本方法只支持网站封装app,原生的用不了,详细请咨询客服) 近期很多朋友问我把网站变成app的方法,原因很多种, ...

  2. MYSQL必知必会学习笔记

    8.1.1 百分号( %)通配符最常使用的通配符是百分号( %).在搜索串中, %表示任何字符出现任意次数.例如,为了找出所有以词jet起头的产品,可使用以下SELECT语句:SELECT prod_ ...

  3. 几个VB常见又内涵的错误

    第一位内涵的就是:没有对象 找到对象,却发现是别人的对象 不能加载也不能卸载...这到底是什么对象 哈哈哈~

  4. 理解JavaScript【转】

    第一题 if (!("a" in window)) {     var a = 1; } alert(a); 第二题 var a = 1,     b = function a(x ...

  5. linux系统资源监控

    top命令 1.平均负载(load average): 正在耗费CPU进程与正在等待io的进程之和,三个值分别是一分钟,五分钟,十五分钟的平均负载,负载值只要小于CPU颗粒数属于正常情况 任务进程(T ...

  6. ORACLE启动报错ORA-03113: end-of-file on communication channel

    使用过程中发现oracle运行很慢(其实应该先关注空间问题),就准备关机重启一下,关不掉就强制关闭,然后启动就报错了. 1.SQL> startup ORACLE instance starte ...

  7. python 错误记录

    class Func: d = dict() def __setitem__(self, key, value): # xxx object does not support item assignm ...

  8. 配置JDK环境变量与配置JRE

    1. 如何配置jdk,x下载jdk     网站: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-21 ...

  9. CSS-默认padding 和 margin

    一.h1~h6标签:有默认margin(top,bottom且相同)值,没有默认padding值. 在chrome中:16,15,14,16,17,19; 在firefox中:16,15,14,16, ...

  10. k8s probe

    livenessProbe: httpGet: path: /abc/401 port: 8384 scheme: HTTP