如何从 CircleCI 上的构建 运行 连接到 VPN
How do I connect to VPN from a build running on CircleCI
我读过 this,但他们提到他们将在后续文章中描述选项,看起来好像从未写过。我有哪些选择?
如果需要的话,我正在使用 OpenVPN,并且我可以访问服务器和客户端配置。
我认为有以下可能的解决方案:
- 创建到您需要的资源的 SSH 隧道
- 创建 SSH 代理以访问您的内部网络
- 更改为使用
machine:
而不是 docker:
并自行启动 docker 容器
- 创建一种访问您的私有资源的方法(例如创建一个 Web 服务来访问它并使用 REST API 调用该 Web 服务)
- 制作你的私人资源public(不!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
我读过 this,但他们提到他们将在后续文章中描述选项,看起来好像从未写过。我有哪些选择?
如果需要的话,我正在使用 OpenVPN,并且我可以访问服务器和客户端配置。
我认为有以下可能的解决方案:
- 创建到您需要的资源的 SSH 隧道
- 创建 SSH 代理以访问您的内部网络
- 更改为使用
machine:
而不是docker:
并自行启动 docker 容器 - 创建一种访问您的私有资源的方法(例如创建一个 Web 服务来访问它并使用 REST API 调用该 Web 服务)
- 制作你的私人资源public(不!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