在上一篇博客中,已经介绍了安装虚拟集群的过程和需要注意的细节问题。

这篇主要是介绍如何批量登陆远程主机和配置,这个过程中是在没有部署并行处理工具或者集群管理工具的前进行的。

————————————首次登陆——————————————

首次登陆需要解决的问题就是:

  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 部署虚拟集群实践——并行批量操作环境部署的更多相关文章

  1. Hadoop1.X集群完全分布式模式环境部署

    Hadoop1.X集群完全分布式模式环境部署 1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS,Hadoop Distri ...

  2. VMware workstation虚拟集群实践(1)—— 配置集群多节点互信

    一. 简述 节点互信,是集群管理的基本操作之一.节点互信是通过SSH协议的公钥密钥认证来代替密码认证来实现的.对于单点批量管理多个节点,多个节点之间相互通信来说,配置SSH单方向信任,或者互信十分必要 ...

  3. 实战CentOS系统部署Hadoop集群服务

    导读 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高 ...

  4. 基于TLS证书手动部署kubernetes集群(下)

    一.master节点组件部署 承接上篇文章--基于TLS证书手动部署kubernetes集群(上),我们已经部署好了etcd集群.flannel网络以及每个节点的docker,接下来部署master节 ...

  5. (转)基于TLS证书手动部署kubernetes集群(下)

    转:https://www.cnblogs.com/wdliu/p/9152347.html 一.master节点组件部署 承接上篇文章--基于TLS证书手动部署kubernetes集群(上),我们已 ...

  6. hadoop(二)搭建伪分布式集群

    前言 前面只是大概介绍了一下Hadoop,现在就开始搭建集群了.我们下尝试一下搭建一个最简单的集群.之后为什么要这样搭建会慢慢的分享,先要看一下效果吧! 一.Hadoop的三种运行模式(启动模式) 1 ...

  7. 安装部署 Kubernetes 集群

    安装部署 Kubernetes 集群 阅读目录: 准备工作 部署 Master 管理节点 部署 Minion 工作节点 部署 Hello World 应用 安装 Dashboard 插件 安装 Hea ...

  8. centos7.8 安装部署 k8s 集群

    centos7.8 安装部署 k8s 集群 目录 centos7.8 安装部署 k8s 集群 环境说明 Docker 安装 k8s 安装准备工作 Master 节点安装 k8s 版本查看 安装 kub ...

  9. Istio(二):在Kubernetes(k8s)集群上安装部署istio1.14

    目录 一.模块概览 二.系统环境 三.安装istio 3.1 使用 Istioctl 安装 3.2 使用 Istio Operator 安装 3.3 生产部署情况如何? 3.4 平台安装指南 四.Ge ...

随机推荐

  1. Layer 1: Single Objects

    Layer 1: 单一对象 粗略的说, 在javascript中所有对象都是maps的键值对. 键值对的实体在对象中称为属性( property).属性的key经常为 string类型,而他的valu ...

  2. ZOJ 3817 Chinese Knot

    题意:给定4个长度为N的字符串( N <= 100000),然后构成一个“中国结”,给定目标串,问能否从某个节点出发走一遍得到目标串,其中不能连续通过3个中心节点,也就是从字符串一个端点转移到其 ...

  3. ANDROID_MARS学习笔记_S02_001_Spinner

    1.strings.xml <?xml version="1.0" encoding="utf-8"?> <resources> < ...

  4. Android USB Host与HID通讯 (二)

    不好意思,从上一篇到现在确实比较忙,中间又外出了一段时间,虽然也上LOFTER,或者看到一些朋友QQ上加我,给我发信息询问,有些看到了有些可能没看到,偶尔回复了一两个,也不咋的详细,在此我想说,一方面 ...

  5. Android WebView 开发详解(三)

    转载请注明出处   http://blog.csdn.net/typename/article/details/40302351 powered by miechal zhao 概览 Android ...

  6. 登陆与注册以及Session

    Session  保存状态是在 登陆窗口  检查用户密码的动作上执行 .Models namespace 注册与登陆以及Session.Models { public class UserBF { p ...

  7. bzoj1084

    乍一看这题好难,根本不会: 直到看到1<=m<=2…… 显然分类讨论dp, 很快想到这题的dp和poj2430相类似 m=2的时候f[i,j,k]表示到第i行用了j个矩阵结尾状态为k时最大 ...

  8. wildfly9 配置SSL单向认证/https

    D:\>keytool -genkey -keystore cdi-init.keystore -alias cdi-init -keyalg RSA -keysize 2048 -validi ...

  9. GIS数据格式:Coverage

    转自:http://www.cnblogs.com/w2william/archive/2009/10/15/1583954.html 我之前做了一个模块,基本实现了ArcCatalog中左边树状结构 ...

  10. ThreadLocal实现方式&使用介绍---无锁化线程封闭

    虽然现在可以说很多程序员会用ThreadLocal,但是我相信大多数程序员还不知道ThreadLocal,而使用ThreadLocal的程序员大多只是知道其然而不知其所以然,因此,使用ThreadLo ...