首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从Github Actions将文件上传到私有网络中的亚马逊EC2

,可以通过以下步骤实现:

  1. 创建亚马逊EC2实例:在亚马逊AWS控制台中,选择EC2服务,按照指引创建一个EC2实例。确保实例所在的VPC和子网与私有网络相匹配。
  2. 配置安全组:在EC2实例的安全组中,添加入站规则,允许来自Github Actions的IP地址的访问。这样可以确保Github Actions能够与EC2实例进行通信。
  3. 生成SSH密钥对:在EC2实例创建过程中,可以选择生成SSH密钥对。将私钥保存在安全的地方,公钥将用于后续步骤。
  4. 在Github仓库中配置Secrets:在Github仓库的Settings中,选择Secrets,添加一个名为"EC2_PRIVATE_KEY"的Secret,并将EC2实例的私钥内容作为值进行保存。
  5. 创建Github Actions工作流程:在Github仓库中,创建一个新的工作流程文件(例如:.github/workflows/upload.yml),并按照以下示例进行配置:
代码语言:txt
复制
name: Upload to EC2

on:
  push:
    branches:
      - main

jobs:
  upload:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Install AWS CLI
      run: |
        sudo apt-get update
        sudo apt-get install -y awscli

    - name: Configure AWS credentials
      run: |
        echo "[default]" >> $HOME/.aws/credentials
        echo "aws_access_key_id=${{ secrets.AWS_ACCESS_KEY_ID }}" >> $HOME/.aws/credentials
        echo "aws_secret_access_key=${{ secrets.AWS_SECRET_ACCESS_KEY }}" >> $HOME/.aws/credentials

    - name: Upload file to EC2
      run: |
        scp -i ${{ secrets.EC2_PRIVATE_KEY }} -o StrictHostKeyChecking=no FILE_NAME USER@EC2_INSTANCE_IP:REMOTE_PATH

在上述示例中,需要将"FILE_NAME"替换为要上传的文件名,"USER"替换为EC2实例的用户名,"EC2_INSTANCE_IP"替换为EC2实例的公网IP地址,"REMOTE_PATH"替换为文件在EC2实例中的目标路径。

  1. 配置Github Secrets:在Github仓库的Settings中,选择Secrets,添加两个名为"AWS_ACCESS_KEY_ID"和"AWS_SECRET_ACCESS_KEY"的Secret,并将亚马逊AWS的访问密钥ID和访问密钥作为值进行保存。

完成上述步骤后,当代码推送到Github仓库的"main"分支时,Github Actions将自动触发工作流程。该工作流程将使用AWS CLI工具安装依赖、配置AWS凭证,并通过SCP命令将文件上传到指定的EC2实例中。

请注意,以上答案中没有提及腾讯云相关产品和产品介绍链接地址,因为要求答案中不能提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的一些云计算品牌商。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券