在分布式系统下偶尔会有这样的需求,要增加一个服务时,需要在集群的所有节点上创建同一个用户,然后打通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

最新文章

  1. Nginx基础知识之————RTMP模块专题(实践文档)
  2. POJ 2082 Terrible Sets
  3. bundle的理解笔记
  4. oracle更新统计信息以及解锁统计信息
  5. ClickOnce证书签名
  6. Magento 2.0 安装
  7. 转:Android中的Selector的用法
  8. Oracle中强行断开用户连接的方法
  9. a simple erlang process pool analysis
  10. CentOS下SVN服务的启动与关闭
  11. js篇-数组合并其中属性值相同的项目且属性值相加
  12. C# Winform继承窗体打开设计器白屏的一例解决方法
  13. 第三部分:Android 应用程序接口指南---第二节:UI---第十二章 自定义组件
  14. 【转】Vue 2.0封装axios笔记
  15. Python学习笔记第十五周
  16. python:&#39;ascii&#39; codec can&#39;t encode character
  17. PHP MYSQL 分表方法
  18. python基础五--dict
  19. php js css加载合并函数 宋正河整理
  20. checkbox选择框如果被选中value值就可以传过去,没有被选中value就不能穿过去(调试了近一天,坑爹的说)

热门文章

  1. [新手学Java]反射学习笔记
  2. 【C#进阶系列】01 CLR的执行模型——一个Hello World的故事
  3. Fluent NHibernate and Mysql,SQLite,PostgreSQL
  4. PHP使用SnowFlake算法生成唯一ID
  5. mfc110.dll丢失,解决方法
  6. 关于html标签和属性的基本理解
  7. j2ee log4j集中式日志解决方案logpool-v0.4发布说明
  8. bootstrap第一天,响应式布局,栅格系统运用
  9. 更换SAP主界面右边区域背景主题
  10. 基本完成了一个SEGY扫描程序