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

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

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

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

  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. BZOJ 3997 [TJOI 2015 组合数学] 解题报告

    这个题我脑洞了一个结论: 首先,我们定义满足以下条件的路径为“从右上到左下的路径”: 对于路径上任何不相同的两个点 $(x_1, y_1)$,$(x_2, y_2)$,都有: $x_1\neq x_2 ...

  2. Firefly 配置说明

    下图一一个典型的config.json的配置:配置中主要包括四个部分,master,servers,db,memcached.master用来定义master的端口,servers用来定义各个服务器中 ...

  3. Codeforces Round #237 (Div. 2)

    链接 A. Valera and X time limit per test:1 secondmemory limit per test:256 megabytesinput:standard inp ...

  4. Memcached总结四:用ava程序连接memcached进行操作

    1. Memcached的Java环境设置 需要下载spymemcached-2.10.3.jar,并把这个jar放到java程序的classpath中才能使用memcached. 在下面的程序,假设 ...

  5. USB (Universal Serial Bus)

    USB歷史簡介 USB規格演變 標準 USB 2.0 介面 實體層 訊號傳輸 傳輸速率 網路層 USB 通訊模型 Endpoints 傳輸型態 USB 資料連結 Transaction Frame P ...

  6. @Resource和@Autowired

    @Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了.@Resource有两个属性是比较重要的,分 ...

  7. [swustoj 594] Maximum Tape Utilization Ratio

    Maximum Tape Utilization Ratio(0594) Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 467 Ac ...

  8. Matlab read_grib.r4 安装新方法(转自:http://blog.sina.com.cn/s/blog_9f36648b010179s7.html)

    最近,打算用Matlab处理些GRIB格式的文件,需要在Matlab中添加read_grib.m文件,其实相当于是添加一个工具箱.read_grib.m的下载见:http://www.renci.or ...

  9. haproxy配置直接重定向url

    在邮件列表看到有个人问haproxy能否在接到一个请求时选择一个后端服务器,然后301重定向url .主要原因是他有5个1G的出口,这样就能充分利用其带宽.测试了一下是可以的 frontend fre ...

  10. [Irving] Android 点击两次返回退出系统

    Activity 中定义成员变量: private Long firstClickTime = 0l; //记录第一次点击时间 重载OnKeyDown方法 代码: @Override public b ...