作者:Masamune
pssh 全称为 parallel-ssh,是一个用 Python 编写的可以并发在多台服务器上批量执行命令的工具。提供了一系列命令如pssh、pscp、prsync、pnuke 和 pslurp,支持远程并行执行命令、杀掉进程、复制文件等等,是十分方便的批量管理主机的命令。使用 pssh 相关命令时不需要在受控节点上安装任何类似 agent 的东西,只需要在管理节点上安装 pssh,然后让管理节点可以通过 ssh 登录受控节点即可。在容器化大行其道的今天,对机器节点本身进行操作的需求在减少,但是 pssh 命令仍然有它适合的使用场景。
使用下面的 docker-compose 相关文件可以快速搭建一个 pssh 实验环境,以快速体验 pssh 命令。使用前需要安装 docker 和 docker-compose ,这里不再赘述。
安装 pssh 和配置相关细节参考文件内容。
将以下文件放到同一个目录中,目录名为 psshcompose。
Dockerfile
FROM ubuntu:18.04
RUN apt-get update
RUN apt-get install -y openssh-server
RUN service ssh restart
RUN apt-get install -y iputils-ping
RUN apt-get install -y net-tools
RUN apt-get install -y telnet
RUN apt-get install -y netcat
RUN apt-get install -y vim
RUN apt-get install -y curl
RUN apt-get install -y pssh
RUN mkdir /root/.ssh
RUN chmod 700 /root/.ssh
COPY ./id_rsa.pub /root/.ssh/id_rsa.pub
RUN chmod 600 /root/.ssh/id_rsa.pub
COPY ./id_rsa /root/.ssh/id_rsa
RUN chmod 600 /root/.ssh/id_rsa
RUN cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
RUN chmod 644 /root/.ssh
# 自动确认主机指纹并添加到 known_hosts ,不需要手动填 yes
RUN echo "StrictHostKeyChecking no" > /root/.ssh/config
RUN chmod 644 /root/.ssh/config
# pssh 需要用到的主机列表, ~/.ssh/config 的 hostname
COPY ./hosts.txt /hosts.txt
# 别名
RUN echo "alias pssh='parallel-ssh'" >> /root/.bashrc
RUN echo "alias pscp='parallel-scp'" >> /root/.bashrc
RUN echo "alias pslurp='parallel-slurp'" >> /root/.bashrc
RUN echo "alias prsync='parallel-rsync'" >> /root/.bashrc
RUN echo "alias pnuke='parallel-nuke'" >> /root/.bashrc
<< · Back Index ·>>