我们当前拥有的 Codedeploy 设置空间不足,现在我们必须手动删除位置 /opt/codedeploy-agent/deployment-root/ 处的存档。
如何定期清理档案?我认为 codedploy 代理应该处理档案。
我正在尝试在我的Amazon Linux中下载AWS Codedeploy代理文件.我按照http://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-run-agent.html中提到的说明,对于Amazon Linux,已创建适当的实例配置文件,服务角色等.一切都是最新的(亚马逊Linux,CLI套件,它是一个全新的实例,我尝试了至少3个全新的实例,结果相同).所有实例都具有完整的出站Internet访问权限.
但是下面从S3下载安装的声明总是失败,
aws s3 cp s3://aws-codedeploy-us-east-1/latest/install . --region us-east-1
使用Error时,调用HeadObject操作时发生客户端错误(403):Forbidden已完成1个部分,其中包含...文件
任何人都可以帮我解决这个错误吗?
我试图同时使用AWS代码部署部署到运行几个剧本,但他们从来没有因为没有权限运行脚本运行.
这是我的appspec.yml文件:
version: 0.0
os: linux
files:
- source: /
destination: /var/www/html
permissions:
- object: /var/www/html/codedeploy-scripts
owner: root
mode: 777
type:
- directory
hooks:
ApplicationStop:
- location: codedeploy-scripts/application-stop
timeout: 300
runas: root
BeforeInstall:
- location: codedeploy-scripts/before-install
timeout: 300
runas: root
AfterInstall:
- location: codedeploy-scripts/after-install
timeout: 600
runas: root
ApplicationStart:
- location: codedeploy-scripts/application-start
timeout: 300
runas: root
ValidateService:
- location: codedeploy-scripts/validate-service
timeout: 300
runas: root
Run Code Online (Sandbox Code Playgroud)
codedeploy-scripts文件夹随应用程序一起部署,我在文件夹上设置的权限未设置.该文件夹的权限始终重置为:
[ec2-user@ip-10-0-8-181 html]$ ls -al
total 156
drwxrwsr-x 7 ec2-user www 4096 Oct 13 16:36 . …Run Code Online (Sandbox Code Playgroud) 我正在尝试与CodeDeploy一起设置Auto Scaling组.一切正常,除了在创建新实例时CodeDeploy在用户数据脚本(在启动配置中定义)完成之前启动.
此用户数据脚本的默认值下载并安装代码部署代理,我通过安装几个Windows功能,IIS重写模块和msdeploy对其进行了扩展.
在我的appspec.yml中,我使用挂钩AfterInstall来部署我的IIS网站,但是当没有安装msdeploy时,这显然会失败.
我是以错误的方式解决这个问题,还是有办法让CodeDeploy等待用户数据脚本完成?
amazon-ec2 amazon-web-services windows-server aws-code-deploy
我在一个EC2实例上设置了Jenkins,该实例在更改推送到github中的主分支时运行构建.一旦jenkins上的构建通过,它就会触发一个压缩源代码并将其放入特定S3存储桶的过程.然后是Jenkins在配置中知道的CodeDeploy应用程序并触发部署以尝试从S3获取源代码ZIP,但它会引发错误Access Denied.看起来IAM角色没有从S3下载ZIP的正确访问权限和权限.
我的问题是试图了解IAM角色,它与Jenkins用户的关系以及IAM服务角色?如何设置权限以及谁应该获得这些权限?请指教并帮助我理解这一点.
我正在尝试通过适用于Bitbucket的AWS CodeDeploy部署我的sampleApplication代码
我使用过这个教程,我已经完成了所有步骤.信任关系角色是这样的
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::accountId:root"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "connectionId"
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
当我创建一个部署组时,当我选择上述角色作为服务角色ARN*时,我收到了"无法承担角色"的错误.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"ec2.amazonaws.com",
"codedeploy.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
Run Code Online (Sandbox Code Playgroud)
但是当我添加上面的信任关系时,我可以创建部署组但是然后在bitbucket上的aws集成不起作用并抛出错误以添加足够的权限.
除了结构之外,我对buildspec.yml和文件之间的区别感到相当困惑。appspec.yml我的构建规范中的阶段命令似乎对部署环境没有太大影响,并且在运行过程(例如安装)时使用哪个 appspec 挂钩之间也存在类似的模糊性。只要该过程发生在需要它的阶段之前,我就看不到阶段之间的差异。(我已阅读规范参考文档;他们大多确认这些阶段的标题是出于其目的,但并不是真正的目的。)
举个例子,为什么每次我必须进行部署时,我不直接使用 Packer 烘焙自己的 AMI,然后启动一个新主机并附加 AMI?
我有点迷失在文档中。我想将 Python 代码推送到存储库并使用 CodePipeline 部署 Lambda。我有 CodeCommit 存储库,CodePipeline - 到目前为止,这有效,我可以创建/更新 CF 堆栈以创建补充资源。
我知道 AWS SAM 可用于使用 CF tpl 部署函数,但如何将 SAM 与 CodePipeline/CodeDeploy 连接?代码应取自“源”管道操作,然后部署为 lambda 函数。
如果 SAM 不是这里最好的自动化解决方案,那么我应该使用什么?管道是关键要求,因此我们不必aws cf update-stack手动运行类似的 操作,只需推送代码即可。
amazon-web-services aws-code-deploy aws-lambda aws-codepipeline aws-sam
Amazon Linux 2 已经附带了cfn-init其他 AWS 集成工具,但是CodeDeploy 文档没有提到 Amazon Linux 2 并且运行任何服务命令都会响应类似于:
Redirecting to /bin/systemctl start codedeploy-agent.service
Failed to start codedeploy-agent.service: Unit not found.
Run Code Online (Sandbox Code Playgroud)
如何启用 CodeDeploy 代理,最好使用cfn-init?
aws-code-deploy ×10
amazon-ec2 ×2
amazon-s3 ×2
aws-codestar ×1
aws-lambda ×1
aws-sam ×1
cicd ×1
jenkins ×1
packer ×1