本测试环境为3台ubuntu18版虚拟机, 地址分别为node1: 192.168.110.222, node2: 192.168.110.223, node3: 192.168.110.224。
安装ssh server并启用root远程登陆
sudo apt-get install openssh-server
sudo passwd root
sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
sudo service ssh restart
配置host
按如下命令分别修改三台主机hostname分别为node1, node2, node3
echo node1 > /etc/hostname
设置域名解析,在/etc/hosts文件中加入三行:
192.168.110.222 node1
192.168.110.223 node2
192.168.110.224 node3
设置集群节点之间免密ssh登陆
进入.ssh下rsa公钥私钥文件存放的目录,删除目录下的id_rsa,id_rsa.pub文件。
- 登陆node1, 在~/.ssh目录下,执行下面的命令三次回车后生成id_rsa,id_rsa.pub文件。其他主机也使用该方式产生密钥文件。
ssh-keygen -t rsa
- 登录hadoop01,输入以下命令,,将id_rsa.pub公钥内容拷贝到authorized_keys文件中。
cat id_rsa.pub >> authorized_keys
- 登录其他主机,将其他主机的公钥文件内容都拷贝到node1主机上的authorized_keys文件中,命令如下:
ssh-copy-id -i node1
保证所有节点的公钥都拷贝到了node1主机上的authorized_keys文件中。
- 授权authorized_keys文件并分发
chmod 600 authorized_keys
scp authorized_keys root@node2:/root/.ssh
scp authorized_keys root@node3:/root/.ssh
- 免密登陆设置完成,通过ssh node2即可自动登陆。
运维自动化轻量级工具pssh
- pssh介绍
pssh是python写的可以并发在多台机器上批量执行命令的工具,它的用法可以媲美ansible的一些简单用法,执行起来速度比ansible快它支持文件并行复制,远程命令执行,杀掉远程主机上的进程等等。杀手锏是文件并行复制,,当进行再远程主机批量上传下载的时候,最好使用它。 - 安装
从https://code.google.com/archive/p/parallel-ssh/downloads下载2.3.1版本。
tar -zxvf pssh-2.3.1.tar.gz
cd pssh-2.3.1
python setup.py install
- 命令介绍
- pssh:在远程多台主机上并行运行命令
- pscp :把文件并行复制到多台远程主机上
- prsync:使用rsync协议本地文件同步到远程多台主机上。
- pnuke:在远程多台主机上并行killall某一进程
- pslurp:把文件从远程多台主机上复制到本地主机上
用户组与用户
- 将明文密码生成加密后的密码
root@zoo1:~# openssl passwd -stdin
hello
mt6AbFh1gQ0rM
- 添加用户组
pssh -h ips groupadd hadoop
- 添加用户
pssh -h ips useradd hadoop // 未设密码的方式
pssh -h ips useradd -p mt6AbFh1gQ0rM hadoop // 设置密码的方式
- 关联用户组
pssh -h ips usermod -g hadoop hadoop
- 目录文件授权
pssh -h ips chgrp -R hadoop /usr/lib/hadoop-xxx/
pssh -h ips chmod -R 770 /usr/lib/hadoop-xxx/