[工具] 分布式系统下批量创建用户及分发公钥打通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 ...
随机推荐
- 用javascript去掉字符串空格的办法
今天遇到了以关于JavaScript 中怎么去掉 字符串中前后两段的空格 ,我只好向就得js中也后Trim() 函数,后来试试了不 行,就网上找了下解决方法,其中用到了正则表达式 ,整理了下: < ...
- ActiveReports 报表应用教程 (5)---解密电子商务领域首张电子发票的诞生(套打报表)
6月27日京东商城发布了中国电子商务领域首张电子发票,同时宣布相关系统正式上线,这标志着中国电子商务的步伐又向前迈出了重要的一步.目前“电子发票”覆盖的服务范围是在北京地区购买图书.音像商品的个人消费 ...
- 基于FreeBSD 64位内核的kFreeBSD无法在Virtualbox下安装
ArchBSD同上 感谢大A(豆瓣)的投稿 :)
- Win764位配置Github环境及将代码部署到Github pages-志银强势总结
(软件及教程下载分享:链接:http://pan.baidu.com/s/1dFysay9 密码:pug0) 1-安装Git-2.9.2-64-bit.exe(解压安装文件,运行安装程序,除了记得修改 ...
- vmware screen
1. Question Description: the screen of the vmware looks small . 2. Solution: 2.1 look the size of sc ...
- ztree addNode editName removeNode
1.ztree api中完全拥有以上操作的相关解释,及简单Demo. 2.主要是要学会将单独的效果组合起来使用. 2.1 如: 添加完新的Node节点之后,怎么立即进入新节点的编辑状态来修改名称(或 ...
- PHP学习笔记:万能随机字符串生成函数(已经封装好)
做验证码用到的,然后就把这个函数封装起来,使用时候要设置2个参数: $str设置里要被采集的字符串,比如: $str='efasfgzsrhftjxjxjhsrth'; 则在函数里面生成的字符串就回从 ...
- 高性能文件缓存key-value存储—Memcached
1.高性能文件缓存key-value存储—Redis 2.ASP.NET HttpRuntime.Cache缓存类使用总结 备注:三篇博文结合阅读,简单理解并且使用,如果想深入学习,请多参考文章中给出 ...
- c++中string的常用函数说明
string可以说是是字符数组的升级版,使用更加啊方便,不容易出错.本文对string的常用函数进行简单介绍,做到会用即可. string中的常用函数分为四类,即赋值,添加,比较和删除. 一.赋值 1 ...
- R Graphics Cookbook 第3章 – Bar Graphs
3.1 基本条形图 library(ggplot2) library(gcookbook) pg_mean #这是用到的数据 group weight 1 ctrl 5.032 2 tr ...