一、先说一下用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批量采集、批量互信、批量复制、分发文件的更多相关文章

  1. Ansible批量更新远程主机用户密码 (包括Ansible批量做ssh互信)

    按照集团运维信息安全制度, 需要每个一段时间对线上服务器密码进行一次变更,通过shell脚本部署比较繁琐,所以决定采用ansible脚本对远程主机root密码进行批量重置,该脚本已经在稳定运行在正式环 ...

  2. 【亲测好用!】shell批量采集百度下拉框关键词

    [亲测好用!]shell批量采集百度下拉框关键词 SEO工具  方法  11个月前 (11-18)  2153浏览 3条评论 百度已收录 一直想写一篇用shell采集百度下拉框关键词的教程,个人感觉用 ...

  3. 五十五.ansible概述、ansible基础 、ad-hoc、批量配置管理

    1.环境准备 (自动化工具,批量操作) 6台 2cpu,1.5G以上内存,20G硬盘,1网卡 1.1 基础环境准备 1)启动6台虚拟机,ansible.sh   2)真机配置yum仓库 ]# tar ...

  4. 如何通过SSH及其Client 批量分发文件和执行管理命令

    一.前提:已经配置好root和hadoop用户的无密码的SSH访问 二.直接上代码 ##复制单个文件[hadoop@nn1 hadoop]$ for ip in 102 103 104 111 112 ...

  5. 【PyHacker编写指南】打造URL批量采集器

    这节课是巡安似海PyHacker编写指南的<打造URL批量采集器> 喜欢用Python写脚本的小伙伴可以跟着一起写一写呀. 编写环境:Python2.x 00x1: 需要用到的模块如下: ...

  6. Python批量复制迁移文件夹

    前言 Python可以利用shutil库进行对文件夹,文件的迁移.而在本次的实践当中,难点在于目标文件夹的名称和数据源文件夹的名称,需要利用 工作单位提供的中间数据去进行对比连接起来. 例如:目标源的 ...

  7. sqlserver 批量删除存储过程和批量修改存储过程的语句

    sqlserver 批量删除存储过程和批量修改存储过程的语句- sqlserver 批量删除存储过程和批量修改存储过程的语句,需要的朋友可以参考下. - 修改: 复制代码 代码如下: declare ...

  8. Python 实现批量从不同的Linux服务器下载文件

    基于Python实现批量从不同的Linux服务器下载文件   by:授客 QQ:1033553122 实现功能 1 测试环境 1 使用方法 1 1. 编辑配置文件conf/file_for_downl ...

  9. 用脚本如何实现将Linux下的txt文件批量转化为Windows下的txt文件?

    众所周知,Windows和Linux的文件换行回车格式不同,Windows下换行格式是\r\n(回车+换行),Linux下换行格式为\n(只是换行),因此,其中一个操作系统的文本文件若需要在另外一个中 ...

  10. 7zip批量压缩,并批量改.jar

    批量压缩.bat--要和将要压缩的文件在同一级目录下 for /d %%X in (*) do "D:\Program Files\7-Zip\7z.exe" a "%% ...

随机推荐

  1. feign的工作原理

    1.开发微服务时,我们会在微服务的主程序入口添加EnableFignClient注解开启对Feign Client扫描加载处理,根据FignClient接口规范,定义接口并加上FignClient注解 ...

  2. 老生常谈:String s1 = new String("abc") 创建了几个字符串对象及8 种基本类型的包装类和常量池

    将创建 1 或 2 个字符串.如果池中已存在字符串常量"abc",则只会在堆空间创建一个字符串常量"abc".如果池中没有字符串常量"abc" ...

  3. elementUi - 页面设计规范

    elementUi - 页面设计规范 参考资料 element 字体 Font-family 代码 font-family: "Helvetica Neue",Helvetica, ...

  4. mycat分片的十四种算法

    MyCat的分片规则配置在 conf目录下的 rule.xml文件中定义 ; 环境准备 : schema.xml中的内容做好备份 , 并配置 逻辑库; <schema name="PA ...

  5. Spring的隔离级别,Spring事务传播属性,Spring事务与数据库事务之间的联系

    一.Spring五大事务隔离级别 Spring事务隔离级别比数据库事务隔离级别多一个default在进行配置的时候,如果数据库和spring代码中的隔离级别不同,那么以spring的配置为主.1) D ...

  6. [485] C2 Age Of Splendor Update 1 OpCodez

    [485] C2 Age Of Splendor Update 1 Client 00 SendProtocolVersion 01 MoveBackwardToLocation 02 Say 03  ...

  7. C# 下载文件 断点续传

    /// <summary> /// 普通文件下载 /// </summary> /// <param name="URL"></param ...

  8. 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) ...

  9. python学习笔记-简介

    python简介 python是一种简单易学,功能强大的编程语言,他有高效的高层数据结构,简单而有效的实现面向对象编程.python是一种解释性语言,在多数平台的多个领域都是理想的脚本语言,特别适用于 ...

  10. PNETLab添加锐捷镜像后无法使用telnet

    PNETLab 版本: 4.2.10 锐捷镜像版本: V1.03 故障详情: 使用PNETLab添加锐捷交换机.路由器镜像后,在Lab中添加设备,默认打开方式为telnet,telnet客户端无论是s ...