客户要求每3个月修改一次主机密码。密码规则为客服提供的一串字符 xxxx + 主机后3位。

将需要登录主机添加到 Ansible。
  1. 将需要登录主机的公钥添加到 known_hosts
ssh-keyscan 192.168.1.11 192.168.1.12 192.168.1.13  >> /root/.ssh/known_hosts
  1. 生产 Ansible 主机的秘钥
ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa
  1. 将需要登录主机添加到 hosts
[zk]
192.168.1.11 ansible_ssh_pass=xxxx
192.168.1.12 ansible_ssh_pass=xxxx
192.168.1.13 ansible_ssh_pass=xxxx
  1. Ansible playbook
---
- hosts: zk
gather_facts: no tasks: - name: install ssh key
authorized_key: user=root
key="{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"
state=present

执行 playbook

ansible-playbook ssh-addkey.yml

这时候去把 hosts 文件里面的 ansible_ssh_pass 删掉。

执行ansible all -m ping 也不需要密码

此方案只适用于刚拿到的服务器,当你禁止root登录以后,此方案失效。

解决方法是,使用普通用户,赋予sudo权限

批量修改密码

客户给的字符串为 Rfv5%+,将该字符串及主机名后三位赋予xx变量

修改密码脚本 pass_modify.sh

#!/bin/bash

xx=Rfv5%+`hostname|grep -oP '...$'`
echo "$xx"|passwd --stdin root

使用 ansible script 模块,远程执行该脚本即可。

其余方法:

---
- hosts: zk
gather_facts: false
tasks:
- name: change user passwd
user: name={{ item.name }} password={{ item.chpass | password_hash('sha512') }} update_password=always
with_items:
- { name: 'root', chpass: 'Lcsmy,123' }

Ansible 批量修改密码的更多相关文章

  1. Ansible批量修改root密码

    0x01:首先做好免密登录 http://www.cnblogs.com/evlon/p/8094306.html 0x02:批量修改密码 ansible all -m raw -a "ec ...

  2. linux '--stdin'错误 -批量修改密码

    虚拟机:VMware虚拟机  系统:Linux ubuntu 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC 2016 ...

  3. ansible批量修改linux服务器密码的playbook

    从网上找到批量修改Linux服务器root密码的playbook. 使用方法: 1.输入要修改的inventory组 2.按需要,在playbook中输入要修改的IP.新密码,如下: - hosts: ...

  4. ansible批量修改用户密码

    实现批量修改目标主机多个用户密码: --- - hosts: testchanange passwd gather_facts: false tasks: - name: change you pas ...

  5. ansible批量修改服务器密码

    看了一下网上代码大多数是ansible-playbook实现的,需要写一个脚本,或者手动传递变量进去. 以前用python tcp模块写过客户端主动上报修改密码脚本 今天写一个ansible主控客户端 ...

  6. ansible-playbook批量修改密码

    1. 将服务器ip写到ansible hosts文件中 2. 实现免密登录服务器 将ansible服务器公钥拷贝到目标服务器用户目录下的.ssh/authorized_keys 手动连接一次或者自己写 ...

  7. ansible批量验证密码

    author: headsen chen date: 2018-08-31  20:45:49 综合比较salt-ssh,ansible .sshpass等批量验证100台机器的密码,最好推荐用ans ...

  8. linux批量添加用户和批量修改密码

    一.批量创建用户通过命令newusers可以实现批量的创建用户.这个命令的用法为 newusers file.txt(一个文本文件)文本文件内存放需要批量添加的用户信息但是对格式有要求格式:pw_na ...

  9. ansible 批量修改root密码

    [root@sz_fy_virt_encrypt_33_239 fetch]# cat /opt/passwd.yml - hosts: web vars: path: /home/opsadmin ...

随机推荐

  1. struts校验

    Struts2 校验框架 Struts2 和Struts1同样也提供了校验框架,但在Struts2 已经不再把校验框架做为一个插件,而是已经内置到了Struts2中,而且配置起来更为简单方便,功能也更 ...

  2. TypeError: format string

    先来看一段Python代码: class Negate: def __init__(self, val): self.val = -val def __repr__(self): return str ...

  3. spring-data-mongodb与mongo shell的对应关系

    除了特殊注释外,本文的测试结果均基于 spring-data-mongodb:1.10.6.RELEASE(spring-boot-starter:1.5.6.RELEASE),MongoDB 3.0 ...

  4. RedLock.Net - 基于Redis分布式锁的开源实现

    工作中,经常会遇到分布式环境中资源访问冲突问题,比如商城的库存数量处理,或者某个事件的原子性操作,都需要确保某个时间段内只有一个线程在访问或处理资源. 因此现在网上也有很多的分布式锁的解决方案,有数据 ...

  5. Gurobi在Python环境里安装与使用(Windows环境)

  6. OpenGL绘制一个四边形

    学习自:https://learnopengl-cn.github.io/01%20Getting%20started/04%20Hello%20Triangle/ OpenGL没有直接绘制四边形的a ...

  7. Python01(linux基础)

    聊一聊计算机 CPU,电源相关,时钟部分(主频),存储器,输入输出系统 计算机记忆装置:存储器分两大类:1.内存Ram(速度快,容量小(相对),断电后内容丢失) 非持久性记忆存储器2.如:硬盘,(速度 ...

  8. javap反汇编的使用

    javap可以查看class文件信息,灵活的运用javap,让你更好的理解class类文件结构信息等   方法/步骤     javap -help查看命令帮助   javap -package Te ...

  9. Android使用Fiddler模拟弱网络环境测试

    原文:https://blog.csdn.net/u010618194/article/details/76652513 1.设置fiddler 顶部Tools-->Connections,把p ...

  10. bottle模板中的替换

    line是模板中一行的内容,类似: {{x}}testinfo{{x+10}} x=10时,模板输出: 10testinfo20 x = 10 splits = re.split(r'\{\{(.*? ...