首页 > 其他分享 >ansible批量采集、批量互信、批量复制、分发文件

ansible批量采集、批量互信、批量复制、分发文件

时间:2023-02-24 16:45:10浏览次数:37  
标签:分发 显示 批量 ansible 互信 copy ssh

一、先说一下用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、如果出现报错:

解决办法:

修改/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,互信,copy,ssh
From: https://www.cnblogs.com/zmh520/p/17151864.html

相关文章

  • python基于word模板批量生成word文件
    1、需要用到docxtpl库,用于操作word模板安装:pipinsatlldocxtpl处理之前的word模板 处理后的word 下面直接上代码揭开它的神秘面纱:第一步,读取excel中的内容imp......
  • PHP使用ZipArchive批量打包压缩文件并下载
    PHP使用ZipArchive批量打包压缩文件,并下载。使用php自带的ZipArchive类,可以压缩或解压文件。首先需要确定已经安装了zip扩展,如果没有安装,请先安装,下载:http://pecl.php.net......
  • Python arcpy创建栅格、批量拼接栅格
      本文介绍基于Python语言arcpy模块,实现栅格影像图层建立与多幅遥感影像数据批量拼接(Mosaic)的操作。  首先,相关操作所需具体代码如下:importosimportarcpyfile_p......
  • Ansible vars变量定义方式
    第一种方式:在play中定义类似数组方式[root@m01ansible]#catvars.yml-hosts:web01vars:packages: #变量的名称自定义-wget #变量的值如果有......
  • Ansible 常用模块及使用案例
    Ansible常用模块及使用案例第一个模块:commandansibleweb01-mcommand-a'可执行命令'第二个模块:Shell支持管道ansibleweb01-mcommand-a'可执行命令'第三个模......
  • ansible使用普通用户sudo切换为root方式记录
    1、首先客户端创建普通用户,记得保留用户的家目录,并设置该用户的密码 2、客户端修改sudoer文件添加sudo用户并设置切换不提示密码,可执行所有权限,如下; 用户名ALL=(......
  • ansible 使用普通用户ssh免密登录提示无tmp权限
    报错:|UNREACHABLE!=>{"changed":false,"msg":"Failedtocreatetemporarydirectory.Insomecases,youmayhavebeenabletoauthenticateanddidn......
  • 数据库迁移:批量 JSON文件 导入 SQL Server
    --------------------------------------------------------------Beginning--------------------------------------------------------------一、问题引入在之前的博客......
  • A-Ansible示例
    示例-pingansible-kall-mpingansible-kall-mcommand-a"ping-c2www.baidu.com"示例-dateansible-k-i/etc/ansible/hostsall-mcommand-a"date"示例-df-h......
  • A-Ansible-ssh配置
    SSH密钥配置yum-yinstallopenssh-clientsssh-keygen-trsaGeneratingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):##回车......