你好,我有一个管道。
我的代码中还有2个脚本deploy_terraform.sh和deploy_ansible.sh。
现在我希望它只做两件事:
stage deploy-dev-terraform
stage deploy-dev-ansible
在第一阶段,它在运行器上创建 ssh 密钥,并启动一个脚本,在 GCP 中为我的应用程序、多个虚拟机、网络等创建基础设施……
在每个虚拟机中,它都会复制在运行器上创建的 ssh 密钥,以便它们拥有元数据,这样我就可以稍后与 ansible 创建连接。
在第二阶段,我想创建文件 inventory.ini 并使用 ansible 连接到我的虚拟机,以便我可以配置服务器。
我的问题是:当我为这两个脚本执行两个阶段时,问题是运行程序中的阶段不是持久的,因此当我想与 ansible 连接时,第二阶段中的元素不再存在,因此第二阶段继续出错。
但是当我把所有这些都放在一个阶段时,我就没有问题了。
如何在两个阶段之间保持坚持?
default:
tags:
- default_gitlab_runnerrunner_test
stages:
- deploy-dev-terraform
- deploy-dev-ansible
#_________ ETAPE 1 - Déploiement des VM sur GCP via terraform pour l'environement de dév __________#
deploy_dev_terraform:
stage: deploy-dev-terraform
image : ubuntu-personalise
before_script:
- ssh-keygen -t rsa -b 2048 -f "$HOME/.ssh/id_rsa" -N ""
- curl --silent "https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/download-secure-files/-/raw/main/installer" | bash
- gcloud auth activate-service-account --key-file=.secure_files/credentials1.json
script:
- mkdir ./environment-dev/private
- cp .secure_files/credentials1.json ./environment-dev/private/credentials1.json
- export GOOGLE_APPLICATION_CREDENTIALS=/builds/$GITLAB_USER_LOGIN/projet_app_devops/environment-dev/private/credentials1.json
- cd ./environment-dev/scripts
- echo "Déploiement sur l'environnement de développement"
- chmod +x deploy_terraform.sh
- ./deploy_terraformdeploy_terraform.sh
# - chmod +x deploy_ansible.sh
# - ./deploy_ansible.sh
#_________ ETAPE 2 - Configuration des serveurs VM via ansible __________#
deploy_dev_ansible:
stage: deploy-dev-ansible
image : ubuntu-personalise
dependencies:
- deploy_dev_terraform
script:
- cd ./environment-dev/scripts
- echo "Configuration des serveurs VM via ansible"
- chmod +x deploy_ansible.sh
- ./deploy_ansible.sh
我不知道该怎么解决这个问题,使用一步解决这个问题,但这不是好方法。
非常感谢您的帮助。