【问题标题】:Using Gitihub actions for CI CD on aws ec2 machine?在 aws ec2 机器上对 CI CD 使用 Github 操作?
【发布时间】:2020-10-14 05:48:00
【问题描述】:

我是新的 github 操作工作流,我想知道是否有可能在每次推送后将我的 ec2 机器直接设置为 CI 和 CD。

我已经看到 ECS 是可能的,但我想要一个直接的解决方案,因为我们正在我们的开发环境中尝试这个,我们不想超出我们的预算。

有没有可能,如果可以,我该如何实现?

【问题讨论】:

  • 当您要求 EC2 上的 CICD 时,它是用于在 EC2 服务器上配置、构建和部署,还是只是将生成的构建/包从操作部署到 EC2?
  • @saurabh14292 我的机器上运行着 apache 服务器。我不需要启动一个新实例。我想在向我的主人推送时构建我的代码,然后将其部署到我的机器上。

标签: amazon-web-services github amazon-ec2 github-actions


【解决方案1】:

如果您在 GitHub Actions 中构建代码,并且只想将包复制到现有 EC2 上,则可以使用 SCP 文件操作插件

https://github.com/marketplace/actions/scp-files

- name: copy file via ssh key
  uses: appleboy/scp-action@master
  with:
    host: ${{ secrets.HOST }}
    username: ${{ secrets.USERNAME }}
    port: ${{ secrets.PORT }}
    key: ${{ secrets.KEY }}
    source: "tests/a.txt,tests/b.txt"
    target: "test"

如果您有任何其他与 EC2(或任何其他 AWS 服务)交互的 AWS 资源并且您想使用 AWS CLI,则可以使用 AWS Credentials Action

https://github.com/aws-actions/configure-aws-credentials

- name: Configure AWS credentials from Test account
  uses: aws-actions/configure-aws-credentials@v1
  with:
     aws-access-key-id: ${{ secrets.TEST_AWS_ACCESS_KEY_ID }}
     aws-secret-access-key: ${{ secrets.TEST_AWS_SECRET_ACCESS_KEY }}
     aws-region: us-east-1

 - name: Copy files to the test website with the AWS CLI
   run: |
     aws s3 sync . s3://my-s3-test-website-bucket

【讨论】:

  • 感谢您的回答,您清除了很多对我来说模糊的东西。我有一个问题 CI。 GitHub 是如何构建的?它会为每个触发器创建一个新图像还是它是如何工作的?
  • GitHub Actions 为您提供创建构建的平台。它基本上为您提供作为容器的计算能力,您可以在其中执行构建脚本。您可以控制何时触发、如何触发、如何构建以及存储位置。您无需为“构建”您的软件包提供专用 VM。它是按需供应的。
  • 是否可以在我自己的 EC2 机器上构建?
【解决方案2】:

Here 有一篇不错的文章。本文的目标是使用 Github Actions + AWS EC2、CodeDeploy 和 S3 构建 CI/CD 堆栈。

【讨论】:

    猜你喜欢
    • 2020-09-09
    • 2021-11-13
    • 2020-10-30
    • 2021-03-28
    • 2018-01-19
    • 2023-02-25
    • 2021-11-14
    • 2022-01-10
    • 1970-01-01
    相关资源
    最近更新 更多