我使用 GitHub actions 的持续部署已经有一年或更长时间了,一切都很好,直到昨天我推送更新时,我发现 GitHub actions 中出现错误,并显示以下消息:
没有 SSH 私钥或密码就无法连接
这是我的 yml 代码
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Copy repository contents via scp
uses: appleboy/scp-action@master
env:
HOST: ${{ secrets.HOST }}
USERNAME: ${{ secrets.USERNAME }}
PORT: ${{ secrets.PORT }}
KEY: ${{ secrets.SSHKEY }}
with:
source: "."
target: "/home/ubuntu/dev-folder"
- name: Executing remote command
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
USERNAME: ${{ secrets.USERNAME }}
PORT: ${{ secrets.PORT }}
KEY: ${{ secrets.SSHKEY }}
command_timeout: 10m
script: cd …Run Code Online (Sandbox Code Playgroud) 我已上传example.conf在存储库安全文件中命名的文件,并希望在运行 CI / CD 管道脚本时下载该文件。我尝试遵循GitLab 文档中的项目级安全文件,但我仍然不明白该文件的正确路径应该是什么。
我的尝试是这样的:
curl --header "JOB-TOKEN: $CI_JOB_TOKEN" https://gitlab.com/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/download-secure-files/-/example.conf
当我得到回复时,这显然是不正确的:
<html><body>You are being <a href="https://gitlab.com/users/sign_in">redirected</a>.</body></html>
Run Code Online (Sandbox Code Playgroud)
即使我通过浏览器访问该文件,我也无法访问该文件,同时文档中提供的 URL 也有效。我不明白 URL 应该由什么组成,因为 usinghttps://gitlab.com/<GROUP NAME>/<PROJECT_NAME>/download-secure-files/-/<FILE NAME>不起作用。
那么,如何从 URL 访问 GitLab 安全文件呢?
我即将自动部署到测试服务器和生产.
我有一个ci-server(build,compile,junit)和一个工件库管理器(将构建存储到部署/发布).
目前我可以使用脚本部署到测试服务器(使用ci-server执行).目前没有回滚,db-backups或db-updates.所有服务器都有Suse(linux).
我想知道是否有更好的部署方式,具有回滚功能?也许是其他免费软件工具?否则即使只是一些注释将有助于弄清楚我必须做什么才能够回滚并且不要搞砸了生产.
所以这似乎是当今软件中的常见问题.许多公司似乎使用AWS,Azure或Heroku等云平台解决了这个问题.但是,对于需要私有云的数据安全性,这些选项似乎不太发达.
详细说明,我的特殊需求是管理独立于节点(物理/虚拟服务器)的应用程序.目前我们使用Chef,这似乎不太适合这项任务.在Chef中,我需要在环境中的每个单独节点上都有一个运行列表.当我有一个依赖于许多不同服务的SOA应用程序时,由于显而易见的原因我不希望在同一节点上安装这些服务,所以Chef不能给我这个.我必须手动完成.我必须在内部记录所有依赖项,并且有人必须在为每个节点创建运行列表时做出决定.没有多节点类型配置选项(在环境变量之外)或自动方式跨多个节点安装我的服务.
这似乎是一个普遍的问题,我不得不相信我只是缺少一些东西.必须有一个工具,让我比私有云更容易管理私有云上的SOA应用程序.
有谁知道这样的工具?对我来说,厨师如此受欢迎并且没有这个功能似乎很疯狂.我想假设Puppet或其他工具,但与Chef不同,我想在我深入尝试使用它之前先了解.
要在Chef条款中压缩我想要的东西:
我想要映射到封装应用程序的环境的角色.我想在环境中运行安装,而不是单个节点.在内部,配置管理软件将对哪个节点实际安装服务做出某种明智的决定,并相应地更新服务依赖性(例如,通过环境变量).
换句话说,我希望CD成为托管在私有云上的SOA应用程序的CD; 不是我与Chef一起进行的半手动,大部分不连续交付的黑客行为.
如果有人从opscode那里(或其他厨师粉丝),我很乐意承认我可能没有使用所有厨师必须提供的,在这种情况下,我想知道当前使用它的人是如何处理我的具体问题.
此外,如果重要的话,我的所有服务器都是Windows 2008 R2或Windows 2012.
我个人的GitHub帐户是五个组织的一部分.从GitHub设置Azure的持续集成时,五个组织中只有四个出现在列表中.
我们尝试过登录和退出GitHub和Azure.此外,我们尝试更改Azure中的帐户,然后重新添加相同的帐户.它仍然没有出现.
我们如何使组织出现在Azure持续部署页面中?我们需要在GitHub中设置特定权限吗?我已经是目标组织的成员和目标存储库的管理员.
我正在尝试使用Deployment sourceAzure Web 应用程序中的选项将包含子模块的 VSTS(Visual Studio Team Services)Git 应用程序部署到 Azure 。
所有子模块都托管在同一个 VSTS 项目中,但位于不同的 Git 存储库下。
部署到 Azure 失败并显示以下错误消息:
致命:无法读取“ https://XXX.visualstudio.com ”的用户名:错误的文件描述符\n将“ https://XXX.visualstudio.com/defaultcollection/Project/_git/Project.API.Models ”克隆到子模块中路径“lib/api-models”失败\n\r\nD:\Program Files (x86)\Git\cmd\git.exe 子模块更新 --init --recursive
有什么方法可以将包括子模块在内的 Git 项目部署到 Azure?
git azure git-submodules continuous-deployment azure-web-app-service
我正在使用Visual Studio Code开发ASP.NET Core 1.0应用程序,我不能/不会使用Visual Studio IDE中的内置发布工具.我有这个工作的ASP.NET 5 RC1(dnx-clr-win-x86.1.0.0-rc1-update1),但我不知道如何更新到ASP.NET Core 1.0,工具似乎没有尚未更新.
对于ASP.NET 5 RC1,我使用azure-cli包生成一个deploy.cmd文件,其中包含以下命令:
azure site deploymentscript --aspNet5 .\server\project.json -p .\server --aspNet5Version "1.0.0-rc1-update1" --aspNet5Runtime clr --aspNet5Architecture x86
Run Code Online (Sandbox Code Playgroud)
我得到了以下deploy.cmd文件:
@if "%SCM_TRACE_LEVEL%" NEQ "4" @echo off
:: ----------------------
:: KUDU Deployment Script
:: Version: 1.0.6
:: ----------------------
:: Prerequisites
:: -------------
:: Verify node.js installed
where node 2>nul >nul
IF %ERRORLEVEL% NEQ 0 (
echo Missing node.js executable, please install node.js, if already installed make sure it can …Run Code Online (Sandbox Code Playgroud) 我想通过这个命令来创建一个ECS精英fargate类型的任务
aws ecs register-task-definition --family ${FAMILY} --cli-input-json file://${NAME}-v_${BUILD_NUMBER}.json --region ${REGION},如文档mentined 这里.任务定义文件如下
每个东西似乎都适用于此命令,并在CLI中有适当的响应.但是当我尝试在Jenkins中执行相同操作时,我必须设置CI环境,因此会出现以下错误.
Parameter validation failed:
Unknown parameter in input: "cpu", must be one of: family, taskRoleArn,
networkMode, containerDefinitions, volumes
Unknown parameter in input: "executionRoleArn", must be one of: family,
taskRoleArn, networkMode, containerDefinitions, volumes
Unknown parameter in input: "memory", must be one of: family, taskRoleArn,
networkMode, containerDefinitions, volumes
Unknown parameter in input: "requiresCompatibilities", must be one of:
family, taskRoleArn, networkMode, containerDefinitions, volumes
Run Code Online (Sandbox Code Playgroud)
如果我删除了任务定义json文件中的那些标记.它创建了一个我不需要的EC2类型的任务.我想只创建一个fargate启动类型的任务.

amazon-web-services amazon-ecs continuous-deployment aws-fargate
我们有一个CICD流程,其中定义的TC集合始终用于门控流程.有时它不需要运行所有测试,而是我们只想根据开发人员所做的更改来触发一组TC.我们的测试是基于黄瓜的用户故事,因此我们可以通过标签控制测试运行.我的想法是从teamcity的maven命令行参数字段中参数化cucumber.options,并让Dev/support人员根据需要定义标记.
如果我提到命令行参数为
-Dcucumber.options="--tags %env.test.scope%"
Run Code Online (Sandbox Code Playgroud)
我的mavenized项目得到的值为cucumber.options = "--tags @Sanity(假设env.test.scope值为@Sanity).如果你在这里仔细注意,我为什么要打开双引号?它破坏了我的TestRunner并且没有触发任何测试.如果我删除双引号,然后我得到mvn错误,因为@Sanity不被识别为有效目标(因为--tags和@之间的空间问题)如何定义我的参数(cucumber.options)值与空间?
teamcity continuous-integration cucumber continuous-deployment
当我们有一个工作实例时,我们可以运行以下命令:
php artisan queue:work --queue=default --daemon --tries=5
Run Code Online (Sandbox Code Playgroud)
里斯?然后,如果我们已经运行了先前的命令,是否有必要将其添加schedule:run到cron作业中?
php artisan schedule:run >> /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
这两个命令都是必需的吗?还是一个?
azure ×3
github ×2
amazon-ecs ×1
asp.net-core ×1
aws-fargate ×1
chef-infra ×1
cucumber ×1
deployment ×1
git ×1
gitlab ×1
kudu ×1
laravel ×1
linux ×1
puppet ×1
teamcity ×1