Fabric是一个Python的第三方库,可以进行Linux的远程部署,批量执行各种命令,况且,机器出错的次数比你少多了呢。
(附详细的SSH免密登录过程)

环境介绍

准备工作

技术难点

深入浅出

SSH免密

使用ssh-keygen命令在物理机生成公钥和私钥, 生成完毕后在当前登录的用户目录下.ssh文件夹下.

在服务器中的.ssh文件夹下创建一个名为authorized_keys文件并设置权限为600.

cd ~/.ssh
touch authorized_keys
chmod 600 authorized_keys

将物理机的id_rsa.pub里面的内容复制进服务器新建的authorized_keys中.
可以使用scp命令,将id_rsa.pub文件发送到服务器中,然后使用cat命令将id_rsa.pub的内容追加到authorized_keys文件中.
物理机:

scp ~/.ssh/id_rsa.pub root@192.168.1.40:~/.ssh/

服务器:

cat id_rsa.pub >> authorized_keys


使用物理机远程SSH连接服务器验证是否免密成功

安装Fabric

在物理机执行下面的安装命令即可安装完毕.

python3 -m pip install fabric

找一个空的目录新建名为fabfile.py的文件.

编写Fabric脚本

使用vim编辑刚刚新建的py文件.

from fabric import Connection, task
@task
def devploy(c):
    with Connection("root@192.168.1.40") as c:
        c.run("ifconfig")

写入完毕后保存,运行fab deploy即可看到服务器的执行回显.

可以用来一键替换更新yum源, 代码如下:

from fabric import Connection, task

@task
def deploy(c):
    with Connection("root@192.168.1.40") as c:
        c.run('cd /etc/yum.repos.d/ && \
            mv CentOS-Media.repo CentOS-Media.repo.backup && \
            wget http://mirrors.163.com/.help/CentOS7-Base-163.repo && \
            yum clean all && \
            yum makecache && \
            yum update')

不是不愿意学习新的东西, 而是想知道学习这个能做什么, 加油.