项目部署一:前期准备(本地上传、gitignore、ssh连接、密钥)

项目部署

img

想要将django项目部署在服务器上,本质上需要三大部分:

  • 将代码上传到服务器
  • 在服务器上 获取代码、安装服务、配置环境
  • 启动服务

1.代码同步

上传代码的方式有很多种,例如:FTP工具、scp命令、rsync服务、svn等,不过目前公司主流的都是使用git+代码托管平台。

img

  • 本地电脑,安装git并使用git命令上传代码。
  • 代码仓库,创建仓库。
  • 服务器,安装git并使用git命令获取最新代码。

1.1 本地上传

在本地电脑上本质上需要执行如下步骤:

  • 全局配置

    git config --global user.name "xxx"
    git config --global user.email "xxx@live.com"
    
  • 进入项目目录

    • 初始化

      git init
      
    • 配置远程地址

      git remote add origin https://gitee.com/wupeiqi/xxxxx.git
      
    • 本地版本提交

      git add .
      git commit -m '提交说明...'
      
    • 提交到远程仓库

      git push origin master
      

这样虽然能操作,但是会有两个小问题:

  • 项目中所有数据都提交了,如果仓库是公开的,有些敏感数据会泄露。
  • 每次提交都需要输入密码,太烦了。

1.1.1 gitignore

在项目中创建一个 .gitignore的文件,在里面写上文件名或文件夹,可以git忽略一些文件,不要进行版本控制。

https://github.com/github/gitignore/blob/main/Python.gitignore

img

将Python的ignore文件内存拷贝并保存至项目目录下。

img

这样,就可以控制git忽略某些文件。

学会这个知识点之后,接下来再来讲一个关于配置文件的常见操作,即:local_settings.py

img

如果本次开发和线上开发一些配置不同,就可以放在这个文件。

  • 本地:local_settings.py 编写本地特有配置。
  • 线上:local_settings.py 编写线上特有配置。

而在settings.py中编写所有环境都有的配置。

1.1.2 密码或秘钥

本地提交代码时,每次需要输入密码 & 线上服务器拉去代码时,每次也需要输入密码。

  • 固定用户名和密码

    git remote remove origin
    git remote add origin https://用户名:密码@gitee.com/wupeiqi/xxxxx.git
    
  • 使用SSH

    • 使用ssh-keygen命令,生成一对秘钥(公钥和私钥)

      ssh-keygen -t rsa
      

      img

    • 读取公钥 ~/.ssh/id_rsa.pub内容并上传到代码托管仓库
      img

      img

1.1.3 关于版本(赠送)

在本地的git每次执行commit命令时,都会生成一个提交记录,如果执行git push也会将记录提交到代码仓库。

可以通过命令实现在各个版本之间进行切换:

  • 查看提交记录
git log
  • 查看提交记录
git reflog
  • 跳转至指定版本
git reset --hard fa1653b6cd5ed1ff12ef1acdf534e91b9b895604

注意:此命令可以在本地、线上执行,以此来切换到各种版本

1.2 线上同步

登录线上服务器并获取代码,本质上需要以下三个步骤:

  • 基于SSH或web页面登录服务器
  • 云平台网页版:支持登录并进行命令交互(不便捷,不推荐)。
  • SSH工具,连接比较方便(推荐)
  • win:xshell、SecureCRT
  • mac:iTerm2

注意:如果使用SSH工具连接远程服务器的话,需要在云平台的的安全组开启22端口权限。
img
img

1.2.1 SSH密码+下载代码

>>>ssh root@82.156.54.134
>>>cd /data/
>>>git clone https://gitee.com/wupeiqi/xxxxx.git
>>>cat ~/.ssh/id_rsa.pub
>>>拷贝公钥放到代码仓库
>>>cd /data/
>>>git clone git@gitee.com:wupeiqi/xxxxx.git

img
`

1.2.2 SSH秘钥+下载代码

在我们本地想要通过SSH连接服务器,每次连接都输入密码也觉得比较烦,此时也可以使用秘钥的方式直接连接服务器。

>>>ssh-keygen -t rsa    这个命令不需要做了,因为在之前git上传代码时已执行过(已有公钥和私钥)
>>>ssh-copy-id  -i ~/.ssh/id_rsa.pub root@82.156.54.134

img

posted @ 2024-09-30 17:20  tmars  阅读(1)  评论(0编辑  收藏  举报