如何从在 CircleCI 上运行的构建连接到 VPN

Rya*_*ton 4 vpn openvpn circleci

我读过这个,但他们提到他们将在后续文章中描述选项,看起来它从未被写过。我有哪些选择?

如果重要的话,我正在使用 OpenVPN,并且我可以访问服务器和客户端配置。

Rya*_*ton 6

我认为有以下可能的解决方案:

  1. 为您需要的资源创建一个 SSH 隧道
  2. 创建 SSH 代理以访问您的内部网络
  3. 改为使用machine:而不是docker:自己启动 docker 容器
  4. 创建一种访问您的私有资源的方法(例如,创建一个 Web 服务来访问它并使用 REST API 调用该 Web 服务)
  5. 公开你的私人资源(不!J/K!不要这样做!)

我很想看到其他选择。

我得到了 #3 的工作。这是基本配方。

在我的 .circleci/config.yml 中:

version: 2
jobs:
   build_test_deploy:
     machine: true
     steps:
       - checkout
       - run:
           name: Setup branch specific variables and get machine info
           command: |
             ./.circleci/createGradleProps.sh
       - run:
           name: Get the docker container and run the build
           command: |
             set -e
             echo Login to docker hub...
             docker login -u mylogin -p $DOCKER_PASSWORD
             echo Pull down the docker image...
             docker pull mycompany/myrepo:1.1 | egrep -v "^[[:space:]]*$|^#"
             echo Starting the new container...
             docker run --cap-add=NET_ADMIN --device=/dev/net/tun \
               -e "CI=$CI" \
               -e "CIRCLE_BRANCH=$CIRCLE_BRANCH" \
               -e "AWS_ACCESS_KEY=$AWS_ACCESS_KEY" \
               -e "AWS_SECRET_KEY=$AWS_SECRET_KEY" \
               -v "$(pwd)"/../project:/home/circleci/project \
               --name qbdvision-instance \
               mycompany/myrepo:1.1 \
               /home/circleci/build.sh
       - run:
           name: Package up the test results
           command: |
             pushd project/build/test/report
             zip -r ~/testResults.zip *
             popd
       - store_artifacts:
           path: ~/testResults.zip
           destination: testResults.zip

workflows:
  version: 2
  build_test_deploy:
    jobs:
      - build_test_deploy
Run Code Online (Sandbox Code Playgroud)