ansible批量修改服务器密码
看了一下网上代码大多数是ansible-playbook实现的,需要写一个脚本,或者手动传递变量进去。
以前用python tcp模块写过客户端主动上报修改密码脚本
今天写一个ansible主控客户端修改密码
shell版本
#!/bin/bash
#展示所有定义的主机
allhost=`egrep -v '^$|^#|^\[' /etc/ansible/hosts |awk -F ' ' '{print $1}'`
now=`date +'%Y-%m-%d %H:%M:%S'`
for ip in $allhost
do
echo $ip
done #选择主机
echo -e "\033[33;5m-----------------------\033[0m"
read -p "请输入以上其中一台主机:" host #生成密码
passwd=`head /dev/urandom | tr -dc A-Za-z0-9 | head -c 15` #把要修改的主机和密码保存
echo "$now $host $passwd" >> ~/script/passwd.txt
echo "主机:$host 密码:$passwd" #python3加密sha512
newpass=`/usr/bin/python3 -c "from passlib.hash import sha512_crypt; import getpass; print(sha512_crypt.using(rounds=5000).hash('$passwd'))"` #执行修改密码
ansible $host -m user -a "name=root password="$newpass" update_password=always"
运行时候是这样:需要手动输入主机

python版本
#-*- coding:utf-8 -*-
import os
from passlib.hash import sha512_crypt
import getpass
import random
import string
#获取所有主机
f=os.popen("grep -vE '^$|^#|^\[' /etc/ansible/hosts |awk '{print $1}'")
host=list(f)
#显示主机
for index,element in enumerate(host):
print(str(index)+':'+element) def randpass(length=15):
chars=string.ascii_letters+string.digits
return ''.join([random.choice(chars) for i in range(length)])
#选择主机
choice=int(input('请选择主机,填写数字:'))
mechina=host[choice].strip()
#生成密码
mima=randpass()
sha512mima=sha512_crypt.using(rounds=5000).hash(mima)
print('\n您选择的主机是:',mechina,'密码是:',mima,'\n')
#调用ansible修改密码
os.system(("ansible %s -m user -a 'name=root password=%s update_password=always'") % (mechina,sha512mima))
运行时候是这样:需要手动输入主机前面的数字

ansible批量修改服务器密码的更多相关文章
- Ansible playbook 批量修改服务器密码 先普通后root用户
fsckzy Ansible playbook 批量修改服务器密码 客户的需求:修改所有服务器密码,密码规则为Rfv5%+主机名后3位 背景:服务器有CentOS6.7,SuSE9.10.11,r ...
- saltstack+python批量修改服务器密码
saltstack安装:略过 python脚本修改密码: # -*- coding utf-8 -*- import socket import re import os import sys imp ...
- Python自动批量修改服务器密码
工作中,我们经常会定期更换服务器密码,如果手动去修改,不仅费时,而且容易出错.下面提供了一种思路,可以实现批量.自动修改服务器密码. 大致思路:首先,为每一台服务器设定一个唯一标识:其次,将每台服务器 ...
- Ansible批量修改root密码
0x01:首先做好免密登录 http://www.cnblogs.com/evlon/p/8094306.html 0x02:批量修改密码 ansible all -m raw -a "ec ...
- ansible批量修改用户密码
实现批量修改目标主机多个用户密码: --- - hosts: testchanange passwd gather_facts: false tasks: - name: change you pas ...
- python实现批量修改服务器密码
需求:机房.线上有多台主机,为了保障安全,需要定期修改密码.若手动修改,费时费力易出错. 程序应该满足如下需求 : 1.在现有的excel密码表格,在最后一个字段后面生成新的密码,另存为一个新的exc ...
- Python脚本批量修改服务器密码
搭建环境 centos 7.4 使用脚本 python 批量修改connect用户的密码 生成密码为随机密码 保存为xls文档 passwd_chang #!/usr/bin/env python ...
- ansible 批量修改root密码
[root@sz_fy_virt_encrypt_33_239 fetch]# cat /opt/passwd.yml - hosts: web vars: path: /home/opsadmin ...
- (转)linux passwd批量修改用户密码
linux passwd批量修改用户密码 原文:http://blog.csdn.net/xuwuhao/article/details/46618913 对系统定期修改密码是一个很重要的安全常识, ...
随机推荐
- markdown mermaid状态图
状态图 状态图是一种用于计算机科学和相关领域描述系统行为的图.状态图要求描述的系统由有限数量的状态组成. 语法: stateDiagram-v2 [*] --> Still Still --&g ...
- 服务器表单字符串转化Vue表单挂在到对应DOM节点
今天在项目开发中,遇到从后端返回的vue文件(包含template,js,css)的文件,试过用v-html解析文件,渲染到页面,但是无法渲染,后来去查了一堆资料,自己写了一个全局方法来解析这类文件 ...
- java 报错: MalformedURLException: unknow protocol: f
问题: java 使用 URL 读取文件解读报错 MalformedURLException 1.使用 URL对象解析文件报错MalformedURLException: unknow protoco ...
- 【SpringCloud-Alibaba】环境搭建以及注意事项
一.开发环境 JDK 1.8 SpringBoot 2.1.7.RELEASE SpringCloud-Alibaba 2.1.2.RELEASE 数据库MySQL 5.8 如果需要修改版本请参照:S ...
- Rust 实现Netty HashedWheelTimer时间轮
目录 一.背景 二.延迟队列-时间轮 三.Netty 时间轮源码分析 四.Rust实现HashedWheelTimer 五.总结思考 一.背景 近期在内网上看到一篇文章,文中提到的场景是 系统自动取消 ...
- openSUSE修改grub来修复对win8的引导
前言:继上一次安装试用各版本linux发行版后,由于做项目将机器纯windows了一把,现在又想安回centos,各种挫折折腾两天玩残一个u盘日,其中包括自己本本的原装系统也崩了,各种泪奔,下面记录一 ...
- JavaFx 实现按钮防抖
原文地址:JavaFx 实现按钮防抖 | Stars-One的杂货小窝 Android平台的APP,一般是有需要进行设置按钮的防抖(即在短时间内无法多次点击),我想在JavaFx项目中也是实现防抖功能 ...
- golang中float类型转换成int类型
package main import ( "fmt" "strconv" ) func f2i(f float64) int { i, _ := strcon ...
- Java安全之C3P0链利用与分析
Java安全之C3P0链利用与分析 0x00 前言 在一些比较极端情况下,C3P0链的使用还是挺频繁的. 0x01 利用方式 利用方式 在C3P0中有三种利用方式 http base JNDI HEX ...
- Codeforces Round #740 Div. 2
题目跳转链接 A. Simply Strange Sort 题意 定义一个函数\(f_{i}\) : 如果\(a_i \ge a_{i+1}\) swap(\(a_i\) \(a_{i+1}\)) 定 ...