自动化部署工具pssh入门教程

来源:互联网 发布:c语言课程考核要求 编辑:程序博客网 时间:2024/05/01 23:28

1.简述

pssh是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的。使用是必须在各个服务器上配置好密钥认证访问。其实在自动化部署工具世界里有不少的出名的家伙,比如puppet、chef、ansible、slatstack等等以及本文要介绍的pssh。总的来说,比较方便使用的,我总觉得就ansible(有时间在贴上这个工具的入门教程)以及pssh适合我这种水平的!部署简单!操作简单!下面就让我们看看究竟有多简单!

2.平台信息

假设我们的有两台主机并且都能连接网络,因为等下要下载pssh的安装包,拿本次搭建环境的信息为例,主机系统都为Centos7.1,如下:

IP                         主机名                       备注

   10.63.39.38                lijiaze-master           本地主机(或者说控制端)

   10.63.39.39                lijiaze-node              远程主机(或者说受控端)

3.部署流程

3.1 下载pssh的安装包

#  在/home目录下新建一个目录用来存放pssh软件压缩包,并进入该该目录。

<span style="font-family: arial;">[root@lijiaze-master:~] # mkdir -p /home/pssh</span>
<span style="font-family:arial;">[root@lijiaze-master:~] # cd /home/pssh</span>

#  下载v2.3.1版本的pssh软件压缩包

#  wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz

3.2 安装pssh

#  解压安装包

#  tar -zxvf pssh-2.3.1.tar.gz

#  进入软件包pssh-2.3.1目录

# cd pssh-2.3.1

# 安装pssh

# python setup.py install 
这样就安装完pssh,so easy!下面我们再来测试一下能不能用!

4.简单测试

4.1 想要对远程主机进行控制,必须要将本地主机的密钥传到远程主机上。所以首先生成本地主机的密钥,然后传送到远程主机上。

# 本地主机生成密钥(注意中途不需要输入任何东西,一路按回车键即可)

[root@lijiaze-master:~] # ssh-keygen
# 将刚刚生成的密钥传送到远程主机(这时输入yes以及10.63.39.38这台主机的root用户的密码即可)

[root@lijiaze-master:~] # ssh-copy-id -i root@10.63.39.38
4.2 经过了4.1的操作,我们就可以对远程主机进行操作了,当远程主机很多时,比如我们公司产品上线前进行测试时,有几百台主机要进行控制,这时我就会将这些主机IP弄成一个txt文本,当然,一台也是可以的!所以为了方便,在这里统一用文本形式。

# 新建一个txt文本,并将10.63.39.39这个IP号添加到这个文本里

[root@lijiaze-master:~] # touch lijiaze.txt<pre name="code" class="plain">[root@lijiaze-master:~] # echo 10.63.39.39 >> lijiaze.txt

这样我们就可以使用pssh对远程主机进行控制了!pssh有五个常用的命令,下面分别一一简述。

1.pssh 多主机上并行执行命令,比如我要查看一下远程主机root目录下有那些文件,就可以用下面的命令

[root@lijiaze-master:~] # pssh -h lijiaze.txt -i 'ls -al'
2.pscp 把文件并行地复制到多个主机上,比如在我的root目录下有一个lijiaze.tar.gz的压缩包,要传到远程主机的/home/lijiaze目录下,就可以使用下面的命令

[root@lijiaze-master:~] # pscp -h lijiaze.txt  /root/lijiaze.tar.gz   /home/lijiaze
3.pslurp 从多台远程机器拷贝文件到本地,和pscp刚好相反。比如在远程主机的root目录下有一个lijiaze.sh脚本要传回本地主机/home/lijiaze目录下,就可以使用下面的命令

[root@lijiaze-master:~] # pslurp -r -h lijiaze.txt /root/lijiaze.sh  /home/lijiaze  /home/lijiaze
4.pnuke 并行在远程主机杀进程,比如在远程主机有一个docker服务,我想把它给终止掉,就可以使用下面的命令

[root@lijiaze-master:~] # pnuke -h lijiaze.txt docker

5.prsync 使用rsync协议从本地计算机同步到远程主机,这个很少用到,至少我还没用过多少次,所以有需要的请自行看帮助文档。

5.后记

通过上述的简述以及部署流程和使用教程是不是觉得原本很高大上的自动化部署工具也是so easy呢!好了,不知道你们有没有发现一个很大的问题,那就是我要控制几台,上百台甚至上千台主机时,传送密钥是不是很麻烦呢?不要着急!其实只有远程主机的密码是相同的话(其实在实际应用场景中初始的密码一般都是一样),可以写个脚本很快就解决这个问题了,这个留到下一篇博客再进行阐述了!










0 0
原创粉丝点击