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 "%% ...
随机推荐
- 查询某数据库的某字段存在于哪些表 mysql
select column_name,column_comment,data_type ,table_name from information_schema.columns where table ...
- React工程化实践之UI组件库
分享日期: 2022-11-08 分享内容: 组件不是 React 特有的概念,但是 React 将组件化的思想发扬光大,可谓用到了极致.良好的组件设计会是良好的应用开发基础,这一讲就让我们谈一谈Re ...
- 给定两个字符串,均只包含英文字母,需区分大小写,一个是源字符串SS(长度<1000), 另一个是目标字符串TS(长度<1000),请问能否通过删除SS中的字符(不改变顺序)将它变换成TS,如果可以输出“YES",不可以则输出“NO"。 输入说明:第一行为源字符串SS,第二行为目标字符串TS。
import java.util.Scanner;/* 给定两个字符串,均只包含英文字母,需区分大小写,一个是源字符串SS(长度<1000), 另一个是目标字符串TS(长度<1 ...
- SQL-关联
关联的本质:从一张表依次取一条数据和另一张表每一条数据进行匹配 内关联 inner join (inner可省略) -- 只显示关联的上的数据外关联有三种左外 left join -- 主表数据不丢失 ...
- window安装、启动consul
1.官网下载:https://www.consul.io/downloads.html 2.下载解压后的安装包只有一个consul.exe文件,双击可查看版本信息 3.设置环境变量,在Path下新增一 ...
- linux资源查看与监控命令
- Windows系统更改/迁移用户目录
系统盘为C盘,C盘空间不足,C盘太满了,C盘清理时查看发现C:\Users目录占用几十个GB,以下方法可将Users目录大部分空间转移. 1. 准备工作 更改/迁移用户目录之前先自行备份当前用户的资料 ...
- Spring5框架
Spring5框架 一.Spring框架概述 1.1 Spring框架简介 Spring是一个开源框架,它由Rod Johnson创建.它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的 ...
- Transformer_Detection-(DETR) 引入视觉领域的首创DETR (ECCV2020)
End-to-End Object Detection with Transformers paper: https://link.zhihu.com/?target=https%3A//arxiv. ...
- if (()) [[]] [] 条件表达式比较示例
a.b的ASCII码是 097.098ASCII码 参考 http://www.51hei.com/mcu/4342.html 1. if (()) a=3; b=2 时,if (( a > b ...