shell脚本实现从master节点批量配置salve节点(主机名有瑕疵,IP映射,ssh服务)
# !/bin/bash
#修改主机名与IP映射,添加至 /etc/hosts
IP_hostname="masterIP docker1
salve1IP docker2
salve2IP docker3"
function editHosts(){
cat >> /etc/hosts <<EOF
$IP_hostname
EOF
}
#editHosts
#校园网登陆,敏感信息
function connect(){
#connect internet
}
function disconnect(){
#disconnect internet
}
PASSWORD=hadoop
SERVERS="masterIP salve1IP salve2IP"
#拷贝公钥
function auto_ssh_copy_id() {
expect -c "set timeout -1;
spawn ssh-copy-id $1;
expect {
*(yes/no)* {send -- yes\r;exp_continue;}
*assword:* {send -- $2\r;exp_continue;}
eof {exit 0;}
}";
}
function ssh_copy_id_to_all() {
cd /root/.ssh
for SERVER in $SERVERS
do
auto_ssh_copy_id $SERVER $PASSWORD
done
}
#安装ssh服务
function init_ssh(){
#联网
connect
#先删除ssh秘钥
rm -rf /root/.ssh
#生成ssh秘钥
cd ~
yum install -y expect
yum install -y openssh-clients
yum install -y openssh-server
#生成秘钥
expect -c "set timeout -1;
spawn ssh-keygen -t rsa;
expect {
*Enter* {send -- \r;exp_continue;}
}";
#发送公钥
ssh_copy_id_to_all
editHosts
cd ~
i=1
for SERVER in $SERVERS
do
scp /etc/hosts root@$SERVER:/etc/hosts
done
disconnect
}
function init_hostname(){
connect
#确定安装了ssh服务
#安装ansible
yum install -y epel-release
yum install -y ansible
#配置 /etc/ansible/hosts 文件 将所要改变的主机对应的IP地址 起个别名放入
cat > /etc/ansible/hosts <<EOF
[testall]
salve2IP ansible_ssh_pass=123
salve1IP ansible_ssh_pass=123
EOF
cat > changehostname.yml <<EOF
#这个别名 [testall] 与changehostname.yml中的hosts对应的名称一致
- hosts : testall
remote_user : root
tasks :
- name : show hostname
shell : hostname
- name : show ip
command : ip a
- hostname : name=docker{{ ansible_default_ipv4.address.split('.')[-1] }}
EOF
##有瑕疵,能力有限不能实现自增分配
#ansible_default_ipv4.address.split('.')[-1] 取IP分数组最后一组作为后缀
#执行
ansible-playbook changehostname.yml
disconnect
}
init_ssh
init_hostname
shell脚本实现从master节点批量配置salve节点(主机名有瑕疵,IP映射,ssh服务)相关推荐
- linux脚本定时拷贝文件,使用Linux shell脚本实现FTP定时执行批量下载指定文件
使用FTP定时批量下载指定文件的shell脚本,具体实例介绍如下所示: 1.目标FTP服务器地址 #FTP服务器地址 ip=10.19.15.23 2.FTP账号和密码 u=账号 p=密码 3.使用m ...
- Shell脚本经典案例:探测批量主机是否存活
Shell脚本经典案例:探测批量主机是否存活 文章目录 Shell脚本经典案例:探测批量主机是否存活 1.利用数组实现 2.变量方式实现 3.函数实现 一开始我们用ping1次就下定结果说对方主机不通 ...
- linux配置和查看主机名
linux中配置主机名的作用 *主机名的作用是为了方便主机与主机的相互通信 linux修改主机名 *修改主机名的文件vim /etc/hostname,我将主机名改为了master1 *hostnam ...
- 如何配置Apache虚拟主机?(基于IP、基于端口、基于域名)
一.Apache虚拟机配置前的准备工作 1.下载yum源 2.安装yum包 3.安装httpd包 4.查看并关闭selinux 5.取消中心主机 cd /etc/httpd/conf vim http ...
- 【RHCSA】配置网络和主机名
文章目录 前言 问题 配置网络 修改hostname nmcli的用法 前言 配置网络和主机名是RHCSA考试的第一题,2020年8月RHCE,RHCA考试都是用的8的系统. 破解root密码是必会的 ...
- shell脚本自动化创建虚拟机的基本配置--tomcat--mysql--jdk--maven---妈妈再也不用担心我不会配置虚拟机了!
文章目录 自动化shell脚本 一:虚拟机初始化 二:jdk自动化安装 三:maven自动化安装 四:tomcat自动化安装 五:mysql自动化安装 自动化shell脚本 ps:此处安装的jdk,m ...
- Linux 配置网卡、主机名(基础配置、网卡会话配置、网卡绑定配置)
目录 配置网卡基本信息 通过nmcli命令配置网卡 通过配置网卡文件配置网卡 通过nmtui命令配置网卡 通过nm-connection-editor命令配置网卡 网卡高级配置 配置网络会话 配置网卡 ...
- 一章: CentOS6.5 网络配置、修改主机名、添加硬盘、压缩——解压方法、VNC—server配置
1,配IP ,修改网络配置文件 配置网卡 # vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:50:56:83: ...
- Linux配置网络与主机名
配置网络主机名和SSH免密登录 设置主机名-->静态(持久的) hostname 1. 直接修改文件 vim /etc/hostname > 修改完毕后不会立即生效:reboot.sy ...
- shell脚本启动kafka集群的多台节点
[README] 由于集群有多台机器,启动kafka ,查看其状态,都需要每台机器去执行命令, 可以写个脚本基于ssh免密登录批量执行: [1]启动kafak (kk.sh) #!/bin/bash ...
最新文章
- 学生每日计划表_早上6:13,很多教室的灯就亮了!高考还有10天,你都想象不到这些学生有多拼...
- MS-SQL分页not in 方法改进之使用row_number
- rabbitmq安装与配置(windows)亲测有效!!!
- 华为ensp常用简单命令(二)
- libcurl上传文件
- MXone影视自适应模板
- 一款性能调优神器,1分钟定位性能瓶颈!!!
- C++_类和对象_对象特性_构造函数和析构函数---C++语言工作笔记040
- 9-9 原生安装-1
- 取消管理员取得所有权_苏州即将全面取消房迁落户!有房就能落户的时代结束了!...
- 客户端主动断开连接_Go实现客户端和服务器抓包分析TCP三次握手和断开操作
- 卫星通信常用专业词汇
- JS实现经纬度坐标转成XY坐标
- 大事务的处理方式对比
- 无线网络经常掉线的解决办法
- 这就是你要的廉价,廉价版iPhoneX到底便宜在哪?
- javaScript:实现倒计时定时器setInterval的开始计时、暂停计时、停止计时效果
- 2008 r2 server sql 中文版补丁_Microsoft SQL Server 2008 R2 SP1补丁 64位 官方免费版(附安装教程)...
- Linux 进程管理学习笔记(一)
- 8月2日 jquery