(二 )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 ...
随机推荐
- 如何创建phpinfo查看php信息?
创建一个简单的文本文档并命名为phpinfo.php 代码如下: <?php phpinfo(); ?> 将上面的代码写入并保存该文档,通过浏览器访问这个文件即可显示PHP信息
- 被IDEA的打包功能打败了:dubbo服务端打包注意事项
下午在搭建一个基于dubbo和spring的服务端项目.结果打包成jar后各种报错. 起初是因为idea的机制,导致META-INF下自己的Mainfest.mf总是莫名被覆盖,于是报找不到主函数.后 ...
- 【HDOJ】1050 Moving Tables
贪心问题,其实我觉得贪心就是合理的考虑最优情况,证明贪心可行即可.这题目没话多久一次ac.这道题需要注意房间号的奇偶性.1 3.2 4的测试数据.答案应该为20. #include <stdio ...
- Oracle系列之序列
涉及到表的处理请参看原表结构与数据 Oracle建表插数据等等 语法结构:创建序列 create sequence sequence_name start with num increment by ...
- Oracle备忘录
习惯是一个数据库中有多个用户,但是一个用户对应一个系统 数据库管理员主要职责: 每个Oracle数据库应该至少有一个数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库 ...
- 转载:简化IT程序员工作生活的4个窍门
如果可以简化你的生活——少做枯燥的任务,将时间真正地用于完成事情,你愿不愿意去尝试?下面就让我一起来学一下如何让程序员工作生活变得简单的小窍门.如果你敢于倾听自己的心声,你会发现自己一天中的大多数时间 ...
- ununtu卸载软件
sudo apt-get remove vim
- Linux kernel ‘aac_send_raw_srb’函数输入验证漏洞
漏洞名称: Linux kernel ‘aac_send_raw_srb’函数输入验证漏洞 CNNVD编号: CNNVD-201311-422 发布时间: 2013-11-29 更新时间: 2013- ...
- JS中String,Math常用函数
String对象: 1.length属性 说明:获取字符串的长度 实例: var str="abc"; var i=str.length;//output:3 2.charAt() ...
- 惊人事实 z