参考:https://www.cnblogs.com/ilurker/p/6421624.html

1. 使用自定义的hosts

  格式: ansible  组机匹配  -i  自定义的hosts  -m modulename  -a  "一些参数"

  ansible ios_cn:ios_tw  -i ./hosts   -m ping

  ansible all  -i ./hosts   -m ping   #all表示应用所有的服务器

#subprocess 调用ansible命令,没有shell=True要写成列表格式,并且第一个元素是一个可执行的文件

  

  child=subprocess.Popen(["ansible","all","-i","./hosts","-m","command","-a","ls /mnt/"], stdout=subprocess.PIPE,stderr=subprocess.PIPE)
  child.stdout.read()

  #带了shell=True,可以直接像在shell在执行命令一样书写要执行的命令

  child=subprocess.Popen(["ansible all  -i ./hosts -m command -a 'ls -alh /mnt/'"], stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)

  child=subprocess.Popen("ansible all  -i ./hosts -m command -a 'ls  /mnt/'", stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)

   ansible ios_tw -i ./hosts -a "df -lh"    #居然可以不选择模块,其实默认应该是选择的command模块

hosts 自定义如下

[ios_cn]
112.124.13.182
112.124.52.243
121.199.29.73
112.124.58.190
121.41.20.136
115.29.5.254
114.215.199.83 [ios_tw]
121.40.20.132

2. ansible支持主机列表的正则匹配

  • 全量: all/*

  • 逻辑或: :
  • 逻辑非: 
  • 逻辑与: 
  • 切片: []
  • 正则匹配: 以~开头
ansible all -m ping  #所有默认inventory文件中的机器
ansible "*" -m ping #同上
ansible 121.28..* -m ping #所有122.28.13.X机器 ansible web1:web2 -m ping #所有属于组web1或属于web2的机器
ansible web1:!web2 -m ping #属于组web1,但不属于web2的机器
ansible web1&web2 -m ping #属于组web1又属于web2的机器 ansible webserver[] -m ping #属于组webserver的第1台机器
ansible webserver[:] -m ping #属于组webserver的第1到4台机器 ansible "~(beta|web)\.example\.(com|org)" -m ping

3. 在远程机器上用一般用户执行命令

例如: 用sudo实现, 远程机器/etc/sudoer配置如下    ubuntu  ALL=(ALL:ALL) ALL

ansible all -i ./hosts --ask-pass -m ping -u ubuntu -b  --become-user=root  --ask-become-pass

#说明,这里是用密码登录,并且登录过后sudo那里也要输入密码

4. ansible 并发

-f 参数指定线程数

建议指定为cpu 核数的偶数倍。如4核8G的服务器建议最多20个线程.

4. ansible 模块使用

ansible-doc yum  查看模块的使用

在shell命令行的使用如下:

ansible all  -m apt -a "name=nginx state=present"

在yml文件中格式一般如下

- - -

- name: Install the package "foo"
apt:
name: foo
state: present - name: This command will change the working directory to somedir/ and will only run when somedir/somelog.txt doesn't exist.
shell: somescript.sh >> somelog.txt
args:
chdir: somedir/
creates: somelog.txt

3.ansible-pull

4.ansible-playbook

5. ansible-vault

6.ansible-doc

ansible-playbook sudo

https://www.jianshu.com/p/50d2bf6a5b73

ansible基础命令实例的更多相关文章

  1. ansible 基础命令

    ansible 命令总结 1. Ad-HOC: 适合临时执行任务2. Playbook: 适合一些复杂的部署和配置环境 一 . Ad-HOC: 适合临时执行任务ansible-doc -l 查看ans ...

  2. 003.Ansible基础使用

    一 Ansible命令用法 Ansible命令行执行方式有:Ad-Hoc.Ansible-playbook两种,Web方式其官方提供付费产品Tower.Ad-Hoc主要用于临时命令的执行,Ansibl ...

  3. Ansible基础使用

    原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 Ansible命令用法 1.1 免密钥 1.2 Ad-Hoc基础命令 1.3 ...

  4. [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)

    linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...

  5. ansible基础☞第一条命令

    我的两个测试机: 系统: ubuntu 16.04.2 ansible-master: 192.168.0.107 ansible-slave: 192.168.0.108 ansible版本: ro ...

  6. LINUX二十个基础命令

    LINUX二十个基础命令 一. useradd命令 1.命令格式: useradd 选项 用户名 2.命令功能: 添加新的用户账号 3.常用参数: -c comment 指定一段注释性描述.-d 目录 ...

  7. Oracle基础--命令

    ====================== 基础命令====================== 1.su – oracle 不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界 ...

  8. ansible基础-安装与配置

    一 安装 1.1 ansible架构 ansible是一个非常简单的自动化部署项目,由python编写并且开源.用于提供自动化云配置.配置文件管理.应用部署.服务编排和很多其他的IT自动化需求. an ...

  9. ansible基础-优化

    简介 当管理集群达到一定规模时,ansible达到性能瓶颈是难以避免的,此时我们可以通过一定手段提高ansible的执行效率和性能. 笔者虽未管理过超大规模服务器,但也通过查找资料和咨询大神了解了一些 ...

随机推荐

  1. 如何:配置 ClickOnce 信任提示行为

    转载链接:https://technet.microsoft.com/zh-cn/magazine/ee308453 可以配置 ClickOnce 信任提示以控制是否允许最终用户选择安装 ClickO ...

  2. python第13天

    装饰器 装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何改动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象. 装饰器的应用场景:比如插入日志,性能测试,事务处理,缓存等等 ...

  3. python 前面几个单词含义

    切片 str[start:end:step] start:从xxx开始    (startswith) end:切到xxx为止  (endswith) 不包括 字符串操作 .capitalize()# ...

  4. Ex3_2 最近点对

    原文链接http://blog.csdn.net/zyang008/article/details/6175587 分治法 1)算法描述:已知集合S中有n个点,分治法的思想就是将S进行拆分,分为2部分 ...

  5. [HTTP]HTTP 中的 Transfer-Encoding 报文头

    一.背景: 持续连接的问题:对于非持续连接,浏览器可以通过连接是否关闭来界定请求或响应实体的边界:而对于持续连接,这种方法显然不奏效.有时,尽管我已经发送完所有数据,但浏览器并不知道这一点,它无法得知 ...

  6. ACM-ICPC 2018 焦作赛区网络预赛 G Give Candies

    There are NNN children in kindergarten. Miss Li bought them NNN candies. To make the process more in ...

  7. SQL语句的行列转换

    [一]行转列 1,查询原始的数据 /***这次练习的主题,行转列,列转行***/select * from Scores 2,得到姓名,通过group by select Student as '姓名 ...

  8. 【JS】中的原型prototype到底是个啥

    一.什么是原型 原型prototype是函数的一个属性,这个属性是一个指针,指向一个对象(原型对象),这个原型对象的用途是包含可以由特定类型的所有实例共享的属性和方法. 函数也是一种对象.它也是属性的 ...

  9. SpringMVC类型转换,验证

    点击上一章-SpringMVC视图及REST风格 Spring mvc 数据绑定流程: SpringMvc将ServletRequest对象及目标方法的形参实例传给WebDataBinderFacto ...

  10. py4测试题

    1.8<<2等于? 32 2.通过内置函数计算5除以2的余数 print(divmod(5,2))------>1 3.s=[1,"h",2,"e&qu ...