使用 Ansible 和 GitHub Actions 部署您的 PHP 代码库
(相关资料图)
在将 PHP 应用程序部署到生产服务器时,有很多不同的方法。如今,大多数项目都使用 git 并在 GitHub、GitLab 或 Bitbucket 等平台上运行。但是如何将更改部署到服务器?您可以在每次更改后手动 SSH 到您的服务器并从 GitHub 拉取最新代码,您可以使用 GitHub webhooks 自动为您执行此操作,或者您可以使用外部软件为您管理和执行所有部署。但是,今天我想向您展示如何使用名为Ansible和 GitHub Actions 的工具自动化部署。Ansible是一个用 python 编写的强大的开源自动化软件,它简化了以自动化方式设置和管理远程机器的过程。
通常,Ansible 的工作方式是这样的:您需要创建一个包含服务器信息的Ansible Inventory,并且您需要为 Ansible 设置登录这些服务器的方式。理想情况下,您在服务器上为 Ansible 创建一个新用户,该用户使用 SSH 密钥登录以增加安全性。其他所有内容都使用 YAML 文件进行配置。
你可以用 Ansible 做很多事情:设置你的(网络)服务器,让它们保持最新,安装软件,自动放大或缩小等等 - 但是,本指南将只关注如何使用 Ansible 自动部署最新版本的代码。我们将准备我们的服务器并设置一个 GitHub Action,它会在每次推送到我们的production分支时自动运行 Ansible 并将我们的代码部署到我们的服务器。
准备工作
为了让 Ansible 能够连接到您的服务器并在您的服务器上工作,您需要做两件事:安装一些必需的软件(Python 和 Git)并在您的服务器上为 Ansible 创建一个单独的管理员用户。为此,请通过 SSH 连接到您的服务器并运行以下命令:
# 1. Install Python and Git
sudo apt install python3 git
# 2. Create a superuser named "ansible"
sudo useradd -m -G sudo ansible
sudo passwd ansible
......
### Python django 常用命令
```bash
# 新建一个 app
manage.py startapp myapp
# 创建migration
python manage.py makemigrations
# 将migration同步到数据库
python manage.py migrate
#创建管理员
python manage.py createsuperuser
#将输出口反向输出为模型
python manage.py inspectdb > apps/models.py
```
1.升级是否需要清除数据?
升级一般不需要清除数据,但是强烈建议用户备份重要数据,不能绝对的保证每次升级都能顺利开机
2.降级是否需要清除数据?
降级必须要清除数据,否则无法进入系统,在降级操作前请务必备份好数据并且将数据保存在电脑上或者其它不属于执行降级操作手机的载体上
3.升级级版本时遇到卡米如何尝试挽救?
尝试刷回之前刷的版本,或者进入TWRP禁用已安装的Magisk模块后尝试重新开机
4.稳定版切换开发版是否需要清除数据?
稳定版切换开发版一般情况下相当于升级版本,参照A1中的内容,同理开发版切换稳定版一般情况下属于降级
5.卡刷出现错误如何解决?
错误1:包含但不限于是以下原因:
①所需要卡刷的ROM依赖于特定的底包
②卡刷包中的dynamic_partitions_op_list出现问题
③与所用Rec版本有一定关系
④可能逻辑分区表出问题
错误7: 包含但不限于是以下原因:
①刷机脚本语法不正确
②与所用Rec版本有一定关系
③刷机包损坏
6.不同作者官改之间切换是否需要清除数据?
强烈建议切换不同作者的官改时备份好数据后清楚数据刷入
7.线刷卡在 < waiting for any device > 如何解决?[看]
①确保手机处于bootloader模式(兔子蓝色字体)
②检查线刷驱动,特别是fastbootd驱动
③检查手机、数据线与电脑之间连接的稳定性(数据线是否损坏)
④尝试将手机重新进入bootloader模式(兔子蓝色字体)
8.VAB机型在TWRP中格式化data后无法传输文件到手机如何解决?[what]
可以用adb命令传输,在adb中的用法提示为:
用:adb push <电脑上的文件路径> <手机上的文件路径>
例如:adb push D:\Desktop\miui.zip /sdcard/1.zip
9.VAB机型刷入TWRP后无法开机如何解决?
准备一个对应ROM版本官方的boot.img在TWRP中选择刷入内核,将官方内核刷入后即可
10.用fastboot命令线刷时遇到报错:"Not enough. space to resize partition" 如何解决?
安卓10之后,为免去每次更新都要修改分区表的麻烦,加入了super分区和fastbootd用户空间,方便逻辑分区的灵活修改
逻辑分区包括odm,system,vendor,product,system_ext五个分区,相当于super分区的子分区
super可以在fastboot模式下直接刷写,而逻辑分区需要在fastbootd模式下刷写
一般这个报错会出现在fastbootd模式下刷写逻辑分区的时候,这时候需要扩大对应分区的容量命令如下:
删除分区:fastboot delete-logical-partition <分区名>
创建分区:fastboot create-logical-partition <分区名> <字节数>
例如创建大小为5.0GiB的system分区: fastboot create-logical-partition system_a 5368709120
11.没有TWRP如何清除数据?(格式化Data)
可以用 fastboot 命令:fastboot -w 进行清除,需要完整的platform-tools
也可以:fastboot erase userdata
fastboot erase metadata
两个一起执行进行清除数据,当然也可以使用官方rec进行清除
12.线刷到一半不小心关闭窗口之后重新打开时发现刷不进去怎么办?
无论手机在哪个模式,将其重启到bootloader(fastboot)(蓝色兔子)模式后重新执行刷机脚本
13.刷机导致手机黑屏无论怎么操作都不亮屏怎么办?
这种情况一般属于黑砖,高通平台的手机的话需要进入9008模式进行深度刷机还原,而新机型9008模式都需要售后账号授权,所以这种情况一般只能售后解决
14.卡刷官改时出现安卓报错如何解决?
已发现的PBRP刷ROM有时候会导致安卓报错,这这时候需要换一个rec如twrp重新刷包
以上涉及到命令的都需要adb和fastboot工具(platform-tools)的支持
本文superuser怎么用(superuserroot到此分享完毕,希望对大家有所帮助。