应用场景:

  在应用ansible的实际情况中,有一个很现实的问题,ansible是需要对主机做ssh免密登陆的,而挨个对主机做免密是非常的繁琐的,挨个敲IP不仅非常的繁琐而且容易出错,为解决这个问题,为以后使用ansible时的便捷,写了一个小脚本,实现批量对主机的免密配置:

#!/bin/bash
#在根目录下创建address文件,一行一个ip地址,将所有需要免密的主机ip填入
User=root
passWord=123
address=`cat /address`
rpm -q sshpass &>/dev/null || yum -y install sshpass &>/dev/null
if [ $? -gt 0 ];then
yum -y install sshpass &>/dev/null || (echo "sshpass build error!" && exit)
fi
[ -d ~/.ssh ] || mkdir ~/.ssh;chmod 700 ~/.ssh
echo "正在创建密钥对...."
rm -rf ~/.ssh/*
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P "" &>/dev/null
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
for ip in $address
do
ping $ip -c1 &>/dev/null
if [ $? -gt 0 ];then
echo "$ip无法ping通请检查网络"
continue
fi
sshpass -p "$passWord" ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no ${User}@$ip &>/dev/null
echo "$ip 密钥分发成功"
done

小结:

  需要注意的是,对第一次免密配置失败的主机,不可再用此脚本进行第二次配置,否则第一次配置成功的机器会失效,可以将脚本中创建密钥的部分注释,然后进行配置,最后,需要注意的是,脚本调用的IP地址的信息来自于/address文件中的信息,脚本中并没有写出判断,想来能应用ansible的必不会是新手,这种低级错误应该不会发生。

使用脚本进行ansible批量主机的免密配置的更多相关文章

  1. ssh 主机之间免密配置脚本

    文章目录 单向免密 `expect` 免交互 `sshpass` 免交互 相互免密 单向免密 expect 免交互 注意修改脚本内的 your_password 为 远程主机用户的密码 脚本内的 &q ...

  2. 批量实现ssh免密登录

    本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里.腾讯那样,动不动就上亿的PV量,上万台服务器.我们 ...

  3. Linux主机SSH免密设置解析

    为了保证一台Linux主机的安全,所以我们每个主机登录的时候一般我们都设置账号密码登录.但是很多时候为了操作方便,我们都通过设置SSH免密码登录.那么该如何设置?是不是免密码登录就不安全了呢? 一.被 ...

  4. linux修改主机名+免密认证+关闭防火墙

    在很多软件安装的时候都有这些需求,因此在这里一起讲一下 修改主机名 简单的使用 hostnamectl 命令就好了 hostnamectl set-hostname NAME 免密认证 准备工作,修改 ...

  5. 宿主机ssh免密登录docker容器

    一.检查系统内核 二.安装docker 1.yum install docker  -y 2.docker version                    #查看docker版本 3.syste ...

  6. Hadoop第一式:配置Linux环境之免密配置及SSH原理

    一.配置SSH免密登录 进入/.ssh目录,执行密钥生成指令 ssh-keygen -t rsa (rsa为默认加密格式) 然后会出现四个提示,让你选择密钥保存路径.指纹.拍照啥的,不用管它直接回车过 ...

  7. 运维自动化之1 - ansible 批量主机管理

    2000 - 2016 年,维护的小型机.linux刚开始的2台增加到上千台,手工检查.日常版本升级需要管理太多设备,必须通过运维自动化实现 特别是版本升级,需要到同类机器部署代码.起停设备,必须在一 ...

  8. ansible使用普通用户免密登陆+sudo提权

    前提:从ansible控制端使用test用户可以免密登陆所有被控制端,并且被控端test用户支持sudo提权 # ansible主机清单 cat /etc/ansible/hosts [online- ...

  9. 从主机A得到id_rsa.pub文件,在主机B创建用户danny加入该文件,实现主机A免密登录主机B

    操作步骤: 1.主机A 生成公钥id_rsa.pub文件并导出该文件 root@mytest:~# ssh-keygen Generating public/private rsa key pair. ...

随机推荐

  1. 【Ubuntu 16.04.2_64】安装配置SVN

    [Ubuntu 16.04.2_64]安装配置SVN 转载:https://www.cnblogs.com/yangchongxing/p/10190549.html 检查是否已安装svn # svn ...

  2. 《Java算法》贪心算法

    贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解. 贪心算法的经典案例: 跳跃游戏: 给定一个非负整 ...

  3. java基础集合简介List/Vector(三)上

    集合特点: 1:对象封装数据,对象多了也需要存储.集合用于存储对象. 2:集合是可变长度的. 集合和数组的区别: 1:数组是固定长度的:集合可变长度的. 2:数组可以存储基本数据类型,也可以存储引用数 ...

  4. 批量SSH key-gen无密码登陆认证脚本

    SSH key-gen无密码登录认证脚本 使用为了让linux之间使用ssh不需要密码,可以采用了数字签名RSA或者DSA来完成.主要使用ssh-key-gen实现. 通过 ssh-key-gen 来 ...

  5. 重新精读《Java 编程思想》系列之类的访问权限

    Java 中,我们用访问权限修饰词确定库中的哪些类对于使用者是可以使用的. 访问权限修饰词有 public,protected,private 和什么都不写. 那么对于类来说,我们只可以用 publi ...

  6. 离线安装Mariadb

    CentOS7.4开发站系统和红旗Asianux-7.3离线安装Mariadb 安装 需要Root权限 # 解压离线rpm包 tar -xvf Mariadb5.5.56.tar cd Mariadb ...

  7. Pycharm导入Django项目

    Pycharm导入Django项目 添加项目:file-->open,找到项目所在的位置打开项目 添加django后台项目路径 file-->settings-->Languages ...

  8. 痛苦的 java.net.BindException: Address already in use: connect —— Nacos的坑

    我的dubbo应用, 刚开始的时候,启动一两个是没有问题的, 启动多了就大量出现: -- :: --- [TaskScheduler-] o.s.c.a.nacos.discovery.NacosWa ...

  9. SourceTree Mac安装跳过注册步骤

    1.打开sourcetree2.关闭sourcetree3.命令终端输入defaults write com.torusknot.SourceTreeNotMAS completedWelcomeWi ...

  10. 建造者模式-C#改良实现

    区分网上已有的一般建造者模式实现,个人觉得实现太单一了,自己google查了一些好的实现,挑了其中比较适合的,做个笔记. # region 标准Builder模式实现 // 产品 class Tele ...