ansible批量采集、批量互信、批量复制、分发文件
一、先说一下用ansible批量采集机器信息的实现办法:
1、先把要采集的机器信息的IP添加到主节点机器的/etc/ansible/hosts里面;
2、在/etc/ansible/hosts里面添加想要登陆的密码和账号:
[test]
192.168.192.77
192.168.192.78
192.168.192.79
[test:vars]
ansible_ssh_user="root" #这个是登陆机器的账号
ansible_ssh_pass="123456" #这个是登陆机器的密码
可以尝试一下:ansible test -m ping 发现能够ping通[test]下的所有机器,ping通效果下:

如果实现以上步骤,接下来就可以用ansible的各大模块批量采集机器的信息;
二、用ansible对机器进行批量互信:
1、做一个明文登陆,分发ssh-key到集群的所有机器,做一个免密登陆:ansible-playbook ssh-copy.yml
ansible 批量分发yml脚本文件,写一个ssh-copy.yml脚本;
然后用ansible-playbook ssh-copy.yml批量分发出去
ssh-copy.yml脚本代码如下:(一定要严格按照如下格式)
---
- hosts:test
remote_user: root
tasks:
- authorized_key:
user: root
key: "{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"
2、如果出现报错:{"msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to manage this host."}
解决办法:
修改/etc/ansible/ansible.cfg下的:host_key_checking = False
(1)在/etc/ansible路径下写一个ssh-copy.yml,内容如下:
---
- hosts: test
remote_user: root
tasks:
- authorized_key:
user: root
key: "{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"
(2)执行anible-playbook ssh-copy.yml;批量分发.ssh文件;
三、ansible批量复制、分发文件;ansible有自带的两个模块特别好用,一个是copy模块、一个是fetch模块,前者是将本机的文件批量分发出去的模块,后者是批量将其他机器上的文件拷贝回本机的模块;下面是工作中常用的批量复制、分发文件常用命令:
ansible批量分发文件
ansible all -m copy -a "src=/data/cloud/deploy/src/scripts/use_megacli.py dest=/tmp/use_megacli.py" 批量执行该shell脚本
ansible all -m shell -a “sudo /tmp/excute_megacli.sh" 批量执行python脚本
ansible all -m command -a "python /tmp/use_megacli.py" 批量拷贝文件到本机/tmp/目录下
ansible all -m fetch -a "src=/tmp/raid_info.txt dest=/tmp/"
总结:ansible常用命令
ansible all -m setup -a "filter=ansible_lsb" 查所有机器的版本型号
ansible_all_ipv4_addresses" 仅显示ipv4的信息
ansible_devices" 仅显示磁盘设备信息
ansible_distribution:显示是什么系统,例:centos,suse等
ansible_distribution_major_version:显示是系统主版本
ansible_distribution_version:仅显示系统版本
ansible_machine:显示系统类型,例:32位,还是64位
ansible_eth0:仅显示eth0的信息
ansible_hostname:仅显示主机名
ansible_kernel:仅显示内核版本
ansible_lvm:显示lvm相关信息
ansible_memtotal_mb:显示系统总内存
ansible_memfree_mb:显示可用系统内存
ansible_memory_mb:详细显示内存情况
ansible_swaptotal_mb:显示总的swap内存
ansible_swapfree_mb:显示swap内存的可用内存
ansible_mounts:显示系统磁盘挂载情况
ansible_processor:显示cpu个数(具体显示每个cpu的型号)
ansible_processor_vcpus:显示cpu个数(只显示总的个数)
ansible_python_version:显示python版本
ansible批量采集、批量互信、批量复制、分发文件的更多相关文章
- Ansible批量更新远程主机用户密码 (包括Ansible批量做ssh互信)
按照集团运维信息安全制度, 需要每个一段时间对线上服务器密码进行一次变更,通过shell脚本部署比较繁琐,所以决定采用ansible脚本对远程主机root密码进行批量重置,该脚本已经在稳定运行在正式环 ...
- 【亲测好用!】shell批量采集百度下拉框关键词
[亲测好用!]shell批量采集百度下拉框关键词 SEO工具 方法 11个月前 (11-18) 2153浏览 3条评论 百度已收录 一直想写一篇用shell采集百度下拉框关键词的教程,个人感觉用 ...
- 五十五.ansible概述、ansible基础 、ad-hoc、批量配置管理
1.环境准备 (自动化工具,批量操作) 6台 2cpu,1.5G以上内存,20G硬盘,1网卡 1.1 基础环境准备 1)启动6台虚拟机,ansible.sh 2)真机配置yum仓库 ]# tar ...
- 如何通过SSH及其Client 批量分发文件和执行管理命令
一.前提:已经配置好root和hadoop用户的无密码的SSH访问 二.直接上代码 ##复制单个文件[hadoop@nn1 hadoop]$ for ip in 102 103 104 111 112 ...
- 【PyHacker编写指南】打造URL批量采集器
这节课是巡安似海PyHacker编写指南的<打造URL批量采集器> 喜欢用Python写脚本的小伙伴可以跟着一起写一写呀. 编写环境:Python2.x 00x1: 需要用到的模块如下: ...
- Python批量复制迁移文件夹
前言 Python可以利用shutil库进行对文件夹,文件的迁移.而在本次的实践当中,难点在于目标文件夹的名称和数据源文件夹的名称,需要利用 工作单位提供的中间数据去进行对比连接起来. 例如:目标源的 ...
- sqlserver 批量删除存储过程和批量修改存储过程的语句
sqlserver 批量删除存储过程和批量修改存储过程的语句- sqlserver 批量删除存储过程和批量修改存储过程的语句,需要的朋友可以参考下. - 修改: 复制代码 代码如下: declare ...
- Python 实现批量从不同的Linux服务器下载文件
基于Python实现批量从不同的Linux服务器下载文件 by:授客 QQ:1033553122 实现功能 1 测试环境 1 使用方法 1 1. 编辑配置文件conf/file_for_downl ...
- 用脚本如何实现将Linux下的txt文件批量转化为Windows下的txt文件?
众所周知,Windows和Linux的文件换行回车格式不同,Windows下换行格式是\r\n(回车+换行),Linux下换行格式为\n(只是换行),因此,其中一个操作系统的文本文件若需要在另外一个中 ...
- 7zip批量压缩,并批量改.jar
批量压缩.bat--要和将要压缩的文件在同一级目录下 for /d %%X in (*) do "D:\Program Files\7-Zip\7z.exe" a "%% ...
随机推荐
- feign的工作原理
1.开发微服务时,我们会在微服务的主程序入口添加EnableFignClient注解开启对Feign Client扫描加载处理,根据FignClient接口规范,定义接口并加上FignClient注解 ...
- 老生常谈:String s1 = new String("abc") 创建了几个字符串对象及8 种基本类型的包装类和常量池
将创建 1 或 2 个字符串.如果池中已存在字符串常量"abc",则只会在堆空间创建一个字符串常量"abc".如果池中没有字符串常量"abc" ...
- elementUi - 页面设计规范
elementUi - 页面设计规范 参考资料 element 字体 Font-family 代码 font-family: "Helvetica Neue",Helvetica, ...
- mycat分片的十四种算法
MyCat的分片规则配置在 conf目录下的 rule.xml文件中定义 ; 环境准备 : schema.xml中的内容做好备份 , 并配置 逻辑库; <schema name="PA ...
- Spring的隔离级别,Spring事务传播属性,Spring事务与数据库事务之间的联系
一.Spring五大事务隔离级别 Spring事务隔离级别比数据库事务隔离级别多一个default在进行配置的时候,如果数据库和spring代码中的隔离级别不同,那么以spring的配置为主.1) D ...
- [485] C2 Age Of Splendor Update 1 OpCodez
[485] C2 Age Of Splendor Update 1 Client 00 SendProtocolVersion 01 MoveBackwardToLocation 02 Say 03 ...
- C# 下载文件 断点续传
/// <summary> /// 普通文件下载 /// </summary> /// <param name="URL"></param ...
- Count Triplets That Can Form Two Arrays of Equal XOR
Count Triplets That Can Form Two Arrays of Equal XOR 题意 给定一个数组,求多少个三元对\((i,j,k)\)满足\(S(i,j-1)=S(j,k) ...
- python学习笔记-简介
python简介 python是一种简单易学,功能强大的编程语言,他有高效的高层数据结构,简单而有效的实现面向对象编程.python是一种解释性语言,在多数平台的多个领域都是理想的脚本语言,特别适用于 ...
- PNETLab添加锐捷镜像后无法使用telnet
PNETLab 版本: 4.2.10 锐捷镜像版本: V1.03 故障详情: 使用PNETLab添加锐捷交换机.路由器镜像后,在Lab中添加设备,默认打开方式为telnet,telnet客户端无论是s ...