(二 )VMware workstation 部署虚拟集群实践——并行批量操作环境部署
在上一篇博客中,已经介绍了安装虚拟集群的过程和需要注意的细节问题。
这篇主要是介绍如何批量登陆远程主机和配置,这个过程中是在没有部署并行处理工具或者集群管理工具的前进行的。
————————————首次登陆——————————————
首次登陆需要解决的问题就是:
1,信任远程主机公钥的问题,也就是key_word:yes/no?
2,然后就是远程主机的密码,key_word:password:
在自动化部署过程中,需要进行免交互和免密码登陆。
1,使用expect编写免交互登陆脚本(适用于telnet,ssh,ftp等),然后使用shell调用expect脚本进行批量处理
2,使用ssh-keygen -h创建本地公钥,然后把该公钥传到远程主机之后,就可以免密码登陆
因此,对于要实现首次登陆,并且把本地管理主机的公钥批量传输给远程主机,可以通过编写脚本来实现
————————————首次登陆,创建/root/.ssh——————————————
1,创建登陆单台远程主机的脚本:
ssh_login.exp,内容如下
该脚本主要是首次免交互登陆远程主机,然后创建/root/.ssh目录
#!/usr/bin/expect
set timeout 1
set user [lindex $argv 0]
set host [lindex $argv 1]
set pawd [lindex $argv 2]
put stdout "------$host--------"
log_user 0
spawn ssh $user@$host
expect {
"yes/no" { send "yes\r";exp_continue }
"password" { send "$pawd\r" }
}
expect "#"
log_user 1
send "mkdir -p /root/.ssh\r"
send "ls -l /root/.ssh\r"
expect "#"
expect eof
send_user "\n"
2,创建批量登陆脚本
ssh_login_all.sh,内容如下:
#!/bin/bash
user=$1
pawd=$2
for ip in {31..34}
do
host=192.168.80.${ip}
./ssh_login.exp ${user} ${host} ${pawd} | tee -a $0.log
done
3,运行脚本./ssh_login_all.sh,可以在远程主机列表创建/root/.ssh
—————————拷贝本地/root/.ssh/authorizd_keys到远程主机——————————
1,创建拷贝单个文件的脚本
scp_authorized_keys.exp,内容如下
#!/usr/bin/expect
set timeout 3
set user [lindex $argv 0]
set host [lindex $argv 1]
set pawd [lindex $argv 2]
set srcfile [lindex $argv 3]
set desfile [lindex $argv 4]
if { $argc !=5 } {
puts stdout "100"
#puts stdout "Error info"
exit 1
}
spawn scp $srcfile $user@$host:$desfile
expect {
"yes/no" { send "yes\r";exp_continue }
"password" { send "$pawd\r" }
}
expect "#"
2,创建批量拷贝文件的脚本
./scp_all.sh,内容如下
#!/bin/bash
if [ "$#" -ne "4" ];then
echo "usage:$0 [user] [pawd] [srcfile] [desfile]" && exit 0
fi
user=$1
pawd=$2
srcfile=$3
desfile=$4
for ip in {31..34}
do
host=192.168.80.${ip}
./scp_authorized_keys.exp ${user} ${host} ${pawd} ${srcfile} ${desfile} | tee -a $.0.log
done
————————————————————验证登陆————————————————
拷贝完本地的authorized_keys到远程主机之后,本地主机就可以免密码登陆到远程主机了。
配置信任关系之后,同样可以在本地管理主机部署集群管理工具等,进行虚拟集群的集中管理。
例如安装pssh,c3等
————————————————远程主机的配置修改————————————————
根据这两篇博客的内容,到这里基本上可以无密码登陆远程主机了。基于此,则可以部署集群管理工具或者编写并行命令执行脚本,进行远程主机的配置统,或者统一修改
例如:
1. 根据不同主机的IP地址,修改主机名(这里只改写了IP,设定子网掩码,默认网关,DNS服务等,也可以这么做)
#!/bin/bash
for ip in {41..50}
do
host=192.168.80.${ip}
ssh ${host} "sed -i 's/IPADDR=/IPADDR=${host}/g'" etc/sysconfig/network-scripts/ifcfg-eth0
done
2. 拷贝以下文件到远程主机:
/etc/hosts;/etc/selinux/config;/etc/ssh/sshd_config;/etc/ssh/ssh_config;/etc/pam.d/sshd;/etc/secutity/access.conf等
yum -y install pssh
pssh -i -h hostfile /etc/hosts
总结:
对于集群节点少于10个的点,其实可以手动配置。但是对于数量众多的集群,编写脚本能够带来很多方便。同时,正式环境的设备都有带外管理界面和管理维护网络,使用起来更加方便。
通过这两篇博客的内容,就可以把集群初期的环境部署好,配置修改好。
(二 )VMware workstation 部署虚拟集群实践——并行批量操作环境部署的更多相关文章
- Hadoop1.X集群完全分布式模式环境部署
Hadoop1.X集群完全分布式模式环境部署 1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS,Hadoop Distri ...
- VMware workstation虚拟集群实践(1)—— 配置集群多节点互信
一. 简述 节点互信,是集群管理的基本操作之一.节点互信是通过SSH协议的公钥密钥认证来代替密码认证来实现的.对于单点批量管理多个节点,多个节点之间相互通信来说,配置SSH单方向信任,或者互信十分必要 ...
- 实战CentOS系统部署Hadoop集群服务
导读 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高 ...
- 基于TLS证书手动部署kubernetes集群(下)
一.master节点组件部署 承接上篇文章--基于TLS证书手动部署kubernetes集群(上),我们已经部署好了etcd集群.flannel网络以及每个节点的docker,接下来部署master节 ...
- (转)基于TLS证书手动部署kubernetes集群(下)
转:https://www.cnblogs.com/wdliu/p/9152347.html 一.master节点组件部署 承接上篇文章--基于TLS证书手动部署kubernetes集群(上),我们已 ...
- hadoop(二)搭建伪分布式集群
前言 前面只是大概介绍了一下Hadoop,现在就开始搭建集群了.我们下尝试一下搭建一个最简单的集群.之后为什么要这样搭建会慢慢的分享,先要看一下效果吧! 一.Hadoop的三种运行模式(启动模式) 1 ...
- 安装部署 Kubernetes 集群
安装部署 Kubernetes 集群 阅读目录: 准备工作 部署 Master 管理节点 部署 Minion 工作节点 部署 Hello World 应用 安装 Dashboard 插件 安装 Hea ...
- centos7.8 安装部署 k8s 集群
centos7.8 安装部署 k8s 集群 目录 centos7.8 安装部署 k8s 集群 环境说明 Docker 安装 k8s 安装准备工作 Master 节点安装 k8s 版本查看 安装 kub ...
- Istio(二):在Kubernetes(k8s)集群上安装部署istio1.14
目录 一.模块概览 二.系统环境 三.安装istio 3.1 使用 Istioctl 安装 3.2 使用 Istio Operator 安装 3.3 生产部署情况如何? 3.4 平台安装指南 四.Ge ...
随机推荐
- 试求由a,b,c三个字母组成的n位符号串中不出现aa图像的符号串的数目
1.错误解法 共3^n,含aa的共3^(n-2),那么相减8*3^(n-2). 分析:aa的左右两边不能是a,所以结果肯定大了. 2.正确解法 假设符合条件的符合串 ...
- poj 1811 Prim test
基本上一个裸的Miller_Rabin大素数判定和一个裸的Pollard_rho素数分解算法,当模板用吧! #include<cstdio> #include<algorithm&g ...
- Ajax.BeginForm返回方法OnSuccess
在MVC3里面——程序集 System.Web.Mvc.dll, v4.0.30319有这么一个Ajax.BeginForm异步登录验证的类型,我们在下面给出一个例子:在登录页面Logion.csht ...
- HDU3400+三分
三分出两个中间的位置即可. /* 两次三分 */ #include<stdio.h> #include<string.h> #include<stdlib.h> # ...
- [topcoder]BusinessTasks
水题,不值一提.http://community.topcoder.com/stat?c=problem_statement&pm=1585&rd=6535 import java.u ...
- bzoj2749
根绝欧拉函数的计算式,欧拉函数次方每次就是不断把2消掉,并把其他质因子不断变出2,最终弄成1显然我们先预处理每个数会被弄出多少个2出来,次方=弄出来的2的总数-[一开始是否有2](因为一开始没2的话是 ...
- C#中的cookie编程
Cookie就是所谓的" 小甜饼" ,他最早出现是在Netscape Navigator 2.0中.Cookie其实就是由Web服务器创建的.将信息存储在计算机上的文件.那么为什么 ...
- [HDU 5029] Relief grain
Relief grain Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 100000/100000 K (Java/Others)T ...
- 使用console进行性能测试和计算代码运行时间
对于前端开发人员,在开发过程中经常需要监控某些表达式或变量的值,如果使用用debugger会显得过于笨重,最常用的方法是会将值输出到控制台上方便调试.最常用的语句就是console.log(expre ...
- SharePoint 2010 Ribbon的实现
转:http://blog.csdn.net/wang4237/article/details/5306335 SharePoint2010的页面风格发生了很大的改变,其页面风格类似于Office的视 ...