[工具] 分布式系统下批量创建用户及分发公钥打通ssh通道的脚本
在分布式系统下偶尔会有这样的需求,要增加一个服务时,需要在集群的所有节点上创建同一个用户,然后打通ssh通道,再分发软件包、配置、执行命令、启动服务...
这个问题的根源是如何集中配置和管理系统,专业运维应使用如puppet等工具。但有时图简单或其它原因,不愿走puppet,这里给自己记几个简单的脚本备忘(前题条件:已经打通root的ssh通道,或另一个有sudo权限的用户):
批量创建用户,参数:私钥、用户名、组名;要求有一个ip.list机器列表;
#!/bin/bash if (( $# < )); then
echo "Usage: $0 <primary_key_path> <user_name> [group_name]"
exit
fi #pri_key is the path of your primary key
pri_key=$
user_name=$
group_name=$user_name
if (( $# == )); then
group_name=$
fi home_dir=/application/$user_name for i in `cat ip.list`;
do
ssh -i $pri_key root@$i "groupadd $group_name; useradd -s /bin/bash -g $group_name -d $home_dir -m $user_name; chown -R $user_name:$group_name $home_dir" >result/$i.out >& &
done
分发公钥及打通ssh通道:
#!/bin/bash if (( $# < )); then
echo "Usage: $0 <your primary key path> <user_name> <user's pub key>"
exit
fi #pri_key is the path of your primary key
pri_key=$
user_name=$
pub_key=$
pub_key_fn=`basename $` home_dir="/application/$user_name"
tmpkey_path="/tmp/tmpkey" for i in `cat ip.list`; do
scp -i $pri_key $pub_key root@$i:$tmpkey_path && \
ssh -i $pri_key root@$i "echo 'password' | sudo -S -u $user_name mkdir -p $home_dir/.ssh && sudo -u $user_name bash -c 'cat $tmpkey_path >> $home_dir/.ssh/authorized_keys'"
done
[工具] 分布式系统下批量创建用户及分发公钥打通ssh通道的脚本的更多相关文章
- SERVER 2012 R2 core域环境下批量创建用户
		
Write by xiaoyang 转载请注明出处 步骤一:创建域 基本配置 1. 输入命令进入配置 2. 输入8进入网络配置 3. 选择要配置的网 ...
 - Linux 下批量创建用户(shell 命令)
		
第一种方法: 用shell批量创建用户,分为2中:1,批量创建的用户名无规律 :2.批量创建的用户名有规律首先,来说下批量创建的用户名无规律的shell:先把需要批量创建的用户名用一个文本文档列出来, ...
 - Linux系统下批量创建用户
		
Linux批量创建用户 [root@ldapserver ~]# ) ; do useradd -d /home/ldapuser$i ldapuser#i; done [root@ldapserve ...
 - Oracle使用外部表批量创建用户
		
整体思路:通过使用外部表将用户名导入Oracle的表中,然后通过PL/SQL遍历数据表,批量创建用户. 具体步骤如下: 1.在安装数据库的服务器的C盘根目录创建一个User List.txt文件,内容 ...
 - shell脚本(多线程批量创建用户)
		
shell脚本中的多线程 很多场景中会用到多线程,例如备份数据库,有100个库,正常备份效率极其低下.有了多线程原本可能需要10个小时备份,现在分10个线程同时去干,只要一个小时就解决了.今天就介绍下 ...
 - salt进程查看插件&salt批量创建用户
		
接受key 剔除主机 启动 salt-minion-d 软件包的安装 salt '*' state.sls init.env-init test=true salt批量创建用户: ...
 - windows批量创建用户
		
一.建立用户的命令行语法: 建立用户:net user 用户名 密码 /add (如:net user test 123 /add) 提升权限:net localgro ...
 - shell脚本实例-实现监控tcp的链接状态另一种方式批量创建用户
		
Array实现TCP的链接状态 #!/usr/bin/bash declare -A status type=`ss -an | grep :80|awk '{print $2}'` for i in ...
 - shell-012:批量创建用户
		
# #!/bin/bash # 批量创建用户 # 分析:用命令给用户创建密码的方法有两种 # . 可以直接用echo的方法 # echo "abc-123" |passwd roo ...
 
随机推荐
- LeetCode - 31. Next Permutation
			
31. Next Permutation Problem's Link ---------------------------------------------------------------- ...
 - UnityShader快速上手指南(四)
			
简介 由于其他项目中断了几天更新,继续~~ 这一篇主要是讲光照的(包含漫反射和高光以及多光源的处理) 还是先来看看具体效果(多光源后面单独展示) 有了基本的光照处理之后越来越有立体感了有不有 ╮(╯▽ ...
 - Winform开发框架之字典管理模块的更新,附上最新2013年全国最新县及县以上行政区划代码sql脚本
			
在很多项目里面,字典管理是必备的项目模块,而这个又是比较通用的功能,因此可以单独做成一个通用字典管理,例如这个模块,可以通过集成的方式,使用在我的<Winform开发框架>.<WCF ...
 - 行转列一定要sum
			
--SELECT 姓名 ,-- 课程 ,-- 分数--FROM tb UNPIVOT ( 分数 FOR 课程 IN ( [语文], [数学], [物理] ) ) t --)
 - (旧)子数涵数·PS——文字人物
			
首先我们来看一下我用到的素材(在百度图库里下载的). 一.打开PS,在PS中打开素材. 二.复制一个图层(好习惯不解释). 三.图像->调整->阈值,或者按下图示按钮后选择阈值,弹出阈值窗 ...
 - 两种设计模式(1)==>>“简单工厂”
			
我们以做一个计算器为例,给大家介绍简单工厂的应用: 效果: 这里我们使用 继承 ,虚方法, 简单工厂的设计模式来完成 首先,我们除了搭好窗体外,我们应该把我们的一些类准备好: 1.计算的父类Calcu ...
 - window下从硬盘安装linux系统iso镜像文件的方法
			
首先,需要安装grub2win,http://sourceforge.net/projects/grub2win/ 其次,将iso文件放在grub2可识别的分区, 如c:\abc\iso.iso 最后 ...
 - SQL数据库基础(八)
			
连接查询:通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 常用的两个链接运算符: 1.join on 2.union 在关 ...
 - Linux学习笔记(整理记录)
			
1.安装 (1):安装网址:http://www.jb51.net/os/78318.html 2.鸟哥的Linux命令学习 (1):显示系统目前所支持的语言:echo $LANG (2):修改语言成 ...
 - CSS3属性(二)
			
<html> <head> <title>css2</title> <style type="text/css"> di ...