3.2、Ansible单命令测试
0.Ansible的group支持all、通配符(*)、IP地址
1.查看Ansible的版本
$ ansbile --version
[root@test ~]# ansible --version
ansible 1.7.2
[root@test ~]#
2.消除首次ssh登录时要求输入yes确认
在所有机器上修改/etc/ssh/ssh_config文件中设置StrictHostKeyChecking no即可(默认为 ask )
[root@master ~]# grep "StrictHostKeyChecking" /etc/ssh/ssh_config
StrictHostKeyChecking no
3.拷贝文件
ansible <groupname> -m copy -a "src=/etc/ssh/ssh_config dest=/etc/ssh/ssh_config owner=root group=root mode=644 force=yes"
示例:
[root@test ~]# ansible all -m copy -a "src=/etc/ssh/ssh_config dest=/etc/ssh/ssh_config owner=root group=root mode=644 force=yes"
192.168.91.135 | success >> {
"changed": true,
"dest": "/etc/ssh/ssh_config",
"gid": 0,
"group": "root",
"md5sum": "d27d7cc9767512b64c84d06544e01546",
"mode": "0644",
"owner": "root",
"size": 2072,
"src": "/root/.ansible/tmp/ansible-tmp-1476168613.68-180284084445387/source",
"state": "file",
"uid": 0
}
[root@test ~]#
4.查看所有机器的磁盘情况
ansible <groupname> -m shell -a "df -h" -k
5.测试机器的连通性
ansible <groupname> -m ping
6.Ansible所有的模块
http://docs.ansible.com/ansible/list_of_all_modules.html
7.将本机上的配置文件组装发送到远程主机
ansible <groupname> -m assemble -a "src=/root/configure dest=/root/test/a.conf remote_src=False
8.将本机上的配置文件组装发送到远程主机,带分隔符
ansible <groupname> -m assemble -a "src=/root/configure dest=/root/test/a.conf remote_src=False delimiter='####'"
9.设定权限进行拷贝
ansible <groupname> -m copy -a "src=/root/configure/a.conf dest=/root/test owner=root group=root mode=0777"
10.拷贝的时候备份
ansible <groupname> -m copy -a "src=/root/kel/1 dest=/tmp/kel owner=root group=root backup=yes"
11.拷贝文件之后进行验证
ansible <groupname> -m copy -a "src=/etc/sudoers dest=/tmp/2 validate='visudo -cf %s'"
12. fetch一个文件进行保存
ansible <groupname> -m fetch -a "src=/root/123 dest=/root"
13.指定路径目录进行保存
ansible <groupname> -m fetch -a "src=/root/Ssh.py dest=/root/kel/ flat=yes"
14. 设置文件属性
ansible <groupname> -m file -a "path=/root/123 owner=kel group=kel mode=0644"
15.创建目录
ansible <groupname> -m file -a "path=/tmp/kel state=directory mode=0755"
16.修改权限
ansible <groupname> -m file -a "path=/tmp/kel mode=0444"
17.创建软连接
ansible <groupname> -m file -a "src=/tmp/1 dest=/tmp/2 owner=kel state=link"
18.添加其中的节的值
ansible <groupname> -m ini_file -a "dest=/tmp/kel section=kel option=kel value=kel mode=0600 backup=yes"
19.基础模块使用
19.1 并行和Shell命令
设置ssh-agent记住认证
$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
19.2 10秒内重启
$
ansible <groupname> -a "/sbin/reboot" -f 10
19.3 在默认情况下,ansible使用的是当前用户,当你需要使用其他用户的时候,可以使用选项-u
username
$ ansible <groupname> -a
"/usr/bin/foo" -u username
19.4 要使用sudo的时候
$
ansible <groupname> -a "/usr/bin/foo" -u username --sudo[--ask-sudo-pass]
--ask-sudo-pass(-K)此选项是用来询问sudo的密码,如果设置了,如果未设置,那么无需使用
19.5 也可以在sudo到别的用户来进行执行
$
ansible <groupname> -a "/usr/bin/foo" -u
username -U otheruser[--ask-sudo-pass]
参数-f 10表示并发进行,也就是10个进程同时运行,在使用的时候,默认的情况下为5,选择合适的数据,从而使得系统能够进行处理
参数-m表示选择的模块,在默认情况下,command是默认的模块
Command不适用于有shell变量的情况,也不适用于有管道符的情况,如果要使用此种情况,那么可以使用shell模块
19.6 使用Shell模块
$
ansible <groupname> -m shell -a 'echo $TERM'
20. 文件传输
20.1 传输文件到很多主机
$ ansible <groupname> -m
copy -a "src=/etc/hosts dest=/tmp/hosts"
20.2 修改用户和用户组权限
$ ansible <groupname> -m
file -a "dest=/srv/foo/a.txt mode=600"
$ ansible <groupname> -m
file -a "dest=/srv/foo/b.txt mode=600 owner=mdehaan group=mdehaan"
20.3 创建目录
$ ansible <groupname> -m
file -a "dest=/path/to/c mode=755 owner=mdehaan group=mdehaan
state=directory"
21. 管理包
21.1 确定一个包已经安装,但是不更新
$ ansible <groupname> -m
yum -a "name=acme state=present"
21.2 确定一个包安装的是指定版本
$ ansible <groupname>
-m yum -a "name=acme-1.5 state=present"
21.3 确定一个包是最新包
$ ansible <groupname>
-m yum -a "name=acme state=latest"
21.4 确定一个包未安装
$ ansible <groupname>
-m yum -a "name=acme state=absent"
22. 用户和用户组
22.1 创建用户和管理已经存在的用户和组
$ ansible <groupname>
-m user -a "name=foo password=<crypted password here>"
$ ansible <groupname>
-m user -a "name=foo state=absent"
23. 服务管理
23.1 确定一个服务正在运行
$ ansible <groupname> -m
service -a "name=httpd state=started"
23.2 重启一个服务
$ ansible <groupname>
-m service -a "name=httpd state=restarted"
23.3 确定一个服务是停止的
$ ansible <groupname>
-m service -a "name=httpd state=stopped"
24.限制后台运行时间
24.1 后台运行总是耗费比较长的时间,从而其状态在随后总是能够查看的,如果踢掉主机,又不想轮训
$ ansible <groupname>
-B 3600 -P 0 -a "/usr/bin/long_running_operation --do-stuff"
24.2 如果要检查服务的状态,可以使用模块async_status,传递job id
$ ansible <groupname>
-m async_status -a "jid=488359678239.2844"
24.3 轮训是内建的
$ ansible <groupname> -B
1800 -P 60 -a "/usr/bin/long_running_operation --do-stuff"
参数-B表示运行最多30分钟,30*60,-P 60 轮训其状态每60S,
当时间运行在-B参数后的时间之后,此服务会被停止运行。
可以使用参数—forksvalue,来确保服务尽快运行
25.收集信息
$ ansible <groupname> -m
setup
来自 <http://www.cnblogs.com/LuisYang/p/5961001.html>
3.2、Ansible单命令测试的更多相关文章
- Ansible学习记录四:单命令测试
0.Ansible的group支持all.通配符(*).IP地址 1.查看Ansible的版本 $ ansbile --version [root@test ~]# ansible --versi ...
- kafka单节点测试
======================命令====================== 启动zookeeper server bin/zookeeper-server-start.sh conf ...
- centos ansible常用命令
ansible在日常运维中经常使用,特别是批量执行多台服务器的时候,有效减小重复的操作成本,以下从安装到使用仅讲解工作中常用的几种方式,模块很多功能很强大,但不做全面讨论. ansible安装 在ce ...
- 用命令测试安装好的OpenStack环境
OpenStack三个节点icehouse-gre模式部署一文部署了一套OpenStack环境,接下来使用命令测试一遍. 首先要明确几个概念: 外网:可分配floating ip绑定到虚拟机,外部就可 ...
- USB系列之七:ASPI介绍及命令测试
在以前的一篇博文<关于构建DOS下编程平台的总结>中曾经介绍了一种在DOS下驱动U盘的方法,我们大致回顾一下.在config.sys中加入两个驱动程序,就可以驱动U盘:device = a ...
- ansible常用命令
一.ansible常用命令 一.ansible命令的常用参数 ansible 默认提供了很多模块来供我们使用.在 Linux 中,我们可以通过 ansible-doc -l 命令查看到当前 ansib ...
- Linux下使用DD命令测试磁盘读写速度
dd是Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换,所以可以用来测试硬盘的读写能力~ 几种常见的DD命令,先看一下区别~ dd bs=6 ...
- Python实现telnet命令测试防火墙
Python实现telnet命令测试防火墙 telnet主要用于测试主机端口是否开通 ping主要是用来测试网络是否畅通和主机是否正在使用 使用Python实现Telnet测试主机端口是否开通的功能. ...
- phpSpider 单页测试_模拟登陆
<?php require './vendor/autoload.php'; use phpspider\core\phpspider; use phpspider\core\requests; ...
随机推荐
- asp.net--Area功能
大型项目必用,这个必须要会,相当于一个MVC的子程序,方便管理,可以理解为一个独立的小MVC程序了 隔离代码.避免冲突 区域是独立的MVC小程序
- Spring MVC-表单(Form)标签-复选框(Checkbox)示例(转载实践)
以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_checkbox.htm 说明:示例基于Spring MVC 4.1.6. 以下示 ...
- Python:利用 selenium 库抓取动态网页示例
前言 在抓取常规的静态网页时,我们直接请求对应的 url 就可以获取到完整的 HTML 页面,但是对于动态页面,网页显示的内容往往是通过 ajax 动态去生成的,所以如果是用 urllib.reque ...
- 区间最小值 线段树 (2015年 JXNU_ACS 算法组暑假第一次周赛)
区间最小值 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Submiss ...
- iOS开发——远程消息推送的实现
在我们使用App的过程中.总是会收到非常多的消息推送.今天我们就要来实现这个功能.首先消息推送分为本地消息推送和远程消息推送.而当中又以远程消息最为经常使用. 可是在推送远程消息之前.有两个前提条件. ...
- 2014年辛星解读css第六节
这一节我们就要讲到布局了,事实上布局本身特别简单.可是要合理的布好局就不那么简单了,就像我们写文章一样.写一篇文章非常easy,可是要写一篇名著就非常难了,这须要我们扎实的功底和对文学的理解,可是.千 ...
- java.util.ComparableTimSort中的sort()方法简单分析
TimSort算法是一种起源于归并排序和插入排序的混合排序算法,设计初衷是为了在真实世界中的各种数据中能够有较好的性能. 该算法最初是由Tim Peters于2002年在Python语言中提出的. T ...
- 【联系】二项分布的对数似然函数与交叉熵(cross entropy)损失函数
1. 二项分布 二项分布也叫 0-1 分布,如随机变量 x 服从二项分布,关于参数 μ(0≤μ≤1),其值取 1 和取 0 的概率如下: {p(x=1|μ)=μp(x=0|μ)=1−μ 则在 x 上的 ...
- <T extends Serializable>这是什么意思呢?看明白这个,你的问题就自然而然的明白了!
1.转自:https://blog.csdn.net/liwenqiang758/article/details/8131185 自己动手丰衣足食!!! 泛型是Java SE 1.5的新特性,泛型的本 ...
- ubantu安装jdk
环境:ubantu16.04下安装jdk1.8 1,在当前用户根目录下创建目录,本人所用的用户为bruce: mkdir /home/bruce/jdk 2,官网下载jdk1.8,网址为http:// ...