ansible基础命令实例
参考: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基础命令实例的更多相关文章
- ansible 基础命令
ansible 命令总结 1. Ad-HOC: 适合临时执行任务2. Playbook: 适合一些复杂的部署和配置环境 一 . Ad-HOC: 适合临时执行任务ansible-doc -l 查看ans ...
- 003.Ansible基础使用
一 Ansible命令用法 Ansible命令行执行方式有:Ad-Hoc.Ansible-playbook两种,Web方式其官方提供付费产品Tower.Ad-Hoc主要用于临时命令的执行,Ansibl ...
- Ansible基础使用
原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 Ansible命令用法 1.1 免密钥 1.2 Ad-Hoc基础命令 1.3 ...
- [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)
linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...
- ansible基础☞第一条命令
我的两个测试机: 系统: ubuntu 16.04.2 ansible-master: 192.168.0.107 ansible-slave: 192.168.0.108 ansible版本: ro ...
- LINUX二十个基础命令
LINUX二十个基础命令 一. useradd命令 1.命令格式: useradd 选项 用户名 2.命令功能: 添加新的用户账号 3.常用参数: -c comment 指定一段注释性描述.-d 目录 ...
- Oracle基础--命令
====================== 基础命令====================== 1.su – oracle 不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界 ...
- ansible基础-安装与配置
一 安装 1.1 ansible架构 ansible是一个非常简单的自动化部署项目,由python编写并且开源.用于提供自动化云配置.配置文件管理.应用部署.服务编排和很多其他的IT自动化需求. an ...
- ansible基础-优化
简介 当管理集群达到一定规模时,ansible达到性能瓶颈是难以避免的,此时我们可以通过一定手段提高ansible的执行效率和性能. 笔者虽未管理过超大规模服务器,但也通过查找资料和咨询大神了解了一些 ...
随机推荐
- 修改JDK版本配置
我使用的maven是3.0.5版本的,在创建项目的时候,默认使用的jdk为1.5版本 在项目的pom.xml中添加如下配置可修改使用的jdk版本. <properties> <!-- ...
- Ex 7_17 考虑如下的网络(其中数字为对应边的容量)...第十三次作业
(a) 利用ford-fulkerson算法即可求出最大流和最小分割. (b) 剩余网络为 由S可达的顶点为A.B.可达T的顶点为C. (c) 瓶颈边有e(A,C),e(B,C). (d) 下图中不包 ...
- [jquery]为jQuery.ajax添加onprogress事件
原理: 给XMLHttpRequest对象的upload属性绑定onprogress方法监听上传过程 var xhr = new XMLHttpRequest(); xhr.upload.onpro ...
- MVC 基于 AuthorizeAttribute 实现的登陆权限控制
代码的执行顺序是 OnAuthorization–>AuthorizeCore–>HandleUnauthorizedRequest. 如果AuthorizeCore返回false时,才会 ...
- 洛谷P5110 块速递推 [分块]
传送门 思路 显然可以特征根方程搞一波(生成函数太累),得到结果: \[ a_n=\frac 1 {13\sqrt{337}} [(\frac{233+13\sqrt{337}}{2})^n-(\fr ...
- iPhone内存溢出——黑白苹果
一旦iPhone内存长期占用过大,一关机即再难启动,如果你Home键加power键等都不行,那么可以要刷机了. 方式: 1.电脑下载ITunes,这个过程比较漫长,一系列逐渐大概3G,下载完成打开. ...
- Oracle 中 nvl、nvl2、nullif、coalesce、decode 函数的用法详解
NVL(EXPR1,EXPR2) NVL2(EXPR1,EXPR2,EXPR3) NULLIF(EXPR1,EXPR2) COALESCE(EXPR1,,..,EXPRn) decode ------ ...
- MySQL、MongoDB、Redis 数据库之间的区别
NoSQL 的全称是 Not Only SQL,也可以理解非关系型的数据库,是一种新型的革命式的数据库设计方式,不过它不是为了取代传统的关系型数据库而被设计的,它们分别代表了不同的数据库设计思路. M ...
- binary(binary区分大小写),unsigned,unsigned zerofill关键字介绍
mysql建表时,每个字段的属性有三个选项: binary,unsigned,unsigned zerofill,作用如下: 一.binary CHAR VARCHAR:值根据缺省字符集以大小写不区分 ...
- PDF怎么去除页眉页脚,PDF页眉页脚编辑方法
我们在使用文件的时候需要编辑页眉页脚的时候,这个时候我们应该怎么做呢,相信别的文件大家都知道怎么编辑了,PDF文件大家都知道吗,最开始接触这个文件的时候小编觉得很难,之后找到技巧之后也并没有很难,今天 ...