配置Github Actions过程中的一些问题

-
在Actions中切换分支
- name: Checkout Codes run: | git clone -b hexo https://${{secrets.CODING_TOKEN_NAME}}:${{secrets.CODINGTOKEN}}@${Coding} hexo cd master ls env: Coding: e.coding.net/imtzz/Pages.git -
如何使用SSH登录远程服务器
服务器:A
Action 服务器:B
-
首先需要获取服务器A的密钥,用于CI服务器B远程免密登录,并且对应的服务器A公钥要加在A的
~/.ssh/authorized_keys中。```shell cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ``` -
在Github Secrets中配置以下几项内容
SERVER_IP:服务器A的IP地址 SERVER_USERNAME:要登陆到服务器A使用的用户名(要与密钥匹配) SERVER_PRIVATE_KEY:服务器A密钥(id_rsa),建议复制的时候直接在文件中CTRL+A,全选粘进去。**\*不要缺少BEGIN和END那两行以及最后的空行,全都要。\*** -
StrictHostKeyChecking配置是关闭公钥检查,会自动接受新的公钥,防止需要输入yes时终端CI处理。
- name: Configure SSH run: | mkdir -p ~/.ssh echo "${KEY}" > ~/.ssh/deploy.key chmod 600 ~/.ssh/deploy.key cat >> ~/.ssh/config <<END Host server HostName $IP User $USERNAME IdentityFile ~/.ssh/deploy.key StrictHostKeyChecking no END env: IP: ${{secrets.SERVER_IP}} USERNAME: ${{secrets.SERVER_USERNAME}} KEY: ${{secrets.SERVER_PRIVATE_KEY}}
-
-
解决SSH连接服务器执行命令不能自动终止
在最后执行服务器脚本的时候发现,虽然执行完了,但是无法自己断开连接,就需要对执行命令进行修改,最后如下。 deploy.sh 需要执行的脚本,server是上面config文件中配置的名称,将所有输出导向 /dev/null,即可自动关闭。 ```shell ssh server < deploy.sh > /dev/null 2>&1 ``` -
其实中间碰到了不少问题,许多问题解决完就忘记了,以后想起来再写吧。